1
markmx 2017-03-06 12:15:30 +08:00 1
换个好路由器.
|
2
IanPeverell 2017-03-06 12:22:54 +08:00 1
感觉是:请求太多了,一次发不出那么多请求,全排路由缓存里了,然后把缓存挤爆了后面的都排不进去了就超时了,然后处理这些请求花了一两分钟,换个加宽带宽,然后异步请求更好一点
|
3
onetrlee 2017-03-06 12:24:49 +08:00 1
1L+1
如果有在用路由,先尝试不用路由,再跑一下.如果有用光猫把光猫改成桥接,直连电脑然后电脑拨号跑一下试试. 我前段时间也是写爬虫,就是这个问题,最开始,1 秒撑死直接处理不到 1000 个请求,上行带宽只用了不到 10M.后来去掉路由有提升但是还是没跑满,又把光猫改成桥接电脑直接拨号,问题就解决了. 所以,如果你确定代码没问题的话,检查一下自己网络会经过的设备,挨个排查吧. |
4
imn1 2017-03-06 12:26:49 +08:00 1
可以确认 LZ 不玩 P2P ,是个好孩子
|
5
4ever911 OP 我也怀疑是路由器,这个是华为的 3000 多的路由器,按说不至于这么脆弱啊。
我确实在阿里云上测试过,毫无压力。 |
6
4ever911 OP 说错了, netgear 的路由器
|
8
4ever911 OP |
9
8355 2017-03-06 14:47:53 +08:00
肯定是路由器设置问题. 找找一般抗攻击之类的设置.
|
10
ericbize 2017-03-06 15:00:45 +08:00
不要开 Qos , 网件的 Qos 好奇怪,连测速的都给搞一下。
|
12
sola97 2017-03-06 15:12:18 +08:00 via Android
记得以前用 zmap ,速度过快就全堆内存里了, 24G 内存堆满就报错,网卡还要处理十分钟
|
13
yxqcyl 2017-03-06 16:10:56 +08:00
楼主广东人?
|
15
webcoder 2017-03-06 17:34:58 +08:00
端口刷太多,然后不释放,锁死了??
|
16
Sh888 2017-03-06 17:39:25 +08:00
家用宽带应该有最大连接数限制吧。
|
17
dsg001 2017-03-06 20:06:09 +08:00
本机 gevent+requests 跑百万 url 没问题,路由器应该事设置有问题吧
|
18
bertie55 2017-03-06 20:10:32 +08:00
|
19
qydyhyn 2017-03-06 20:23:25 +08:00
用软路由试试吧!
|
20
nicevar 2017-03-06 20:38:17 +08:00 via iPhone
量太大了,家用路由器扛不住的,我的 R8000 和 6300 被我跑崩好多次
|
21
4ever911 OP 最后发现, 路由器表示不背锅, 是我的程序写的有问题
在 gevent 调用的函数里面,我直接用的 Requests.get 来下载页面,这个方式下不能复用连接,也没有主动去调用关闭,所以程序保持了几千个服务器之间的连接,最后把路由器玩死了。 现在修改成用 session 来 get ,一切完美了,速度也快了好多。 nCount = 50 connection_limit = nCount adapter = requests.adapters.HTTPAdapter(pool_connections=connection_limit, pool_maxsize=connection_limit) session = requests.session() session.mount('http://', adapter) fetchpool = Pool(nCount) for job in jobs: fetchpool.spawn(self.foobar, session, job) fetchpool.join() def foobar(self, session, job): session.get(......) 不过,之前也没留心,我的路由器也有一些问题,非常不稳定,尤其是 wifi ,干扰严重,即使我已经选择了别人都没有用的 channel |
22
skylancer 2017-03-07 08:26:03 +08:00 via Android
几千的连接就能跑挂..
我是建议先把渣渣网件固件换了 啊 8500 啊,那再见... |
23
log4geek 2017-03-07 17:09:20 +08:00
|