Linux 服务器作为Nginx web服务器常见优化参数

内核参数调整cat /etc/sysctl.conf# sysctl settings are defined through files in

# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max = 999999
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_wmem = 4096 32768 262142 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_syncookies = 1 net.ipv4.tcp_max_syn.backlog = 1024

  file-max:这个参数表示进程(比如一个work进程)可同时打开最大句柄数,这个参数直接限制最大并发连接数,需要根据实际情况配置

       tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的tcp链接,这个对于服务器而言很有意义,因为服务器上总有大量的TIME-WAIT状态链接

       tcp_keepalive_time : 这个参数表示当keepalive启用时,tcp发送keepalive消息的频度。默认2小时。若将其设置的小一些,可以更快清理无效的链接

       fin_timeout:  这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间

       max_tw_buckets: 这个参数表示操作系统允许TIME-WAIT套接字数量的最大值,如果超过这个数字,TIME-WAIT套接字将立刻清除并打印告警信息,该参数默认180000,过多的TIME-WAIT套接字会使服务器变慢

       tcp_max_syn.backlog: 这个参数表示tcp三次握手建立阶段收到SYN请求队列的最大长度,默认1024.将其设置的大一些可以使出现Nginx繁忙来不及accept新连接的情况下,Linux不至于丢失客户端发起的连接请求

       ip_local_port_range: 这个参数定义了在UDP和TCP连接中本地端口取值范围

       net.ipv4.tcp_rmem:定义了TCP接收缓存(tcp接收滑动窗口)的最小值、默认值、最小值

       net.ipv4.tcp_wmem : 定义了TCP发送缓存(tcp发送滑动窗口)的最小值、默认值、最小值

       netdev_max_backlog: 当网卡接收数据包的速度大于内核处理的速度时,会有一个对列保存这些数据包。这个参数表示该对列的最大值

       rmem_default: 这个参数表示内核套接字接收缓存区默认的大小

       wmem_default :这个参数表示内核套接字发送缓存区默认的大小

       rmam_max:这个参数表示内核套接字接收缓冲区的最大值

       wmem_max:这个参数表示内核套接字发送缓冲区的最大值 
注意:滑动窗口的大小与套接字缓存区会在一定程度上影响并发连接数目。每个TCP连接都会为维持TCP滑动窗口而消耗内存,这个窗口会根据服务器的处理速度收缩或扩张。参数wmem_max的设置,需要平衡物理内存大小、Nginx并发处理的最大连接数量(由Nginx。conf中的worker_processes和worker_connections参数决定)而确定。当然如果仅仅是为了提高并发量使服务器出现OutOf Memory 问题而去降低滑动窗口大小。那么并不合适,因为滑动窗口过小会影响大数据传输速率。所以rmem_default、wmem_default、rmam_max、wmam_max这4个参数的设置需要根据实际业务特性和实际硬件成本来综合考虑

        tcp_syncookies: 该参数与性能无关,用于解决tcp的SYN攻击 

       

草都可以从石头缝隙中长出来更可况你呢
原文地址:https://www.cnblogs.com/rdchenxi/p/12363543.html