解决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.使得 ...
随机推荐
- ubuntu12.04编译rtems doc目录
我的rtem的版本是rtems-4.10.2:首先安装textinfo:sudo apt-get install texinfo 然后: cd rtems-4.10.2/doc../bootstrap ...
- HTML头部<head>学习
元素是所有头部元素的容器. 元素包含了所有的头部标签元素.在 元素中你可以插入脚本(scripts), 样式文件(CSS),及各种meta信息. 以下标签都可以添加到 head 部分: 1.title ...
- CSS选择器详解(伪类) 转 http://blog.csdn.net/Panda_m/article/details/50084699
CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...
- linux运维安全工具集合[持续更新中..]
lynis 安全漏洞检测工具 https://cisofy.com/download/lynis/ https://cisofy.com/files/lynis-2.2.0.tar.gz ...
- SAP HANA SLT 将Oracle表 数据同步到HANA数据库
简单介绍SLT 同步数据的整个配置过程: 在SLT系统中创建与Oracle的链接 在HANA监控平台上,创建Configuration 创建表的同步作业 ——————————————BEGIN———— ...
- C++ Virtual介绍 分类: C/C++ 2015-06-16 21:36 26人阅读 评论(0) 收藏
参考链接:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html 学过C++的人都知道在类Base中加了Virtual关键字的函 ...
- Linux学习笔记总结--memcached配置
Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到 ...
- App升级时数据库的迁移更新
前一段时间在进行App升级的时候,由于一开始版本初期没有考虑完善,导致走了很多弯路,后来经过自己的一些思考,总结出了一些在app升级的时候,数据库内文件同步保持更新的经验,希望能给大家带来帮助. 总体 ...
- Google Map API v2 步步为营 (二)----- Location
接上篇. 改造一下MapsActivity: public class MapsActivity extends Activity implements LocationListener, InfoW ...
- jsp获取服务端的访问信息
获取服务端访问信息 public static String getUrl(HttpServletRequest request){ String url = ""; if(req ...