摘要
所谓的Linux服务器内核参数优化(适用于Apache、Nginx、Squid等web应用,特殊服务可能需要略加调整)主要是指针对业务服务应用,在Linux系统中对系统内核参数的调整。优化没有一定的标准。
下面两部分将介绍内核优化。第一部分主要讲内核配置文件,大家可以根据自己的需求进行取舍。第二部分是我在测试高并发时经常做的一些内核优化,仅供参考。
首先,内核配置文件
1。tcp套接字
#停留在FIN-WAIT-2状态的时间,以便系统可以处理更多的连接。该参数的值为整数,单位为秒。
net.ipv4.tcp_fin_timeout = 2
#打开重用并允许TIME_WAIT套接字用于新的TCP连接。默认值为0,表示关闭。
net.ipv4.tcp_tw_reuse = 1
#打开TCP连接中TIME_WAIT套接字的快速恢复。默认值为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syn_retries=1
#开启SYN cookie,在SYN等待队列溢出时启用cookie处理,防止少量SYN攻击。默认值为0,表示关闭。
net.ipv4.tcp_syncookies = 1
#表示SYN队列的长度,预设为1024。这里,队列长度被设置为262 144,以容纳更多的等待连接。
net.ipv4.tcp_***x_syn_backlog = 262144
#系统同时保持最大数量的TIME_WAIT套接字。如果超过该值,将立即清除并输出警告信息。默认值为180000。对squid影响不大,但可以控制TIME_WAIT套接字的最大值,避免squid服务器被拖死。
net.ipv4.tcp_***x_tw_buckets =5000
#表示系统中不与任何用户文件句柄关联的TCP套接字的最大数量。如果超过此处设置的数量,将重置连接并输出警告消息。这种限制只是为了防止简单的DoS攻击。该值不能太小。
net.ipv4.tcp_***x_orphans = 16384
#增加TCP最大缓冲区大小
net.ipv4.tcp_rmem=4096 87380 4194304net.ipv4.tcp_wmem=4096 16384 4194304
2。保持激活的方面
启用#keepalived时TCP发送的keepalived消息的拼写。默认为2小时。
net.ipv4.tcp_keepalive_time = 600
#TCP发送keepalive探测以确定此连接已断开多少次。这个值也可以根据情况适当缩短。
net.ipv4.tcp_keepalive_probes = 5
#探测消息发送的频率乘以tcp_keepalive_probes,将得到自探测开始以来没有响应的连接的终止时间。默认值为75秒,这意味着大约11分钟后不会断开任何活动连接。对于普通应用来说,这个值有点太大,可以根据需要减小,尤其是web服务器。
net.ipv4.tcp_keepalive_intvl = 15
3。端口特征
#指定外部连接的端口范围。默认值为32768 61000。
net.ipv4.ip_local_port_range = 1024 65000
#定义系统中每个端口的最大**队列长度。对于经常处理新连接的高负载web服务环境,默认值是128,这个值太小了。
net.core.so***xconn = 16384
#表示当每个网络接口接收数据包的速率快于内核处理这些数据包的速率时,允许发送到队列的最大数据包数量。
net.core.netdev_***x_backlog = 16384
#避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts=1
PS:修改生效
vi /etc/sysctl.conf
配置在添加适当的参数后生效
sysctl -p
二。压力测量和调整参数的参考
#允许等待侦听,设置系统中套接字连接的最大数量。
echo 50000 >/proc/sys/net/core/so***xconn
#快速tcp连接恢复:0-不加速tcp恢复1-加速TCP恢复
echo 1 >/proc/sys/net/ipv4/tcp_tw_recycle
# tcp连接重用:0-不启用空tcp回收1-空tcp回收
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
#不防御洪水攻击:0-移除洪水攻击防御1-启用洪水攻击防御。
echo 0 >/proc/sys/net/ipv4/tcp_syncookies
#设置系统中文件访问的最大数量
echo "ulimit -n 50000" >> /etc/profilesource /etc/profile
#设置用户的最大进程数
vi /etc/security/limits.conf
oracle soft nproc 16384oracle hard nproc 16384
以上就是关于linux内核优化的全部内容。可以根据需求进行取舍,尤其是系统并发业务高的时候,可以考虑适当优化。
本文来自暮以随然投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/594732.html