网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > Linux
本月文章推荐
.从硬盘安装SUSE Linux10系统的两.
.Linux系统环境下的高级隐藏技术介.
.Linux下查看CPU类型三种方法的区.
.浅谈Linux优化及安全配置.
.Ubuntu、Fedora、Mandriva Linux.
.网友列举22项Windows或Mac不能而.
.关于Linux操作系统DHCP配置步骤概.
.Ubuntu 8.04(LTS)离线升级包使.
.如何在Linux中设置透明代理.
.实用技巧:如何有效率的操作Linu.
.lilo大杂耍.
.Redhat公司启动高校巡讲 扩张开源.
.在Linux操作系统上运行Windows应.
.Linux 指令篇:起始管理--init.
.红帽呼吁美联邦法院限制专利促开.
.Linux 指令篇:使用者资讯与管理-.
.Linux基金会希望NVIDIA显卡驱动开.
.linux系统下设置IP地址并激活方法.
.LINUX守护进程介绍.
.Linux下安装Realplayer不能播放启.

如何提高Linux系统应对短连接的负载能力

发表日期:2008-4-10


 

在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。

你可以用下面的命令看到:

netstat -ant| grep -i time_wait

有时候,这个数目是惊人的:

netstat -ant|grep -i time_wait |wc -l

可能会超过三四万。这个时候,我们需要修改 linux kernel 的 tcp time wait的时间,缩短之,有个 sysctl 参数貌似可以使用,它是 /proc/sys/net/ipv4/tcp_fin_timeout,缺省值是 60,也就是60秒,很多网上的资料都说将这个数值设置低一些就可以减少netstat 里面的TIME_WAIT状态,但是这个说法是错误的。经过认真阅读Linux的内核源代码,我们发现这个数值其实是输出用的,修改之后并没有真正的读回内核中进行使用,而内核中真正管用的是一个宏定义,在 $KERNEL/include/net/tcp.h里面,有下面的行:

#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT

* state, about 60 seconds */

而这个宏是真正控制 TCP TIME_WAIT 状态的超时时间的。如果我们希望减少 TIME_WAIT 状态的数目(从而节省一点点内核操作时间),那么可以把这个数值设置低一些,根据我们的测试,设置为 10 秒比较合适,也就是把上面的修改为:

#define TCP_TIMEWAIT_LEN (10*HZ) /* how long to wait to destroy TIME-WAIT

* state, about 60 seconds */

然后重新编译内核,重启系统即可发现短连接造成的TIME_WAIT状态大大减少:

netstat -ant | grep -i time_wait |wc -l

一般情况都可以至少减少2/3。也能相应提高系统应对短连接的速度。

上一篇:在Linux上搭建 一个简单的vsftpd服务器 人气:740
下一篇:新手学堂:Linux Shell下删除目录的命令 人气:1509
浏览全部Linux的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐