|
楼主 |
发表于 2003-5-18 15:58:28
|
显示全部楼层
要改这个wait的时间可不容易,本来想在/proc目录里面调整一些参数就好了吧,但是没有的调。。。。。看来还要打补丁。
这个时候找到了一个叫ipvs的东西,从gentoo来的,有了这个就可以在/proc/SYS/NET/IPV4/里面多一个VS目录,里面有设置timeout时间的文件。这个东西据说是work,however(我不“但是”了),我试了一下不行,这个说是virtual server用的,也就是cluster里面的东西。我们运气不好里面的timeout_TIMEWAT不是我们要的timeout设置(可能,并不确定是什么)。
这下没有补丁好下载了,看来只好自己作补丁了。卡卡。
仔细研究一下这个google里面的各种文章,最后找到了在内核的 tcp.h 定义了这个timeout值。
用vi打开 linux-2.4.20/include/net/tcp.h
找到 TCP_TIMEWAIT_LEN 这个值,将里面的60改到你想要的东西就好了,我改成了15.。。。哈哈,恐怕太小了,不复合国际标准了。
这个是我改完的代码,出了那个值还改了几个reties的值,这些也可以减小服务器被攻击时候的负担。
- #define TCP_RETR1 3 /*
- * This is how many retries it does before it
- * tries to figure out if the gateway is
- * down. Minimal RFC value is 3; it corresponds
- * to ~3sec-8min depending on RTO.
- */
-
- #define TCP_RETR2 10 /*
- * This should take at least
- * 90 minutes to time out.
- * RFC1122 says that the limit is 100 sec.
- * 15 is ~13-30min depending on RTO.
- */
- #define TCP_SYN_RETRIES 3 /* number of times to retry active opening a
- * connection: ~180sec is RFC minumum */
- #define TCP_SYNACK_RETRIES 5 /* number of times to retry passive opening a
- * connection: ~180sec is RFC minumum */
- #define TCP_ORPHAN_RETRIES 7 /* number of times to retry on an orphaned
- * socket. 7 is ~50sec-16min.
- */
- #define TCP_TIMEWAIT_LEN (15*HZ) /* how long to wait to destroy TIME-WAIT
- * state, about 60 seconds */
- #define TCP_FIN_TIMEOUT TCP_TIMEWAIT_LEN
- /* BSD style FIN_WAIT2 deadlock breaker.
- * It used to be 3min, new value is 60sec,
- * to combine FIN-WAIT-2 timeout with
- * TIME-WAIT timer.
- */
复制代码
好了到此,插播广告,我去编译一下内核先。然后再看看效果。 |
|