参数说明
Linux内核参数的配置对于性能的影响是巨大的。 可以通过修改/etc/sysctl.conf文件来调整。下面是每个参数的简要说明:
参数名 | 参数值 | 说明 | 建议 |
---|---|---|---|
vm.swappiness | 0 | 控制内核将哪些页面交换到磁盘以释放内存。 | 如果您的系统拥有足够的内存容量,建议将这个参数的值设置为 0,以减少交换分区的使用。 |
vm.panic_on_oom | 1 | 控制系统在内存不足时是否会宕机。 | 如果您的系统拥有足够的内存容量,建议将这个参数的值设置为 1,以确保系统不会因为内存不足而出现问题。 |
kernel.panic | 10 | 控制系统在内核崩溃时重新启动的时间。 | 如果您的系统存在内核崩溃的问题,建议将这个参数的值设置得较小,以便快速重新启动系统。 |
fs.file-max | 65536 | 控制内核允许打开的文件数的最大数量。 | 如果您的应用程序需要大量的文件句柄,建议增加这个参数的值。 |
kernel.sysrq | 0 | 控制内核是否允许使用 SysRq 键来执行紧急操作。 | 如果您不需要使用 SysRq 键,建议将这个参数的值设置为 0,以增加系统的安全性。 |
kernel.printk | 5 4 1 7 | 控制内核消息的打印级别。 | 如果您不需要详细的内核消息,建议将这个参数的值设置为 3 4 1 3,以减少内核消息的频率和级别。 |
kernel.softlockup_panic | 1 | 控制系统在发生软锁定时是否宕机。 | 如果您的系统存在软锁定的问题,建议将这个参数的值设置为 1,以便快速重新启动系统。 |
net.ipv4.conf.default.rp_filter | 0 | 控制反向路径检测。 | 如果您的系统需要进行反向路径检测,建议将这个参数的值设置为 1。 |
net.ipv4.ip_forward | 1 | 控制 IP 转发功能。 | 如果您的系统需要使用 IP 转发功能,建议将这个参数的值设置为 1。 |
net.core.netdev_max_backlog | 40960 | 控制网络设备接收队列的长度。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.core.optmem_max | 921600 | 控制内核套接字缓冲区的最大大小。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.core.rmem_default | 2097152 | 控制内核套接字接收缓冲区的默认大小。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.core.rmem_max | 8388608 | 内核套接字接收缓冲区的最大大小。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.tcp_rmem | 4096 87380 8388608 | 内核套接字 TCP 接收缓冲区的最小、默认、最大大小。 | 如果您的系统的网络流量较大,建议增加这些参数的值。 |
net.ipv4.tcp_wmem | 4096 87380 8388608 | 内核套接字 TCP 发送缓冲区的最小、默认、最大大小。 | 如果您的系统的网络流量较大,建议增加这些参数的值。 |
net.ipv4.udp_mem | 8388608 12582912 16777216 | 内核套接字 UDP 缓冲区的最小、默认、最大大小。 | 如果您的系统的网络流量较大,建议增加这些参数的值。 |
net.ipv4.udp_rmem_min | 65536 | 内核套接字 UDP 接收缓冲区的最小大小。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.udp_wmem_min | 65536 | 内核套接字 UDP 发送缓冲区的最小大小。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.tcp_no_metrics_save | 1 | 控制内核是否保存 TCP 的性能指标。 | 如果您不需要保存 TCP 的性能指标,建议将这个参数的值设置为 1,以减少系统的 I/O 负载。 |
net.ipv4.icmp_echo_ignore_broadcasts | 1 | 控制内核是否响应广播地址的 ICMP 请求。 | 如果您不需要响应广播地址的 ICMP 请求,建议将这个参数的值设置为 1,以增加系统的安全性。 |
net.ipv4.ipfrag_high_thresh | 5242880 | 控制内核 IP 分片的高阈值。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.ipfrag_low_thresh | 2932160 | 控制内核 IP 分片的低阈值。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.ip_local_port_range | 1025 65530 | 控制内核分配本地端口的范围。 | 如果您的应用程序需要大量的本地端口,建议增加这些参数的值。 |
net.ipv4.neigh.default.gc_thresh1 | 8192 | 控制内核网络邻居表的 GC 阈值。 | 如果您的系统的网络流量较大,建议增加这个参数的值。| |
net.ipv4.neigh.default.gc_thresh2 | 4092 | 控制内核网络邻居表的 GC 阈值。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.neigh.default.gc_thresh3 | 8192 | 控制内核网络邻居表的 GC 阈值。 | 如果您的系统的网络流量较大,建议增加这个参数的值。 |
net.ipv4.tcp_fin_timeout | 10 | 控制内核 TCP 连接终止时的超时时间。 | 如果您的应用程序需要快速地建立和终止 TCP 连接,建议将这个参数的值设置为较小的值。 |
net.ipv4.tcp_keepalive_time | 3600 | 控制内核 TCP 连接的空闲时间。 | 如果您的应用程序需要保持 TCP 连接的长时间空闲状态,建议增加这个参数的值。 |
net.ipv4.tcp_max_syn_backlog | 40960 | 控制内核 TCP SYN 队列的最大长度。 | 如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。 |
net.ipv4.tcp_max_tw_buckets | 1440000 | 控制内核 TCP TIME-WAIT 队列的最大长度。 | 如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。 |
net.ipv4.tcp_rmem | 92160 6000000 17476000 | 内核套接字 TCP 接收缓冲区的最小、默认、最大大小。 | 如果您的系统的网络流量较大,建议增加这些参数的值。 |
net.ipv4.tcp_sack | 1 | 控制内核是否启用 TCP SACK。 | 如果您的应用程序需要使用 TCP SACK,建议将这个参数的值设置为 1。 |
net.ipv4.tcp_synack_retries | 2 | 控制内核 TCP 连接建立时的重试次数。 | 如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。 |
net.ipv4.tcp_syncookies | 1 | 控制内核是否启用 TCP SYN Cookie。 | 如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。 |
net.ipv4.tcp_syn_retries | 2 | 控制内核 TCP 连接建立时的重试次数。 | 如果您的系统需要处理大量的 TCP 连接请求,建议增加这个参数的值。 |
net.ipv4.tcp_tw_recycle | 1 | 控制内核是否启用 TCP TIME-WAIT 回收机制。 | 如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。 |
net.ipv4.tcp_tw_reuse | 1 | 控制内核是否启用 TCP TIME-WAIT 重用机制。 | 如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。 |
net.ipv4.tcp_window_scaling | 1 | 控制内核是否启用 TCP 窗口扩展机制。 | 如果您的系统需要处理大量的 TCP 连接请求,建议将这个参数的值设置为 1。 |
net.ipv4.tcp_timestamps | 1 | 控制内核是否启用 TCP 时间戳机制。 | 如果您的应用程序需要使用 TCP 时间戳机制,建议将这个参数的值设置为 1。 |
net.core.somaxconn | 65535 | 内核套接字连接队列的最大长度。 | 如果您的系统需要处理大量的 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