解决WEB(apache)服务器time_wait过高的性能优化过程
目录
1.网站的硬件环境
2.修改Httpd.conf
3.修改sysctl.conf文件
一、网站环境LAMP硬件环境
[root@www conf]# dmidecode -s processor-version
Intel(R) Xeon(R) CPU E3-1270 V2 @ 3.50GHz
四核八线程
内存32G
[root@www conf]# free -m
total used free shared buffers cached
Mem: 32080 14406 17674 0 189 1905
-/+ buffers/cache: 12310 19769
Swap: 1023 0 1023
硬盘为SSD raid10 大小 256G
问题环境如下time_wait 9K多,而且一直很稳定,不轮是高峰期,还是平时。都一直停在9K多
[root@www conf]# netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
TIME_WAIT 9142
FIN_WAIT1 80
FIN_WAIT2 19
ESTABLISHED 89
SYN_RECV 88
CLOSING 10
LAST_ACK 3
下面是一步一步的配置
二、修改Httpd.conf文件
1)谷歌了一些配置
参考了下,然后查看了下服务器现在的sysctl.conf的配置
发现 下面的这些配置都已经配置过了
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 修改系?默认的 TIMEOUT 时间
这些参数跟原来系统上现有的参数差不多,应该也是从网上cp下来的
重新sysctl -p 了下,发现没什么效果。
2)看了下后端的apache配置参数
# apache conf conf/httpd-wdl.conf
# Created by http://www.wdlinux.cn
# Last Updated 2010.06.01
Timeout 10
KeepAlive Off
MaxKeepAliveRequests 512
KeepAliveTimeout 5
UseCanonicalName Off
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
TraceEnable off
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php index.htm
这是原来的配置,
下面是修改后的配置
Timeout 10 与客户端连接超时的时间,这个暂时没改变
KeepAlive On 这个给关闭了,在HTTP1.1中,一次连接可以多次传输,使的一次连接中可以传递多个HTTP请求,然后我给开启了
MaxKeepAliveRequests 100 设置一次连接内,可以进行多少次请求,原来是512 修改了 100
KeepAliveTimeout 15 如果服务器已经完成了一次请求,多长时间一直没有接受到下一次请求就会断开连接,这个设置为了15
UseCanonicalName Off
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
TraceEnable off
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php index.htm
修改完这几个参数后然后apachectl graceful了下,有了一点效果
[root@www conf]# netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
TIME_WAIT 7594
FIN_WAIT1 84
FIN_WAIT2 55
ESTABLISHED 848
SYN_RECV 21
CLOSING 2
LAST_ACK 12
[root@www conf]# netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
TIME_WAIT 3659
FIN_WAIT1 33
FIN_WAIT2 101
ESTABLISHED 754
SYN_RECV 23
CLOSING 3
LAST_ACK 8
经过上面的修改后,有一些改变,time_wait已经降到了 3000多
三、老大帮忙又修改了几个参数sysctl.conf
后面老大又给了两条建议,修改了下
net.ipv4.tcp_keepalive_time = 120 改成了30 保持连接的时间,由120改到了30
net.ipv4.tcp_max_tw_buckets = 10000改成100 这个是设置服务器同时保持的time_wait的数目
重新设置下Ulimit参数
cat >>/etc/security/limits.conf<<EOF
* soft nofile 655350
* hard nofile 655350
EOF
然后Ulimit -SHn 了下
然后time_wait的数量就降到了
[root@www conf]# netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
TIME_WAIT 96
FIN_WAIT1 46
FIN_WAIT2 29
ESTABLISHED 838
SYN_RECV 30
CLOSING 7
LAST_ACK 3
解决WEB(apache)服务器time_wait过高的性能优化过程的更多相关文章
- GNU Linux高并发性能优化方案
/*********************************************************** * Author : Samson * Date : 07/14/2015 * ...
- 高并发&性能优化(二)------系统监控工具使用
上一篇主要从总体介绍了高并发&性能优化的相关思路和方法,本篇主要介绍系统监控工具. [CPU查看工具] ------top命令(性能) 进入top命令后,按1即可看到每核CPU的运行指标与详细 ...
- 用Netty开发中间件:高并发性能优化
用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传.因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本.Net ...
- 用Netty开发中间件:高并发性能优化(转)
用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传.因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本.Net ...
- SpringCloud高并发性能优化
1. SpringCloud高并发性能优化 1.1. 前言 当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免 1.2. 优化步骤 第一步:优化大SQL ...
- Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战
视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...
- 高并发&性能优化(一)------总体介绍
[开篇词] 本文主要通过一些经典的高并发场景,以及一些基本的运维工具来讲述一些关于高并发以及性能优化相关的内容,主要包括性能瓶颈的定位,性能调优的思路和技巧等. [性能的衡量指标] ?什么是性能 性能 ...
- 嵌入式流媒体音视频服务器EasyIPCamera中live555发送性能优化点
EasyIPCamera流媒体服务器 今年EasyDarwin团队在给国内某最大的金融安防公司做技术咨询的时候,开发了一款适用于嵌入式IPCamera.NVR的RTSP流媒体服务器:EasyIPCam ...
- web前端开发,如何提高页面性能优化?
内容方面: 1.减少 HTTP 请求 (Make Fewer HTTP Requests) 2.减少 DOM 元素数量 (Reduce the Number of DOM Elements) 3.使得 ...
随机推荐
- Bzoj 2243: [SDOI2011]染色 树链剖分,LCT,动态树
2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 5020 Solved: 1872[Submit][Status ...
- 开发者MAC电脑里的十八般兵器
古人常以刀.枪.剑.戟.斧.钺.铲.叉.鞭.锏.锤.戈.镋.棍.槊.棒.矛.钯十八种兵器,样样精通,来形容一个人的武学技能get状态.在开发者的世界里,熟练掌握各种辅助工具,可以达到事半功倍,快速提高 ...
- linux下avr单片机开发:中断服务程序
不管是什么单片机程序,中断总是非常重要的一部分 ,linux 下的avr开发,主要是依靠avr-gcc,以及avr-libc,它们对中断程序的格式要求,与window下的icc-avr以及win-av ...
- 学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀
本篇文章中,我们一起探究了图像处理中,最基本的形态学运算--膨胀与腐蚀.浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试.......... 一.理论 ...
- cas改造随笔
原http://www.cnblogs.com/hellowood/archive/2010/08/05/1793364.html 键字: sso域名:cas.server.com 登陆地址(spri ...
- Http(2)
1.传递的请求参数如何获取 GET方式: 参数放在URI后面 POST方式: 参数放在实体内容中 核心的API: request.getParameter("参数名"); 根据参 ...
- 使用PHPmailer发送邮件的详细代码
一.使用PHPMailer发送邮件的原因 PHP有内置的mail()方法,但是由于一些主机空间不支持该方法,所以经常会遇到无法发送邮件的情况. 所以,可以下载PHPMailer类,实现邮件发送. 二. ...
- uva 167 - The Sultan's Successors(典型的八皇后问题)
这道题是典型的八皇后问题,刘汝佳书上有具体的解说. 代码的实现例如以下: #include <stdio.h> #include <string.h> #include < ...
- HDU ACM 1392 Surround the Trees->凸包
分析:直接求出凸包.再算边长就可以. 另外仅仅有一个点时为0.00单独处理,两个点直接为距离也单独处理. #include<iostream> #include<cmath> ...
- MySQL查询
DQL 操作 DQL 数据查询语言(重要) 数据库执行DQL语句不会对数据做出任何改变,而是让数据库发送结果集给客户端. 查询返回的结果是一张虚拟表. 查询关键字:SELECT ...