Nginx优化内核配置及说明
Linux 内核参数优化
Linux 核参数适合于通用的场景下, Linux 的特点 可以根据不同的应用场景
Nginx 作为静态Web 务器反向代理服不同服务器时,所用的内核配置也不同的本文针对 多并发 Nginx 用, 出内核 数修改样表
修改/etc sysctl.conf 配置 如下:
fs.file- max = 999999
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 61000
net.ipv4.tcp_rmem = 4096 32768 262142
net.ipv4.tcp_wmen = 4096 32768 262142
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
执行sysctl -p命令, 使修改生效
核参数的作用如下:
l ) fs file-max 表示进程(在 Nginx 里指一个工作进程)可以同时打开的最大句柄数。本参数影响最大并发连接数
2 ) net.core.netdev_max_backlog :当网卡接收报文速度大于内核处理速度时,本参数设置这个缓冲队列最大值
3 ) net.core.rmem_default 表示内核套接字接收缓冲区默认值
4 ) net.core.wmem_default 表示内核套接字发送缓冲区默认值
5 ) net.core.rmem_max :表示内核套接字接收缓冲区最大值
6 ) net.core.wmem_max 表示内核套接字发送缓冲区最大值
7) net.ipv4.tcp_tw_reuse :参数为1表示允许将 TIME_WAIT 状态的套接字重新用于新的TCP连接。服务器上的 TCP 协议栈在工作时会有大量的 TIME_WAIT 状态连接,重新使用这些连接对于服务器处理大并发连接非常有用
8 ) net.ipv4.tcp_keepalive_time 表示当 keepalive 启用时, TCP 发送 keepalive 消息的频率 默认为2小时,如果本值变小,可 以更快地清理无效的连接
9) net.ipv4.tcp_fin_timeout 表示服务器主动关闭连接时,套接字的 FIN_WAIT-2状态最大时间
10 ) net.ipv4.tcp_max_tw_buckets 表示操作系统允许的 TIME_WAIT 套接字数量的最大值。当超过这个值, TIME_WAIT 状态的套接字被立即清除并输出警告消息,默认值为180000 ,过多的TIME_WAIT 套接字会使服务器速度变慢
11 ) net.ipv4.ip_local_port_range :定义 UDP和TCP 连接中本地端口范围 (不包括连接到远端的端口)
12 ) net.ipv4.tcp_rmem :定义 TCP 接收缓存( TCP 接收窗口)的最小值、默认值、最大值
13 ) net.ipv4.tcp_wmen :定义 TCP 发送缓存 (TCP 发送窗口)的最小值、默认值、最大值
14 ) net.ipv4.tcp_syncookies 解决TCP的SYN 攻击
15 ) net.ipv4.tcp_max_syn_backlog :表示 TCP 三次握手阶段 SYN请求队列最大值,默认为 1024 。调置为更大的值可以使 Nginx 在非常繁忙的情况下,若来不及接收新的连接时, Linux 不至于丢失客户端新创建的连接请求