linux内核优化
Posted 彭荣俭的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux内核优化相关的知识,希望对你有一定的参考价值。
调整linux的最大文件打开数和用户进程数
打开
/etc/security/limits.conf
,在最后一行添加如下命令:
* soft nofile 65535
* hard nofile 65535
* soft nproc 10240
* hard nproc 10240
在系统的/etc/rc.
local
文件添加如下内容
ulimit
-SHn 65535
#
#临时打开最大文件数
#Linux 6.4之后,如果只修改了该文件中的nproc,那么其他非root用户对应的max_user_processes并不会改变,仍然是1024,这个是因为受到了下面这个文件的影响,改成和nproc 10240一样
vim /etc/security/limits.d/90-nproc.conf
#开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN Flood(洪水攻击)攻击
net.ipv4.tcp_syncookies = 1
#表示SYN 队列的长度,默认1024,建议加大队列的长度为8192或更多,就能容纳更多等待连接的网络连接数量,该参数为服务器端用于记录那些尚未接受到客户端确认信息的连接请求最大值
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_synack_retries=2 #SYN-ACK握手状态重试次数,默认5
#
设置允许系统打开的系统范围,即用于向外连接的端口范围
net.ipv4.ip_local_port_range = 4000 65000
# TCP
失败重传次数,默认是15,减少次数可释放内核资源
net.ipv4.tcp_tw_recycle = 1
#
允许将TIME-WAIT sockets 重新用于新的TCP连接
提示:reuse和recycle这两个参数是为了防止生产环境下的web、squid等业务服务
器time_wait网络状态数量过多设置的
net.ipv4.tcp_tw_reuse = 1
#用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,如果超过这个数值,孤立连接将立即被复位并打印出警告信息,这个限制只是为了防止简单的DOS攻击,不能过分依靠这个限制甚至人为减少这个值,更多的情况是增加这个值
net.ipv4.tcp_max_orphans = 16384
#默认值是128,这个参数用于调节系统同时发起的TCP连接数,在高并发的请求中,默认的值可能会导致链接超时或重传,因此需要结合并发请求数来调节此值
net.core.somaxconn = 16384
# 表示系统同时保持 TIME_WAIT套接字的最大数量,如果超出这个数值,TIME_WAIT套接字将立刻清楚并打印警告信息,默认为180000,对于Apache\nginx等服务器可以将其调低一点,如改为5000-30000,此项参数可以控制TIME_WAIT套接字的最大数量,编码Squit服务器被大量的TIME_WAIT套接字拖死#timewait的数量,默认是180000
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_fin_timeout = 2 #修改FIN-WAIT-2保存状态时间,默认是60秒
以上是关于linux内核优化的主要内容,如果未能解决你的问题,请参考以下文章