ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

WEB服务器参数优化配置模版

2021-03-22 13:55:34  阅读:180  来源: 互联网

标签:WEB 16777216 core 模版 tcp ipv4 max 服务器 net


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有