如何减少由大量小文件请求导致的高连接数
今天看了一下我的几台web,发现一个异常情况,从早上开始,其中一台机器连接数就跑到400多,其他机器才200多。
开始我以为是机器有问题,看了网络负载都正常,看了下访问日志,发现是很多xml文件访问导致的,因为请求是通过hash的,所以xml都到这个机器了,结果导致所有请求下载这个xml小文件的请求都到这个机器了,当然会造成大量的连接。
但是小文件应该下载很快,下载完毕后,应该就关闭连接,但是我看到系统的ESTABLISHED连接还是有400多,TIME_WAIT连接是一百多,正常机器应该分别是200多和几十个。
因此我猜测是tcp设置的timeout时间太长导致的。
于是我修改了sysctl,把 net.ipv4.tcp_fin_timeout 值修改为5,重载后,看情况却没有任何改变。
请教下要怎么才能减少无用的连接,减少系统的连接数呢?
开始我以为是机器有问题,看了网络负载都正常,看了下访问日志,发现是很多xml文件访问导致的,因为请求是通过hash的,所以xml都到这个机器了,结果导致所有请求下载这个xml小文件的请求都到这个机器了,当然会造成大量的连接。
但是小文件应该下载很快,下载完毕后,应该就关闭连接,但是我看到系统的ESTABLISHED连接还是有400多,TIME_WAIT连接是一百多,正常机器应该分别是200多和几十个。
因此我猜测是tcp设置的timeout时间太长导致的。
于是我修改了sysctl,把 net.ipv4.tcp_fin_timeout 值修改为5,重载后,看情况却没有任何改变。
请教下要怎么才能减少无用的连接,减少系统的连接数呢?
作者: youzhengchuan 发布时间: 2011-03-05
貌似在apache的配置文件里就有这个timeout参数的
作者: 低调de运维 发布时间: 2011-03-08