WEB服务器参数优化配置模版
作者:互联网
WEB服务器参数优化配置模版
女主宣言:
冰冻三尺非一日之寒,经验要靠平时不断的积累。从故障案例解决到性能参数调优,HULK运维团队在支持公司多个生命线业务的过程中积累了不少的经验,今天就为大家分享一篇来自HULK addops团队的“WEB服务端系统性能参数优化总结模版”,希望能够帮助大家!
PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!
背景简介
在日常的运维工作中,常常会遇到一些由于大流量导致的性能瓶颈,比如当连接数达到某值时,服务端的负载开始加大、日志error开始增多、应用程序开始超时等等问题。每一个系统的负载能力都会有一个它的临界值,而如果通过科学的方法进行系统调优,就会最大化的发挥系统性能的吞吐力,并充分利用系统资源,增大这个临界值。
经过漫长的经验积累,团队内部总结出了一份标配的配置模版,并且已经稳定支持了公司内部的多个重要业务线。无私的我们决定将这份模版分享给大家,并和大家一起聊聊参数优化的这些事儿!
系统参数优化
内核参数优化:
vi /etc/sysctl.conf
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 0
net.ipv4.tcp_fin_timeout = 3
net.ipv4.tcp_rmem = 4096 2097152 16777216
net.ipv4.tcp_wmem = 4096 2097152 16777216
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_tw_buckets = 18000
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_mem = 196608 2097152 3145728
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 300000
fs.file-max = 1280000
net.unix.max_dgram_qlen = 10000
执行 sysctl -p 使其生效。
细节说明:
TCP有一种行为,可以缓存每个连接最新的时间戳,后续请求中如果时间戳小于缓存的时间戳,即视为无效,相应的数据包会被丢弃。
推荐设置:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
文件句柄限制:
vi /etc/security/limits.d/def.conf
- soft nofile 65535
- hard nofile 65535
- soft nproc 65535
- hard nproc 65535
保存退出后,即可生效。
Web程序参数优化
Nginx:
server {
listen 80 backlog=2048;
}
PHP:
pm = static;
pm.max_children = 1024;
pm.max_requests = 1000;
emergency_restart_threshold = 1;
emergency_restart_interval = 1m;
修改完Nginx+PHP的配置文件后重启生效。
细节说明:
pm.max_children的值一定不能大于"* soft nproc"文件句柄数的限制,否则会报错。
总结
团队内部的每一个Web服务器初始化的过程中都会按照这个模版去进行配置,当然有特殊情况的话还是要具体问题具体分析。每个参数的解释可自行通过google查看,这里不多做解释。如果对于某个参数的配置有疑问、或者有啥想交流的地方,关注我们留言即可!o(∩_∩)o~
标签:WEB,16777216,core,模版,tcp,ipv4,max,服务器,net 来源: https://blog.51cto.com/15127564/2668204