Linux的 `sysctl` 命令 笔记250404
Linux的 sysctl
命令 笔记250404
sysctl
是 Linux 系统中用于 动态查看和修改内核运行时参数 的核心工具。它通过 /proc/sys/
目录的虚拟文件系统接口,允许用户在不重启系统的前提下调整内核行为,涵盖网络、内存、文件系统等关键功能。
📜 核心功能
- 实时查看内核参数
- 临时修改内核配置
- 永久保存配置变更
🔧 基本语法
sysctl [选项] [参数=值]
常用选项 | 说明 |
---|---|
-a | 显示所有可用参数 |
-w | 临时修改参数(如 sysctl -w param=value ) |
-p | 从配置文件加载参数 |
-e | 忽略未知参数的错误 |
🌰 典型用法
查看参数
# 查看所有参数(按分类展开)
sysctl -a# 查看特定参数(如 IPv6 转发)
sysctl net.ipv6.conf.all.forwarding
临时修改参数
# 启用 IPv4 转发
sysctl -w net.ipv4.ip_forward=1# 禁用 IPv6 RA 接收(针对 eth0)
sysctl -w net.ipv6.conf.eth0.accept_ra=0
永久修改参数
- 编辑配置文件(通常为
/etc/sysctl.conf
或/etc/sysctl.d/*.conf
):# 示例:优化 TCP 拥塞控制 net.core.rmem_max = 16777216 net.ipv4.tcp_congestion_control = bbr
- 加载配置:
sysctl -p /etc/sysctl.conf # 加载指定文件 sysctl -p # 加载所有配置文件(包括 /etc/sysctl.d/)
功能 | 命令示例 | 说明 |
---|---|---|
查看单个参数 | sysctl kernel.hostname | 显示当前主机名。 |
查看所有参数 | sysctl -a | 列出所有可调整的内核参数。 |
临时修改参数 | sysctl -w net.ipv4.ip_forward=1 | 立即生效,但重启后失效。 |
从文件加载配置 | sysctl -p /etc/sysctl.conf | 加载配置文件中的参数。 |
隐藏敏感信息 | sysctl -q kernel.randomize_va_space | 静默模式(不显示错误)。 |
网络优化
参数 | 作用 | 推荐值 |
---|---|---|
net.ipv4.tcp_syncookies | 防御 SYN 洪水攻击 | 1 |
net.ipv4.tcp_tw_reuse | 允许复用 TIME-WAIT 状态的端口 | 1 |
net.core.somaxconn | 调整最大连接队列长度 | 4096 |
net.ipv6.conf.all.accept_ra | 控制 IPv6 路由器广播接受(见前文) | 1 或 0 |
内存与文件系统
参数 | 作用 | 推荐值 |
---|---|---|
vm.swappiness | 控制交换分区使用倾向(0-100) | 10 |
vm.overcommit_memory | 内存分配策略(0=保守,1=总是允许,2=拒绝超限) | 0 或 2 |
fs.file-max | 系统最大文件句柄数 | 2097152 |
安全加固
参数 | 作用 | 推荐值 |
---|---|---|
kernel.exec-shield | 防御缓冲区溢出攻击(仅 x86) | 1 |
kernel.randomize_va_space | 启用地址空间随机化(ASLR) | 2 |
net.ipv4.conf.all.accept_redirects | 禁止接受 ICMP 重定向(防攻击) | 0 |
📂 配置文件优先级
/etc/sysctl.conf
- 传统主配置文件(建议仅用于全局基础设置)。
/etc/sysctl.d/*.conf
- 模块化配置文件(优先级高于
sysctl.conf
,按文件名排序加载)。
- 模块化配置文件(优先级高于
/run/sysctl.d/*.conf
- 临时运行时配置(重启后失效)。
⚠️ 注意事项
-
参数路径转换
sysctl
参数名与/proc/sys/
路径的对应关系:# 例如: sysctl net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward sysctl kernel.hostname → /proc/sys/kernel/hostname
-
参数作用范围
- 全局参数(如
net.ipv4.ip_forward
)影响整个系统。 - 接口级参数(如
net.ipv6.conf.eth0.accept_ra
)仅针对特定接口。
- 全局参数(如
-
安全操作
- 测试变更:生产环境中建议先临时修改 (
sysctl -w
),验证后再持久化。 - 备份配置:修改前备份文件:
cp /etc/sysctl.conf /etc/sysctl.conf.bak
- 测试变更:生产环境中建议先临时修改 (
🛠️ 实际场景示例
1. 优化网络性能
# 临时增大 TCP 接收缓冲区
sysctl -w net.core.rmem_max=16777216# 永久启用 TCP BBR 拥塞控制
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.d/99-network.conf
sysctl -p
2. 增强系统安全
# 禁用 ICMP 重定向
sysctl -w net.ipv4.conf.all.accept_redirects=0# 阻止 SYN 洪水攻击
sysctl -w net.ipv4.tcp_syncookies=1
3. 调试内核行为
# 启用内核 panic 后自动重启(60 秒后)
sysctl -w kernel.panic=60# 查看当前 PID 最大值
sysctl kernel.pid_max
🔍 扩展知识
- 内核参数文档:可通过
man sysctl
和man sysctl.d
查看手册。 - 动态参数:部分参数为只读(如
kernel.osrelease
),无法修改。 - 系统限制:某些参数受硬件或内核版本限制(如
vm.max_map_count
)。
通过 sysctl
,管理员可以精细调控 Linux 系统的行为,从网络优化到安全加固,成为系统调优不可或缺的工具。
以下是关于 Linux sysctl
命令的详细讲解:
sysctl
命令简介
sysctl
是 Linux 中用于 动态查看和修改内核参数 的工具。这些参数位于虚拟文件系统 /proc/sys/
下,控制系统的网络、内存、文件系统等核心行为。
通过 sysctl
,用户可以在运行时调整系统性能、优化网络或修复问题,无需重启系统。
核心功能
功能 | 命令示例 | 说明 |
---|---|---|
查看单个参数 | sysctl kernel.hostname | 显示当前主机名。 |
查看所有参数 | sysctl -a | 列出所有可调整的内核参数。 |
临时修改参数 | sysctl -w net.ipv4.ip_forward=1 | 立即生效,但重启后失效。 |
从文件加载配置 | sysctl -p /etc/sysctl.conf | 加载配置文件中的参数。 |
隐藏敏感信息 | sysctl -q kernel.randomize_va_space | 静默模式(不显示错误)。 |
配置文件
- 主配置文件:
/etc/sysctl.conf
(系统启动时自动加载此文件)。 - 自定义配置目录:
/etc/sysctl.d/*.conf
(推荐将自定义配置放在此目录,按优先级加载)。
配置文件语法
# 注释以 # 开头
参数名 = 值
net.ipv4.ip_forward = 1
vm.swappiness = 10
常用操作
1. 查看参数
# 查看单个参数
sysctl net.ipv4.tcp_syncookies# 模糊搜索参数(如内存相关)
sysctl -a | grep 'vm'
2. 临时修改参数
# 启用 IPv4 转发
sysctl -w net.ipv4.ip_forward=1# 调整最大文件打开数
sysctl -w fs.file-max=2097152
3. 永久修改参数
- 编辑配置文件:
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/99-custom.conf
- 加载配置:
sudo sysctl -p /etc/sysctl.d/99-custom.conf
4. 恢复默认配置
# 删除自定义配置后重新加载
sudo rm /etc/sysctl.d/99-custom.conf
sudo sysctl --system
常见内核参数示例
网络优化
参数 | 作用 | 推荐值 |
---|---|---|
net.ipv4.tcp_syncookies | 防御 SYN 洪水攻击 | 1 |
net.ipv4.tcp_tw_reuse | 允许复用 TIME-WAIT 状态的端口 | 1 |
net.core.somaxconn | 调整最大连接队列长度 | 4096 |
net.ipv6.conf.all.accept_ra | 控制 IPv6 路由器广播接受(见前文) | 1 或 0 |
内存与文件系统
参数 | 作用 | 推荐值 |
---|---|---|
vm.swappiness | 控制交换分区使用倾向(0-100) | 10 |
vm.overcommit_memory | 内存分配策略(0=保守,1=总是允许,2=拒绝超限) | 0 或 2 |
fs.file-max | 系统最大文件句柄数 | 2097152 |
安全加固
参数 | 作用 | 推荐值 |
---|---|---|
kernel.exec-shield | 防御缓冲区溢出攻击(仅 x86) | 1 |
kernel.randomize_va_space | 启用地址空间随机化(ASLR) | 2 |
net.ipv4.conf.all.accept_redirects | 禁止接受 ICMP 重定向(防攻击) | 0 |
调试与排查
1. 验证参数是否生效
# 检查参数值
sysctl net.ipv4.ip_forward# 对比配置文件与实际值
grep 'ip_forward' /etc/sysctl.conf /etc/sysctl.d/*
2. 查看参数加载顺序
# 显示加载的配置文件及顺序
sudo sysctl --system
3. 临时恢复默认值
# 重启系统或重新加载配置
sudo sysctl --system
注意事项
- 谨慎修改:错误的内核参数可能导致系统不稳定或网络中断。
- 备份配置:修改前备份
/etc/sysctl.conf
或自定义文件。 - 优先级规则:
/etc/sysctl.d/*.conf
的配置会覆盖/etc/sysctl.conf
。 - 内核版本差异:部分参数可能在不同内核版本中不存在或行为不同。
总结
sysctl
是 Linux 系统调优和故障排查的利器,尤其适用于:
- 网络性能优化(如调整 TCP 缓冲区、连接数)。
- 安全加固(如防御 DDoS、限制核心转储)。
- 资源管理(如内存、文件句柄分配)。
掌握其用法,可显著提升对系统的控制能力。
Linux 的 sysctl
命令详解
sysctl
是 Linux 系统中用于 动态配置内核参数 的核心工具,无需重启系统即可生效。它通过 /proc/sys/
目录下的虚拟文件操作内核参数,直接影响网络、内存、进程调度等关键行为。
1. sysctl
的核心功能
- 查看参数:
sysctl -a
:列出所有内核参数及当前值。sysctl parameter_name
:查询特定参数(如sysctl net.ipv4.ip_forward
)。
- 修改参数:
- 临时生效:
sysctl -w parameter_name=value
(重启失效)。 - 永久生效:编辑
/etc/sysctl.conf
文件,添加配置后运行sysctl -p
。
- 临时生效:
2. sysctl
在网络配置中的典型用途
场景 | 命令示例 | 作用 |
---|---|---|
启用 IP 转发 | sysctl -w net.ipv4.ip_forward=1 | 允许设备充当路由器转发数据包。 |
禁用 Ping 请求 | sysctl -w net.ipv4.icmp_echo_ignore_all=1 | 屏蔽其他主机对本机的 Ping 检测。 |
调整 TCP 队列 | sysctl -w net.ipv4.tcp_max_syn_backlog=2048 | 增大 SYN 队列容量,应对高并发连接。 |
启用 SYN Cookie | sysctl -w net.ipv4.tcp_syncookies=1 | 防御 SYN Flood 攻击,增强安全性。 |
刷新路由表 | sysctl -w net.ipv4.route.flush=1 | 强制刷新内核路由表(需配合 ip route flush cache 使用)。 |
3. sysctl
的配置文件
- 文件路径:
/etc/sysctl.conf
- 配置示例:
# 启用 IP 转发 net.ipv4.ip_forward = 1# 禁止 Ping 请求 net.ipv4.icmp_echo_ignore_all = 1# 优化 TCP 参数 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_syncookies = 1
- 生效命令:
sysctl -p
(重新加载配置文件)
4. 注意事项
- 谨慎操作:错误的内核参数可能导致系统不稳定或性能下降。
- 备份配置:修改
/etc/sysctl.conf
前建议备份原文件。 - 验证更改:通过
sysctl parameter_name
确认参数是否生效。
5. 调试技巧
- 监控参数变化:
watch -n 1 "sysctl net.ipv4.ip_forward" # 每秒检查一次 IP 转发状态
- 恢复默认配置:
sysctl -e -w parameter_name=default # 将参数重置为内核默认值
通过灵活使用 sysctl
,您可以实时调整 Linux 系统的内核行为,优化网络性能、增强安全性或排查故障。
以下是关于 Linux 的 sysctl
命令的详细解释和使用方法,结合知识库中的信息整理而成:
1. sysctl
命令概述
sysctl
是 Linux 系统中用于 动态查看和修改内核参数 的工具。这些参数控制系统的内核行为、网络配置、资源限制等。修改后的参数可以在运行时立即生效(临时),或通过配置文件永久保存。
2. 常用命令与操作
(1) 查看内核参数
-
查看所有参数:
sysctl -a
输出所有内核参数及其当前值,例如:
kernel.version = # 内核版本 net.ipv4.ip_forward = 0 # IPv4 转发状态 vm.swappiness = 60 # 内存交换到 swap 的倾向
-
查看特定参数:
sysctl parameter_name
示例:
sysctl net.ipv4.ip_forward # 查看 IPv4 转发状态 sysctl kernel.pid_max # 查看最大 PID 值
(2) 临时修改参数
通过 sysctl -w
命令直接修改参数值,重启后失效:
sysctl -w net.ipv4.ip_forward=1 # 启用 IPv4 转发
sysctl -w kernel.msgmnb=2048 # 调整消息队列大小
(3) 永久修改参数
-
编辑配置文件:
- 在
/etc/sysctl.conf
或/etc/sysctl.d/*.conf
中添加参数:net.ipv4.ip_forward = 1 fs.file-max = 1000000 # 最大打开文件数
- 使用
echo
命令追加参数(知识库[5]):echo "vm.swappiness=10" >> /etc/sysctl.conf
- 在
-
重新加载配置:
sysctl -p # 重新加载 /etc/sysctl.conf sysctl -p /etc/sysctl.d/99-custom.conf # 重新加载指定文件
3. 常见参数与场景示例
场景 1:启用 IPv4/IPv6 转发
# 临时启用 IPv4 转发
sysctl -w net.ipv4.ip_forward=1# 永久配置
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
场景 2:调整文件描述符限制
# 查看当前最大文件数
sysctl fs.file-max# 永久设置为 1,000,000
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
sysctl -p
场景 3:优化 TCP 参数
# 临时调整 TCP 重传超时
sysctl -w net.ipv4.tcp_retries2=15# 永久配置 TCP 缓冲区
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
sysctl -p
场景 4:禁用 IPv6 路由器公告(RA)
# 禁用所有接口的 RA 接收
echo "net.ipv6.conf.all.accept_ra = 0" >> /etc/sysctl.conf
sysctl -p
4. 注意事项
(1) 临时 vs 永久修改
- 临时修改:通过
sysctl -w
或直接写入/proc/sys
文件(如echo 1 > /proc/sys/net/ipv4/ip_forward
)立即生效,但重启后失效。 - 永久修改:必须编辑配置文件并执行
sysctl -p
,或重启系统后自动生效。
(2) /proc
文件系统
- 内核参数的值也保存在
/proc/sys
目录下,例如:cat /proc/sys/net/ipv4/ip_forward # 查看 IPv4 转发状态 echo 1 > /proc/sys/net/ipv4/ip_forward # 临时启用 IPv4 转发
(3) systemctl
与 sysctl
的区别
sysctl
:用于配置内核参数(如网络、内存、文件系统)。systemctl
:用于管理 systemd 服务(如启动/停止服务、查看服务状态)。
5. 验证配置
-
检查参数是否生效:
sysctl net.ipv4.ip_forward # 验证 IPv4 转发状态 cat /proc/sys/vm/swappiness # 验证内存交换倾向
-
查看配置文件内容:
cat /etc/sysctl.conf # 查看主配置文件 grep "net.ipv4" /etc/sysctl.d/* # 查找特定参数的配置
6. 总结
sysctl
是 Linux 系统管理的核心工具,能够灵活调整内核行为以优化性能、安全性和网络配置。关键步骤如下:
- 查看参数:
sysctl -a
或sysctl parameter
。 - 临时修改:
sysctl -w
或直接写入/proc/sys
。 - 永久修改:编辑
/etc/sysctl.conf
并执行sysctl -p
。 - 验证配置:通过
sysctl
或/proc
文件确认参数生效。
如果需要进一步帮助(如特定场景配置或故障排查),请提供更多细节!
sysctl
是 Linux 系统中一个非常重要的命令,用于在运行时动态地修改内核参数。这些内核参数存储在 /proc/sys
目录下,通过 sysctl
命令可以方便地查看和调整这些参数,以满足不同的系统配置需求。下面从命令语法、常用操作、配置持久化等方面详细介绍 sysctl
命令。
命令语法
sysctl
命令的基本语法如下:
sysctl [选项] [参数=值]
常用选项及功能
查看内核参数
-a
:显示所有可用的内核参数及其当前值。
该命令会列出sysctl -a
/proc/sys
目录下所有的内核参数及其对应的值,输出内容较多,可结合grep
命令进行筛选,例如查找与网络相关的参数:sysctl -a | grep net.ipv4
- 参数名:直接指定要查看的内核参数名称,可查看该参数的当前值。
上述命令将显示sysctl net.ipv4.ip_forward
net.ipv4.ip_forward
参数的当前值,该参数用于控制 IPv4 数据包转发功能。
修改内核参数
-w
:临时修改指定内核参数的值,这种修改在系统重启后会失效。
此命令将sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward
参数的值设置为1
,开启 IPv4 数据包转发功能。-p
:从配置文件中加载内核参数设置。通常,sysctl
的持久化配置存储在/etc/sysctl.conf
文件中,使用该选项可以重新加载该文件中的配置。
执行该命令后,系统会读取sysctl -p
/etc/sysctl.conf
文件中的参数设置并应用到当前系统中。
配置持久化
通过 sysctl -w
命令进行的修改是临时的,系统重启后会恢复为默认值。若要使修改持久化,需要将参数设置添加到 /etc/sysctl.conf
文件中。例如,要永久开启 IPv4 数据包转发功能,可编辑 /etc/sysctl.conf
文件,添加以下内容:
net.ipv4.ip_forward = 1
保存文件后,执行 sysctl -p
命令使配置立即生效,并且在系统重启后也会自动加载这些配置。
注意事项
- 权限要求:修改内核参数需要 root 权限,因此在执行
sysctl
命令修改参数时,通常需要使用sudo
或者以 root 用户身份执行。 - 参数影响:部分内核参数的修改可能会对系统性能、安全性或网络连接产生重大影响,在修改之前建议先了解参数的具体含义和作用,避免因错误配置导致系统出现问题。
- 配置文件语法:在
/etc/sysctl.conf
文件中添加参数设置时,要注意语法格式,每行一个参数设置,格式为参数名 = 值
,注释行以#
开头。
sysctl
是一个用于查看和修改 Linux 内核运行时参数的命令行工具。它允许用户动态地调整内核参数,而无需重新编译内核或重启系统。这些参数通常存储在 /proc/sys/
文件系统中,sysctl
提供了一种更方便的方式来访问和修改它们。
常用选项
-a
:显示所有当前的内核参数及其值。-n
:仅显示参数值,不显示参数名。-w
:修改参数值。-p
:从指定的配置文件(默认是/etc/sysctl.conf
)加载参数设置。-e
:忽略错误信息。-q
:安静模式,减少输出。-N
:仅显示参数名,不显示值。-d
:显示参数的描述。
常用用法
1. 查看所有内核参数
sysctl -a
2. 查看特定参数
sysctl net.ipv6.conf.all.forwarding
3. 修改参数值
sysctl -w net.ipv6.conf.all.forwarding=1
4. 从配置文件加载参数
sysctl -p
5. 查看参数描述
sysctl -d net.ipv6.conf.all.forwarding
示例
示例 1:查看所有内核参数
sysctl -a
示例 2:查看特定参数值
sysctl net.ipv6.conf.all.forwarding
示例 3:修改特定参数值
sysctl -w net.ipv6.conf.all.forwarding=1
示例 4:从配置文件加载参数
sysctl -p
示例 5:查看参数描述
sysctl -d net.ipv6.conf.all.forwarding
注意事项
- 永久修改:通过
sysctl -w
修改的参数在系统重启后会恢复为默认值。如果需要永久修改,可以将参数设置添加到/etc/sysctl.conf
文件中,或者创建一个新的配置文件放在/etc/sysctl.d/
目录下。 - 权限:修改内核参数通常需要管理员权限,因此可能需要使用
sudo
。
通过 sysctl
命令,用户可以灵活地查看和修改内核参数,以优化系统性能或满足特定的网络需求。
sysctl
是 Linux 系统中一个用于查看和修改内核参数的工具。通过 sysctl
,你可以动态地调整内核的运行时配置,而无需重启系统。这对于优化系统性能、增强安全性或解决特定问题非常有用。
常用功能
-
查看内核参数
使用sysctl
命令可以查看当前内核参数的值。例如,查看系统的最大文件描述符数:sysctl fs.file-max
-
修改内核参数
你可以使用sysctl
命令临时修改内核参数的值。例如,增加系统的最大文件描述符数:sudo sysctl -w fs.file-max=100000
-
持久化配置
修改后的内核参数在系统重启后会失效。为了使修改永久生效,可以将参数添加到/etc/sysctl.conf
文件中。例如:echo "fs.file-max=100000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
常用内核参数示例
-
网络相关
net.ipv4.ip_forward
:控制 IPv4 数据包转发功能。sudo sysctl -w net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding
:控制 IPv6 数据包转发功能。sudo sysctl -w net.ipv6.conf.all.forwarding=1
-
文件系统相关
fs.file-max
:系统的最大文件描述符数。sysctl fs.file-max
-
内核性能相关
vm.swappiness
:控制内核使用交换空间的倾向。sysctl vm.swappiness
注意事项
- 修改内核参数可能会影响系统的稳定性和安全性,因此在进行修改前应充分了解参数的作用。
- 临时修改的内核参数在系统重启后会失效,需要通过
/etc/sysctl.conf
文件进行持久化配置。
希望这些信息对你有帮助。如果有更多问题,请随时提问。
好的,用户之前已经问过关于 accept_ra
、autoconf
和 forwarding
的关系,现在他们接着问关于 Linux 的 sysctl
命令。看起来用户可能是在学习网络配置,特别是IPv6相关的设置。他们可能想深入了解如何通过 sysctl
命令来管理系统内核参数,进而优化或调整网络功能。
首先,我需要确认用户对 sysctl
的了解程度。他们可能已经通过之前的回答接触过 sysctl
的使用,比如临时修改参数和永久配置。现在需要系统地介绍这个命令的功能、用法以及实际应用场景。
接下来,我需要考虑回答的结构。应该先解释 sysctl
的基本概念,然后详细说明它的主要功能,比如查看、修改参数,以及配置文件的位置。还要包括常用参数和实际例子,特别是用户之前提到的网络相关例子,这样能帮助他们将新学的命令和之前的知识联系起来。
用户可能需要知道如何临时修改参数和永久生效的方法,所以在回答中要区分临时和永久配置的步骤。同时,需要强调安全注意事项,比如在修改内核参数前备份配置,避免系统不稳定。
另外,用户可能对命令的具体语法不太熟悉,所以要给出具体的命令示例,比如查看所有参数、过滤特定参数、临时设置和通过配置文件永久设置。还要提到如何重新加载配置,确保修改生效。
最后,总结部分要简明扼要,强调 sysctl
在系统调优和问题排查中的作用,并提醒用户谨慎操作。这样用户能有一个全面的理解,并知道如何安全地应用这些命令。
以下是关于 Linux sysctl
命令的详细介绍,采用分步解析结构:
1. 基本概念
sysctl
是 Linux 系统中用于动态修改内核运行时参数的命令行工具。
- 作用:通过
/proc/sys/
虚拟文件系统直接操作内核参数,无需重启系统。 - 核心功能:调整网络性能、内存管理、文件系统优化、安全策略等。
2. 主要功能
(1) 查看内核参数
- 查看所有参数(约 1000+ 项):
sysctl -a
- 过滤特定参数(支持通配符
*
):sysctl -a | grep "net.ipv4.tcp_max_syn_backlog"
(2) 修改内核参数
- 临时修改(立即生效,重启失效):
sysctl -w <参数名>=<值> # 示例:开启 IP 转发 sysctl -w net.ipv4.ip_forward=1
- 永久修改:需写入配置文件
/etc/sysctl.conf
或/etc/sysctl.d/*.conf
,然后执行:sysctl -p # 重新加载配置
(3) 配置文件
- 主配置文件:
/etc/sysctl.conf
- 自定义配置:
/etc/sysctl.d/
目录下的.conf
文件(优先级高于主配置)。
3. 常用参数分类
分类 | 典型参数 | 作用 |
---|---|---|
网络 | net.ipv4.ip_forward | 控制 IPv4 数据包转发(路由器功能) |
net.ipv6.conf.all.forwarding | 控制 IPv6 数据包转发 | |
内存管理 | vm.swappiness | 调整系统使用 Swap 分区的倾向(0-100) |
vm.overcommit_memory | 控制内存分配策略 | |
文件系统 | fs.file-max | 系统最大文件句柄数 |
安全 | kernel.sysrq | 启用 SysRq 组合键(系统救援) |
net.ipv4.icmp_echo_ignore_all | 禁止响应 ICMP 请求(Ping) |
4. 实际应用示例
场景 1:优化 TCP 网络性能
# 增大 TCP 连接队列
sysctl -w net.core.somaxconn=4096
# 加快 TIME_WAIT 状态回收
sysctl -w net.ipv4.tcp_tw_reuse=1
场景 2:关闭 IPv4 转发(安全加固)
# 临时关闭
sysctl -w net.ipv4.ip_forward=0
# 永久关闭(编辑 /etc/sysctl.conf)
echo "net.ipv4.ip_forward=0" >> /etc/sysctl.conf
sysctl -p
场景 3:调整虚拟内存行为
# 减少 Swap 使用(建议值 10-60)
sysctl -w vm.swappiness=10
5. 注意事项
- 权限要求:需
root
权限修改参数。 - 参数兼容性:部分参数依赖内核版本或硬件支持。
- 安全风险:错误配置可能导致系统不稳定或安全漏洞。
- 生产环境:修改前建议备份配置文件:
cp /etc/sysctl.conf /etc/sysctl.conf.bak
6. 扩展工具
/proc/sys/
目录:直接通过文件操作修改参数(与sysctl
等效):# 查看参数 cat /proc/sys/net/ipv4/ip_forward # 修改参数 echo 1 > /proc/sys/net/ipv4/ip_forward
systemd-sysctl
:系统启动时加载配置的服务。
总结
sysctl
是 Linux 系统调优和故障排查的核心工具,通过灵活调整内核参数,可显著优化网络性能、资源利用率和安全性。掌握其用法需结合具体场景谨慎操作,建议优先通过配置文件实现持久化修改。
Linux 的 sysctl
命令详解
sysctl
是一个用于在运行时动态配置 Linux 内核参数的实用工具。它通过操作 /proc/sys/
目录下的虚拟文件系统实现对内核参数的读取和修改,常用于优化系统性能、调整网络行为或启用特定功能。以下是对其核心功能的全面解析:
1. 核心功能
• 查看内核参数:实时读取当前内核配置(如网络、内存、安全相关参数)。
• 临时修改参数:修改参数值并立即生效(重启系统后会丢失)。
• 永久配置:通过配置文件保存修改,重启后依然生效。
2. 基本语法
sysctl [选项] [参数名=值]
常用选项:
选项 | 作用 |
---|---|
-a | 显示所有可用参数 |
-w | 临时修改参数(如 sysctl -w net.ipv4.ip_forward=1 ) |
-p | 从配置文件加载参数(默认读取 /etc/sysctl.conf ) |
-e | 忽略未知参数错误(常用于配置加载) |
3. 常见操作
(1) 查看参数
sysctl [参数名] # 查看特定参数的值(如 `sysctl net.ipv4.ip_forward`)
sysctl -a # 列出所有可调整的内核参数
sysctl -a | grep vm # 筛选与虚拟内存(vm)相关的参数
(2) 临时修改参数
sysctl -w kernel.pid_max=65535 # 将进程 ID 最大值设置为 65535
• 立即生效:无需重启。
• 重启失效:修改仅对当前会话有效。
(3) 永久修改参数
-
编辑配置文件:
在/etc/sysctl.conf
或/etc/sysctl.d/
目录下的文件(如10-custom.conf
)中添加参数:# 启用 IPv4 转发 net.ipv4.ip_forward = 1 # 禁用 ICMP 回显响应(防 ping) net.ipv4.icmp_echo_ignore_all = 1
-
加载配置:
sysctl -p /etc/sysctl.d/10-custom.conf # 加载指定文件 sysctl -p # 加载默认配置文件
4. 关键应用场景
(1) 网络性能优化
通过调整 TCP/IP 协议栈参数提升网络吞吐量:
# 增大 TCP 缓冲区大小(单位:字节)
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
# 快速回收 TIME_WAIT 状态的端口
net.ipv4.tcp_tw_recycle = 1
(2) 内存管理
优化内存分配策略,防止系统因内存不足崩溃:
# 允许过量使用内存(风险:可能触发 OOM)
vm.overcommit_memory = 1
# 调整脏页刷新频率(单位:百分比)
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
(3) 安全加固
限制资源使用或关闭潜在风险功能:
# 禁用 core dump 生成
kernel.core_pattern = /dev/null
# 防止 SYN Flood 攻击
net.ipv4.tcp_syncookies = 1
(4) 多核性能调优
提升多核 CPU 利用率:
# 启用 CPU 缓存预取
vm.vfs_cache_pressure = 50
# 分散 IRQ 中断到不同 CPU
kernel.irq_balance = 1
5. 配置文件优先级
系统按以下顺序加载配置(后加载的覆盖前者的冲突项):
/etc/sysctl.d/*.conf
(按文件名升序)/run/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/etc/sysctl.conf
6. 注意事项
• 读写权限:默认需要 root
权限执行修改操作。
• 参数类型:多数参数是整数(0/1表示禁用/启用),需严格遵循格式。
• 依赖关系:某些参数可能依赖内核模块是否加载(如 net.ipv4
需启用 IPv4 协议栈)。
• 风险提示:错误配置可能导致系统不稳定,建议:
• 测试前备份配置文件。
• 使用 sysctl -w
临时调整,验证无误后再写入配置。
7. 调试技巧
• 查看参数实际值:
cat /proc/sys/net/ipv4/ip_forward # 对应 `net.ipv4.ip_forward`
• 动态监控参数效果:
watch -n 1 'sysctl net.ipv4.tcp_rmem' # 每秒刷新一次 TCP 接收缓冲区值
• 与 proc 文件系统结合
:
echo 1 > /proc/sys/net/ipv4/ip_forward # 直接修改参数,等效于 `sysctl -w`
通过 sysctl
,用户可以在精细化控制内核行为与保障系统稳定性之间找到平衡点。无论是网络管理员调优服务器,还是开发者调试程序,这一工具都不可或缺。
sysctl
是 Linux 系统中用于 实时查看和修改内核参数 的命令行工具。它通过读写 /proc/sys/
目录下的文件来动态调整内核和系统行为,无需重启即可生效。以下是其核心功能、用法和示例:
1. sysctl
的核心功能
- 动态调整内核参数:例如网络配置、文件系统行为、安全策略等。
- 查看当前参数值:快速获取系统配置状态。
- 持久化配置:通过配置文件保存参数,使修改在系统重启后仍生效。
2. 基本用法
(1) 查看所有内核参数
sysctl -a
- 输出所有可配置的内核参数及其当前值(路径类似
net.ipv6.conf.all.accept_ra
)。
(2) 查看单个参数
sysctl <参数名>
- 例如查看 IPv6 转发状态:
sysctl net.ipv6.conf.all.forwarding
(3) 临时修改参数
sysctl -w <参数名>=<值>
- 例如启用 IPv6 全局转发:
sudo sysctl -w net.ipv6.conf.all.forwarding=1
(4) 持久化配置
- 通过配置文件:
- 编辑
/etc/sysctl.conf
或/etc/sysctl.d/*.conf
文件:# 示例:禁用 IPv6 的 SLAAC 自动配置 net.ipv6.conf.all.autoconf = 0
- 应用配置:
sudo sysctl -p # 重新加载配置文件(默认加载 `/etc/sysctl.conf`)
- 编辑
3. 典型应用场景
(1) 网络配置
- 启用 IPv6 转发:
sudo sysctl -w net.ipv6.conf.all.forwarding=1
- 禁用 IPv6 的 RA 接收:
sudo sysctl -w net.ipv6.conf.all.accept_ra=0
(2) 文件系统优化
- 增加文件描述符限制:
sudo sysctl -w fs.file-max=100000
(3) 安全增强
- 禁用 IP 转发(IPv4):
sudo sysctl -w net.ipv4.ip_forward=0
(4) 内存与交换分区管理
- 调整 SWAP 使用策略:
sudo sysctl -w vm.swappiness=10 # 减少 SWAP 使用
4. 配置文件结构
- 主配置文件:
/etc/sysctl.conf
- 系统默认的配置文件,直接编辑即可添加配置。
- 模块化配置目录:
/etc/sysctl.d/
- 支持多个配置文件(如
99-sysctl.conf
),便于按功能或来源分类管理。
- 支持多个配置文件(如
- 临时配置:通过
/proc/sys/
直接修改(如echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
)。
5. 示例:配置 IPv6 SLAAC 和转发
# 编辑配置文件(永久生效)
sudo nano /etc/sysctl.d/99-ipv6.conf
添加以下内容:
# 禁用全局 SLAAC 自动配置
net.ipv6.conf.all.autoconf = 0# 启用 IPv6 转发
net.ipv6.conf.all.forwarding = 1# 接受 RA 消息但不自动生成地址
net.ipv6.conf.all.accept_ra = 1
应用配置:
sudo sysctl -p /etc/sysctl.d/99-ipv6.conf
6. 注意事项
-
权限要求:
- 修改内核参数通常需要 root 权限(使用
sudo
)。
- 修改内核参数通常需要 root 权限(使用
-
临时 vs 持久配置:
- 直接通过
sysctl -w
或/proc
修改是 临时的,重启后失效。 - 需通过配置文件实现持久化。
- 直接通过
-
参数作用域:
- 部分参数(如
net.ipv6.conf.all.forwarding
)是全局的,而接口级参数(如net.ipv6.conf.eth0.accept_ra
)需单独配置。
- 部分参数(如
-
验证配置:
- 修改后通过
sysctl <参数名>
或cat /proc/sys/...
验证是否生效。
- 修改后通过
7. 常用参数分类
类别 | 示例参数 | 用途 |
---|---|---|
网络(IPv4/IPv6) | net.ipv4.ip_forward , net.ipv6.conf.all.accept_ra | 控制网络转发、地址配置等。 |
文件系统 | fs.file-max , fs.inotify.max_user_watches | 调整文件句柄、文件系统行为。 |
内存与交换分区 | vm.swappiness , vm.overcommit_memory | 管理内存和 SWAP 的使用策略。 |
安全 | kernel.randomize_va_space , net.ipv4.conf.all.rp_filter | 增强系统安全性和网络防护。 |
总结
sysctl
是 Linux 系统管理员的利器,通过它可快速调整内核参数以优化性能、增强安全或适配网络环境。与直接修改 /proc
文件相比,sysctl
的配置文件机制更便于管理和维护。结合 sysctl -a
和 sysctl -p
,可高效实现参数的查询、临时修改和持久化配置。
相关文章:
Linux的 `sysctl` 命令 笔记250404
Linux的 sysctl 命令 笔记250404 sysctl 是 Linux 系统中用于 动态查看和修改内核运行时参数 的核心工具。它通过 /proc/sys/ 目录的虚拟文件系统接口,允许用户在不重启系统的前提下调整内核行为,涵盖网络、内存、文件系统等关键功能。 📜 核…...
prism WPF 导航
导航和浏览器的后退前进是一样的功能 项目结构 App.xaml.cs using Prism.Ioc; using Prism.Modularity; using Prism.Unity; using PrismWpfApp.ViewModels; using PrismWpfApp.Views; using System; using System.Collections.Generic; using System.Configuration; using S…...
Pytorch实现线性分类
目录 1.导包 2.加载数据 3.获取X与Y数据 4.将X,Y数据转化成tensor张量, tensor张量必须是二维数据 5.用封装的API实现线性分类 5.1导包 5.2建模-神经网络(二分类问题) 5.3定义损失函数 5.4定义优化器 5.5定义训练过程 5.6 计算正确…...
使用人工智能大模型kimi,如何免费高效制作PPT?
今天我们学习人工智能大模型kimi,如何免费协助我们做班会PPT。 免费手把手讲解视频,请访问 https://edu.csdn.net/learn/40402/666417 第一步使用谷歌浏览器,搜索Kimi,看到Kimi智能助手,点击,在Kimi对话框…...
YOLO学习笔记 | 基于YOLO与光流融合的车牌识别方法研究(附Matlab代码)
🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓 基于YOLO与光流融合的车牌识别方法研究 🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓 摘要 针对动态场景下车牌识别易受运动模糊影响的问题,提出结合YOLO目标检测与Lucas-Kanade…...
leetcode 数组总结篇
基础理论 数组:下标时从 0 开始的,地址是连续的,不能删除,只能覆盖;数组的实现:vector动态数组 常用操作 头文件 #include <iostream> #include <vector> #include <cstdint> // IN…...
CCF GESP C++编程 四级认证真题 2025年3月
C 四级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 A B B D D C D D B B B B A A C 1 单选题(每题 2 分,共 30 分) 第 1 题 关于下述代码,说法错误的是( )。 int multiply(int x, int …...
元宇宙浪潮下,前端开发如何“乘风破浪”?
一、元宇宙对前端开发的新要求 元宇宙的兴起,为前端开发领域带来了全新的挑战与机遇。元宇宙作为一个高度集成、多维互动的虚拟世界,要求前端开发不仅具备传统网页开发的能力,还需要掌握虚拟现实(VR)、增强现实&#…...
室内指路机器人是否支持环境监测功能?
并非所有室内指路机器人都具备环境监测功能。那些支持环境监测的室内指路机器人,往往在设计上进行了针对性的优化,搭载了一系列先进且实用的传感器。温湿度传感器犹如一位敏锐的 “温度湿度侦探”,时刻精准地监测室内温度与湿度,为…...
redis的数据类型(1)
https://redis.io/docs/latest/develop/data-types/strings/ 社区版支持: String,字符串 Hash,key-value格式 List,根据插入顺序排序 Set,集合 Sorted set,有排序 Stream, Bitmap, …...
模运算核心性质与算法应用:从数学原理到编程实践
目录 🚀前言🌟数学性质:模运算的理论基石💯基本定义:余数的本质💯四则运算规则:保持同余性的关键 🦜编程实践:模运算的工程化技巧💯避免数值溢出:…...
使用 Messenger 跨进程通讯
在Android中使用Messenger进行跨进程通信(IPC)的步骤如下: 1. 服务端(Service)实现 1.1 创建Service并绑定Messenger public class MessengerService extends Service {private static final String TAG "Mess…...
css炫酷的3D水波纹文字效果实现详解
炫酷的3D水波纹文字效果实现详解 这里写目录标题 炫酷的3D水波纹文字效果实现详解项目概述技术栈核心实现1. 基础布局2. 渐变背景3. 文字效果实现3.1 基础样式3.2 文字漂浮动画 4. 水波纹效果4.1 模糊效果4.2 水波动画 5. 交互效果 技术要点项目难点与解决方案总结 项目概述 在…...
C++类的特殊成员函数:构造、拷贝构造与析构函数详解
目录 编辑一、构造函数 二、拷贝构造函数 三、析构函数 在C 编程中,类的特殊成员函数扮演着至关重要的角色,它们负责对象的创建、复制以及销毁过程。本文将深入探讨构造函数、拷贝构造函数和析构函数的概念、特性及应用场景,并结合代…...
ffmpeg常见命令3
文章目录 1. **文字水印(Text Watermark)**示例命令:更多选项: 2. **图片水印(Image Watermark)**示例命令:更多选项: 3. **画中画(Picture-in-Picture, PIP)…...
C# 中创建统一 API 接口实现方案
在 C# 中创建统一 API 接口需要从架构设计、技术选型和代码实现等多个层面进行规划。以下是详细的实现方案和完整示例代码: 一、技术选型与架构设计 框架选择 ASP.NET Core (6.0)RESTful API 规范 核心组件 统一响应格式:标准化 JSON 响应结构全局异常处…...
考研单词笔记 2025.04.04
accord n一致,符合,协议,条约v与…一致符合,给予,赠予 align v使一致,使对齐 alike a相同的,相似的ad相同地,相似地,同等地 analogous a类似的,相似的 co…...
leetcode 代码随想录 数组-区间和
题目 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 输入: 第一行输入:为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间&…...
Linux学习笔记7:关于i.MX6ULL主频与时钟配置原理详解
以下是关于正点原子B站课程中 i.MX6ULL主频和时钟配置实验的博客内容框架与详细解析,结合实验原理、配置流程及关键代码实现,适合嵌入式开发者参考学习: 一、 实验背景 i.MX6ULL默认启动时由内部BootROM将主频设置为396MHz,但其…...
第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)
✨前言:传参和状态管理,看似简单其实门道不少 在 Web 开发中,前端和后端最核心的交流方式就是“传参”,而“传参”除了涉及如何写代码获取参数,还藏着很多开发者容易忽略的细节: 为什么 URL 带了中文&…...
洛谷题单3-P1075 [NOIP 2012 普及组] 质因数分解-python-流程图重构
题目描述 已知正整数 n n n 是两个不同的质数的乘积,试求出两者中较大的那个质数。 输入格式 输入一个正整数 n n n。 输出格式 输出一个正整数 p p p,即较大的那个质数。 输入输出样例 输入 21输出 7说明/提示 1 ≤ n ≤ 2 1 0 9 1 \le n\…...
Vue组件化开发深度解析:Element UI与Ant Design Vue对比实践
一、Vue组件化开发的核心优势 1.1 组件化架构的天然优势 Vue的组件系统是其最核心的特性之一,采用单文件组件(.vue)形式,将HTML、CSS和JavaScript组合在同一个文件中,形成高内聚、低耦合的代码单元。这种设计显著提升…...
ctfshow VIP题目限免 robots后台泄露
根据题目提示是 robots后台泄露,所以我们试着访问它的后台文件 robots.txt 访问之后发现了有一个/flagishere.txt 目录文件。接着拼接访问它发现了 flag...
突破传统认知:聚类算法的底层逻辑与高阶应用全景解析
一、维度革命:重新定义聚类分析的认知边界 在人工智能的浩瀚星空中,聚类算法犹如一组精密的星际导航仪,帮助我们在无序的数据宇宙中发现隐藏的秩序。这项起源于人类本能分类需求的技术,经历了从简单分组到智能识别的蜕变…...
获取ssh密钥
git bash GitHub官网: Redirecting… ssh-keygen -t rsa -C “git账号” 出现id_rsa.pub 登录github添加 将id_rsa.pub中内容复制 点击SSH and GPG keys 点击New SSH key 起个名字 将id_rsa.pub中内容复制到这里 报错: ssh: connect to host github.com port 2…...
MINIQMT学习课程Day7
在上一篇,我们安装好xtquant,qmt以及python后,这一章,我们学习如何使用xtquant 本章学习,如何获取账号的资金使用状况。 首先,打开qmt,输入账号密码,选择独立交易。 进入交易界面&…...
`accept_ra` 和 `autoconf` 和 `forwarding` 的关系 笔记250404
accept_ra 和 autoconf 和 forwarding 的关系 笔记250404 在 Linux 的 IPv6 网络配置中,accept_ra、autoconf 和 forwarding 是三个密切相关的核心参数,它们的组合直接影响设备在网络中的角色(主机或路由器)和地址配置行为。以下是…...
leetcode数组-二分查找
题目 题目链接:https://leetcode.cn/problems/binary-search/ 文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html 视频讲解:https://www.bilibili.com/video/BV1fA4y1o715 给定一个 n 个元素有序的&…...
vector的介绍与代码演示
由于以后我们写OJ题时会经常使用到vector,所以我们必不可缺的是熟悉它的各个接口。来为我们未来作铺垫。 首先,我们了解一下: https://cplusplus.com/reference/vector/ vector的概念: 1. vector是表示可变大小数组的序列容器…...
SDK中窗口调用
存在窗口A和B的win32程序 , 当点击窗口A中的按钮后会弹出窗口B #include <windows.h>// 窗口 B 的窗口过程 LRESULT CALLBACK WindowProcB(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {switch (uMsg) {case WM_DESTROY:PostQuitMessage(0);break;default:ret…...
Web Service技术
Web Service 是一种基于网络的、分布式的技术,用于在不同的应用程序之间进行通信和数据交换。以下是关于它的详细介绍: 定义与概念 Web Service 是一种通过互联网协议(如 HTTP)提供服务的软件组件,它使用标准的 XML …...
使用内存数据库来为mapper层的接口编写单元测试
简介 使用内存数据库来测试mapper层的sql代码,这种方式可以让测试案例摆脱对数据库的依赖,进而变得可重复执行。 这里选择的内存数据库是h2,它是纯java编写的关系型数据库,开源免费,而且轻量级的,性能较好…...
PowerMonitor的使用步骤
PowerMonitor是功耗分析中常用的测试和分析工具,不仅精度高,而且遇到需要找方案提功耗单的时候,有时还需要PowerMonitor的数据作为辅助日志。 1.先接上假电池正负极,再按PowerMonior的电源键 2.桌面点击PowerMonitor快捷图标 3.调…...
【C++经典例题】杨辉三角问题
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:C经典例题 期待您的关注 目录 一、问题描述 二、解题思路 解法 1 思路 解法 2 思路 三、代码实现 解法 1 代码 解法 2 代码…...
java自主学习网站(springboot+ssm+mysql)含运行文档
java自主学习网站(springbootssmmysql)含运行文档 该系统是一个专注于Java编程的在线教育平台。系统的主要功能和特点如下: 导航栏:系统顶部设有导航栏,用户可以通过它快速访问不同的页面,包括首页、课程列表、分享资料列表、讲…...
T-SQL语言的链表查找
T-SQL语言的链表查找 在数据库系统中,数据结构的选择对性能优化至关重要。链表作为一种常见的数据结构,具有灵活性和动态存储的优势。尽管在SQL数据库中,传统的表结构已经足够应对大多数场景,但在某些情况下,将链表的…...
浅析 Spring AI 与 Python:企业级 AI 开发的技术分野
一、技术架构与生态体系对比 Spring AI 构建在 Spring Boot 生态之上,其核心架构包含以下模块: 模型适配层:通过统一 API 支持 OpenAI、Anthropic、Hugging Face 等主流模型提供商,实现跨平台模型调用。例如,调用 Cl…...
为 IDEA 设置管理员权限
IDEA 安装目录 兼容性选择管理员身份运行程序 之后 IDEA 中的操作(包括终端中的操作)都是管理员权限的了...
数据结构|排序算法(一)快速排序
一、排序概念 排序是数据结构中的一个重要概念,它是指将一组数据元素按照特定的顺序进行排列的过程,默认是从小到大排序。 常见的八大排序算法: 插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、基数排序 二、快速…...
如何计算财富自由所需要的价格?
写在前面:【财富自由计算器】已上线,快算算财富自由要多少 多少钱,才能实现你的财富梦想? 需要多少,才能实现财务安全、财务独立,甚至财务自由? 看到结尾,你会很清楚地看到&…...
南京大学与阿里云联合启动人工智能人才培养合作计划,已将通义灵码引入软件学院课程体系
近日,南京大学与阿里云宣布启动人工智能人才培养合作计划,共同培养适应未来技术变革、具备跨学科思维的AI创新人才。 基于阿里云在云计算和AI大模型领域的技术优势和南京大学在人工智能领域的学科优势,双方将共同设计兼具前瞻性和应用性的人…...
基于 Python 的自然语言处理系列(70):检索增强生成(RAG)
1. 什么是 RAG? 在许多大模型(LLM)应用场景中,我们需要使用特定的用户数据,而这些数据并未包含在模型的训练集中。检索增强生成(Retrieval Augmented Generation,RAG)是一种有效的解…...
Flink CDC Pipeline mysql to doris
flink 与 flink-cdc版本兼容 运行同步程序 最终在 flink-1.20.1 与 flink-cdc-3.1.1 跑通测试 配置yaml文件 [rootchb1 flink-cdc-3.1.1]# cat mysql2doris.yaml ################################################################################ # Description: Sync…...
计算机网络-TCP的拥塞控制
内容来源:小林coding 本文是对小林coding的TPC拥塞控制的精简总结 为什么要有拥塞控制? 前面的流量控制是避免「发送方」的数据填满「接收方」的缓存,但是并不知道网络的中发生了什么 计算机网络都处在一个共享的环境,因此也…...
ArkTs的UI装饰器(自定义组件生命周期、页面组件生命周期、所有UI装饰器使用及示例)
目录 自定义组件定义 UI装饰器 @Component(V1) 自定义组件生命周期 freezeWhenInactive11+ @Entry(通用) 页面组件生命周期 EntryOptions10+ Component、Entry示例 @Reusable(V1) @Builder(通用) @BuilderParam(通用) 参数 引用传递示例 this指向 尾随…...
#管理Node.js的多个版本
在 Windows 11 上管理 Node.js 的多个版本,最方便的方法是使用 nvm-windows(Node Version Manager for Windows)。它允许你轻松安装、切换和管理多个 Node.js 版本。 📌 方法 1:使用 nvm-windows(推荐 ✅&a…...
Transformer由入门到精通(一):基础知识
基础知识 0 前言1 EncoderDecoder2 Bahdanau Attention3 Luong Attention4 Self Attention/Masked Self Attention5 MultiHead Self Attention6 Key-Value Attention7 ResNet8 总结 0 前言 我之前看transformer的论文《Attention Is All You Need》,根本看不懂&…...
Windows安装Node.js+Express+Nodemon
Windows安装Node.jsExpressNodemon 陈拓 2025/4/3-2025/4/4 1. 概述 在《Node.jsExpressNodemonSocket.IO构建Web实时通信》 https://blog.csdn.net/chentuo2000/article/details/134651743?spm1001.2014.3001.5502 一文中我们介绍了在Linux系统上的安装过程,本…...
关于JVM和OS中的指令重排以及JIT优化
关于JVM和OS中的指令重排以及JIT优化 前言: 这东西应该很重要才对,可是大多数博客都是以讹传讹,全是错误,尤其是JVM会对字节码进行重排都出来了,明明自己测一测就出来的东西,写出来误人子弟… 研究了两天&…...
LeetCode hot 100—柱状图中最大的矩形
题目 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释:最…...