优化线上nginx与haproxy的sysctl配置参数

需积分: 9 4 下载量 13 浏览量 更新于2024-09-08 1 收藏 1KB TXT 举报
"该文件包含了针对线上环境使用的Nginx和HAProxy服务的优化sysctl配置,旨在提高网络性能和系统稳定性。" sysctl是Linux内核参数调整工具,允许我们在运行时更改内核配置,以优化系统行为,特别是对于高性能、高并发的Web服务器如Nginx和HAProxy来说,正确的sysctl设置至关重要。 以下是一些关键参数的详细解释: 1. `fs.file-max=1048576`:这个参数设定了系统可以打开的最大文件数。增大此值可以处理更多并发连接。 2. `net.ipv4.tcp_max_tw_buckets=60000`:定义了TCP时间等待(Time-Wait)连接的状态数量上限,防止过多占用内存。 3. `net.ipv4.tcp_sack=1`:启用选择性应答(SACK),这有助于提高在网络拥塞时的数据恢复效率。 4. `net.ipv4.tcp_window_scaling=1`:开启滑动窗口缩放,允许TCP窗口大小超过65535字节,提高带宽利用。 5. `net.ipv4.tcp_rmem` 和 `net.ipv4.tcp_wmem`:分别设置了TCP接收和发送缓冲区的最小、默认和最大值,这些值的调整可以优化带宽利用和减少延迟。 6. `net.core.wmem_default` 和 `net.core.rmem_default`:设置默认的接收和发送网络缓冲区大小,有助于提升网络吞吐量。 7. `net.ipv4.tcp_keepalive_time`、`net.ipv4.tcp_keepalive_intvl` 和 `net.ipv4.tcp_keepalive_probes`:定义了TCP连接保持活动的间隔时间、重试间隔和尝试次数,防止死连接占用资源。 8. `net.ipv4.tcp_syncookies=1`:开启TCP同步序列号cookie,用于防止SYN洪水攻击。 9. `net.ipv4.tcp_max_orphans`:设置孤儿连接(未完成三次握手的连接)的最大数量,避免资源耗尽。 10. `net.ipv4.tcp_max_syn_backlog`:限制未完成三次握手的连接队列长度,防止服务器过载。 11. `net.ipv4.tcp_synack_retries` 和 `net.ipv4.tcp_syn_retries`:设置TCP SYN和SYN+ACK重试次数,减少无效连接的创建。 12. `net.ipv4.tcp_timestamps=0`、`net.ipv4.tcp_tw_recycle=1` 和 `net.ipv4.tcp_tw_reuse=1`:关闭或开启TCP时间戳、快速回收和重用TIME_WAIT状态的连接,以节省资源。 13. `net.ipv4.tcp_mem`:设置TCP内存管理的三个阈值,影响内存分配策略。 14. `net.ipv4.ip_local_port_range`:定义本地端口范围,增加可用端口数量,有利于处理大量并发连接。 15. `vm.overcommit_memory=1`:设置内存超额承诺策略,允许在物理内存不足时分配更多内存,适合高并发场景。 16. `kernel.shmmax`、`kernel.shmmni`、`kernel.sem`:设置共享内存的最大值、共享内存段的数量以及信号量参数,对于多进程通信有影响。 17. `vm.dirty_background_ratio` 和 `vm.dirty_ratio`:定义了后台脏页清理的触发比例,平衡磁盘I/O和系统性能。 18. `kernel.pid_max=4194303`:设定系统可分配的最多进程数,确保系统能处理大量并发任务。 通过上述参数的调整,可以优化网络性能,增强系统的健壮性和抗压能力,确保Nginx和HAProxy在高负载环境下稳定运行。不过,调整内核参数前,务必理解其含义,并根据具体服务器硬件和应用需求进行适当调整,以避免不必要的问题。