内核优化参数记录

参数说明

Linux内核参数的配置对于性能的影响是巨大的。 可以通过修改/etc/sysctl.conf文件来调整。下面是每个参数的简要说明:

参数名参数值说明建议
vm.swappiness0控制内核将哪些页面交换到磁盘以释放内存。如果您的系统拥有足够的内存容量,建议将这个参数的值设置为 0,以减少交换分区的使用。
vm.panic_on_oom1控制系统在内存不足时是否会宕机。如果您的系统拥有足够的内存容量,建议将这个参数的值设置为 1,以确保系统不会因为内存不足而出现问题。
kernel.panic10控制系统在内核崩溃时重新启动的时间。如果您的系统存在内核崩溃的问题,建议将这个参数的值设置得较小,以便快速重新启动系统。
fs.file-max65536控制内核允许打开的文件数的最大数量。如果您的应用程序需要大量的文件句柄,建议增加这个参数的值。
kernel.sysrq0控制内核是否允许使用 SysRq 键来执行紧急操作。如果您不需要使用 SysRq 键,建议将这个参数的值设置为 0,以增加系统的安全性。
kernel.printk5 4 1 7控制内核消息的打印级别。如果您不需要详细的内核消息,建议将这个参数的值设置为 3 4 1 3,以减少内核消息的频率和级别。
kernel.softlockup_panic1控制系统在发生软锁定时是否宕机。如果您的系统存在软锁定的问题,建议将这个参数的值设置为 1,以便快速重新启动系统。
net.ipv4.conf.default.rp_filter0控制反向路径检测。如果您的系统需要进行反向路径检测,建议将这个参数的值设置为 1。
net.ipv4.ip_forward1控制 IP 转发功能。如果您的系统需要使用 IP 转发功能,建议将这个参数的值设置为 1。
net.core.netdev_max_backlog40960控制网络设备接收队列的长度。如果您的系统的网络流量较大,建议增加这个参数的值。
net.core.optmem_max921600控制内核套接字缓冲区的最大大小。如果您的系统的网络流量较大,建议增加这个参数的值。
net.core.rmem_default2097152控制内核套接字接收缓冲区的默认大小。如果您的系统的网络流量较大,建议增加这个参数的值。
net.core.rmem_max8388608内核套接字接收缓冲区的最大大小。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.tcp_rmem4096 87380 8388608内核套接字 TCP 接收缓冲区的最小、默认、最大大小。如果您的系统的网络流量较大,建议增加这些参数的值。
net.ipv4.tcp_wmem4096 87380 8388608内核套接字 TCP 发送缓冲区的最小、默认、最大大小。如果您的系统的网络流量较大,建议增加这些参数的值。
net.ipv4.udp_mem8388608 12582912 16777216内核套接字 UDP 缓冲区的最小、默认、最大大小。如果您的系统的网络流量较大,建议增加这些参数的值。
net.ipv4.udp_rmem_min65536内核套接字 UDP 接收缓冲区的最小大小。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.udp_wmem_min65536内核套接字 UDP 发送缓冲区的最小大小。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.tcp_no_metrics_save1控制内核是否保存 TCP 的性能指标。如果您不需要保存 TCP 的性能指标,建议将这个参数的值设置为 1,以减少系统的 I/O 负载。
net.ipv4.icmp_echo_ignore_broadcasts1控制内核是否响应广播地址的 ICMP 请求。如果您不需要响应广播地址的 ICMP 请求,建议将这个参数的值设置为 1,以增加系统的安全性。
net.ipv4.ipfrag_high_thresh5242880控制内核 IP 分片的高阈值。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.ipfrag_low_thresh2932160控制内核 IP 分片的低阈值。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.ip_local_port_range1025 65530控制内核分配本地端口的范围。如果您的应用程序需要大量的本地端口,建议增加这些参数的值。
net.ipv4.neigh.default.gc_thresh18192控制内核网络邻居表的 GC 阈值。如果您的系统的网络流量较大,建议增加这个参数的值。|
net.ipv4.neigh.default.gc_thresh24092控制内核网络邻居表的 GC 阈值。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.neigh.default.gc_thresh38192控制内核网络邻居表的 GC 阈值。如果您的系统的网络流量较大,建议增加这个参数的值。
net.ipv4.tcp_fin_timeout10控制内核 TCP 连接终止时的超时时间。如果您的应用程序需要快速地建立和终止 TCP 连接,建议将这个参数的值设置为较小的值。
net.ipv4.tcp_keepalive_time3600控制内核 TCP 连接的空闲时间。如果您的应用程序需要保持 TCP 连接的长时间空闲状态,建议增加这个参数的值。
net.ipv4.tcp_max_syn_backlog40960控制内核 TCP SYN 队列的最大长度。如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。
net.ipv4.tcp_max_tw_buckets1440000控制内核 TCP TIME-WAIT 队列的最大长度。如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。
net.ipv4.tcp_rmem92160 6000000 17476000内核套接字 TCP 接收缓冲区的最小、默认、最大大小。如果您的系统的网络流量较大,建议增加这些参数的值。
net.ipv4.tcp_sack1控制内核是否启用 TCP SACK。如果您的应用程序需要使用 TCP SACK,建议将这个参数的值设置为 1。
net.ipv4.tcp_synack_retries2控制内核 TCP 连接建立时的重试次数。如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。
net.ipv4.tcp_syncookies1控制内核是否启用 TCP SYN Cookie。如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。
net.ipv4.tcp_syn_retries2控制内核 TCP 连接建立时的重试次数。如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。
net.ipv4.tcp_tw_recycle1控制内核是否启用 TCP TIME-WAIT 回收机制。如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。
net.ipv4.tcp_tw_reuse1控制内核是否启用 TCP TIME-WAIT 重用机制。如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。
net.ipv4.tcp_window_scaling1控制内核是否启用 TCP 窗口扩展机制。如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。
net.ipv4.tcp_timestamps1控制内核是否启用 TCP 时间戳机制。如果您的应用程序需要使用 TCP 时间戳机制,建议将这个参数的值设置为 1。
net.core.somaxconn65535内核套接字连接队列的最大长度。如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。

参考示例

vm.swappiness = 0
vm.panic_on_oom=1
kernel.panic=10
fs.file-max = 65536
kernel.sysrq = 0
kernel.printk = 5 4 1 7
kernel.softlockup_panic = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.ip_forward = 1
net.core.netdev_max_backlog = 40960
net.core.optmem_max = 921600
net.core.rmem_default = 2097152
net.core.wmem_default = 2097152
net.core.wmem_max = 8388608
net.core.rmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
net.ipv4.udp_mem = 8388608 12582912 16777216
net.ipv4.udp_rmem_min = 65536
net.ipv4.udp_wmem_min = 65536
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.ipfrag_high_thresh = 5242880
net.ipv4.ipfrag_low_thresh = 2932160
net.ipv4.ip_local_port_range = 1025 65530
net.ipv4.neigh.default.gc_thresh1 = 8192
net.ipv4.neigh.default.gc_thresh2 = 4092
net.ipv4.neigh.default.gc_thresh3 = 8192
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 3600
net.ipv4.tcp_max_syn_backlog = 40960
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_rmem = 92160 6000000 17476000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.core.somaxconn = 65535
Published At