免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2474 | 回复: 3
打印 上一主题 下一主题

[FTP] 为什么会这样?TIME_WAIT有问题~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-11 05:40 |只看该作者 |倒序浏览
我开了个FTP下载服务器,用VSFTPD做下载~~

我限制了每个IP只有一个连接~,但用户大多用多线程工具下载,一个IP有很多的连接。我做过如下的测试:
我开一个端口,限制单线程,然后我用快车开10线程下载,虽然有九个线程连接不上~~但是我在服务器端用netstat -n | grep TIME_WAIT | grep :83 | wc -l查看时,得到的结果竟然是100多!!(而我只开一个线程的话,得到的结果就会是0)
在我的服务器高峰时,我查看到TIME_WAIT的状态竟然有16000多个!!当时我就差点晕了过去!

这会是什么原因造成的呢?是因为VSFTPD对TCP状态处理不当?还是因为系统内核对TCP的处理有误?

我应该会什么解决方法呢?

我现在想到的解决方法就是:
修改VSFTPD的源代码,增加一个设置变量~~,如果某个IP的连接失败次数多于这个数值,我就用IPTABLES封掉他的IP,同时用MYSQL禁止他的用户名(我是用MYSQL认证的),这样做,我不知道是我可耻呢还是那些使用多线程下载的用户可耻呢?

请大家给点意见,不然我的服务器早晚会被用户拖死去了~~

论坛徽章:
0
2 [报告]
发表于 2004-03-11 10:56 |只看该作者

为什么会这样?TIME_WAIT有问题~~

我找到了一个暂时缓解的方法~~~
我就是改了一下VSFTPD的源代码,把那个IP连接的错误代码改了一下,改为了550,这样多线程下软软件就不会一次又一次的重试连接了~~~,呵呵,再用 netstat-n | grep TIME_WAIT一看,这种连接数少了很多~

论坛徽章:
0
3 [报告]
发表于 2004-03-11 20:29 |只看该作者

为什么会这样?TIME_WAIT有问题~~

老大,该哪里呀

论坛徽章:
0
4 [报告]
发表于 2004-03-18 09:26 |只看该作者

为什么会这样?TIME_WAIT有问题~~

改VSFTPD的源代码呀~~,你找到那个IP连接过多的回复客户端的信息把那里的代码改一下就好啦~~不过现在我不用VSFTPD了,改回用PUREFTPD,虽然PUREFTPD一个进程所占用内存多些,但它比VSFTPD要稳定得多,虽然我也很喜欢VSFTPD,但前两天被VSFTPD的僵尸进程气爆了~怎么也解决不了,所以就改了!PUREFTPD的我也是照样改代码实现减少TIME_WAIT的~~

其实也许还有一种方法应该是可以解决的~,那就是用IPTABLES,不过我用IPTABLES试了很久也没有得到我要的理想效果~~

我想进一步改一个内核源代码,把其中相关的TCP状态值减少一点,不知道会不会有效果~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP