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内核优化的主要内容,如果未能解决你的问题,请参考以下文章

在包含 kernel_fpu_begin() 的文件上生成和优化 Linux 内核中的 FP/SIMD 代码?

Linux性能优化 第四章 性能工具:特定进程CPU

一般优化linux的内核,需要优化啥参数

一般优化linux的内核,需要优化啥参数

Linux内核协议栈 NAT性能优化之FAST NAT

AMD工程师优化Linux内核