用作负载均衡服务器的内核优化

相关的系统参数优化:

默认的Linux内核参数考虑的是最通用场景,不符合用于支持高并发访问的Web服务器的定义,根据业务特点来进行调整,当Nginx作为静态web内容服务器、反向代理或者提供压缩服务器的服务器时,内核参数的调整都是不同的,此处针对最通用的、使Nginx支持更多并发请求的TCP网络参数做简单的配置

优化内核参数:

修改/etc/sysctl.conf

文件、网络优化:

fs.file-max=1000000		单个进程较最大可以打开的句柄数

net.ipv4.tcp_tw_reuse=1		1为允许将time_wait状态的socket重新用于新的tcp链接(对服务器来说意义重大,因为总有大量的time_wait状态的连接存在,现在可以复用)
net.ipv4.tcp_keepalive_time=600		持久连接时,tcp发送长链接消息的频度,默认2h,设置为10m可更快清理无效连接
net.ipv4.tcp_fin_timeout=30		当服务器主动关闭连接时,socket保持在fin_wait_2的状态的较大时间
net.ipv4.tcp_max_tw_buckets=5000	操作系统允许time_wait套接字数量的较大值,当超过此值,time_wait套接字将立刻被清除并打印警告信息,默认8000,过多的time_wait套接字会使web服务器变慢
net.ipv4.ip_local_port_range=1024 65000		定义udp和tcp连接的本地随机端口取值范围
net.ipv4.tcp_rmem=10240 87380 12582912	定义tcp接收缓存的最小值、默认值、最大值		
net.ipv4.tcp_wmem=10240 87380 12582912		定义tcp发送缓存的最小值、默认值、最大值
net.ipv4.tcp_max_syn_backlog=8192	tcp三次握手建立阶段接受syn请求队列的最大长度,默认1024。设置大一些可使:出现nginx繁忙来不及accept新连接时,linux不至于丢失客户端发起的连接请求
net.ipv4.tcp_tw_recycle=1		设置启用time_wait快速回收	
net.core.netdev_max_backlog=8096	当网卡接收数据包的速度大于内核处理速度时,会有一个消息对联保存这些数据包,这个参数表示该队列的较大值
net.core.somaxconn=65535		tcp全连接的数量

内核内存优化:

根据业务逻辑、硬件调整

net.core.rmem_default=6291456	内核套接字接收缓存区默认大小
net.core.rmem_max=12582912	内核套接字接收缓存区的最大值
net.core.wmem_default=6291456	内核套接字发送缓存区默认大小
net.core.wmem_max=12582912	内核套接字发送缓存区最大值

安全防护:

net.ipv4.tcp_syncookies=1	与性性能无关,用于解决tcp的syn攻击
net.ipv4.tcp_max_orphans=262114		设置系统中最多有多少个tcp套接字不被关联到任何一个用户文件句柄上。如果超过此值,孤立连接将立即被复位,并输出警告信息。(此指令能简单防止dos攻击,不用过分依靠这个限制,或者减小此值,更多情况是更加这个值)

PAM资源限制优化:

修改/etc/security/limits.conf

vim /etc/security/limits.conf
*   -	core	    unlimited
*   -	nproc	    1000000
*   -	nofile	    1000000
*   -	memlock	    32000
*   -	msgqueue    8192000
posted @ 2022-02-14 12:01  suyanhj  阅读(62)  评论(0)    收藏  举报