
1 markmx 2017-03-06 12:15:30 +08:00 换个好路由器. |
&nbp; 2 IanPeverell 2017-03-06 12:22:54 +08:00 感觉是:请求太多了,一次发不出那么多请求,全排路由缓存里了,然后把缓存挤爆了后面的都排不进去了就超时了,然后处理这些请求花了一两分钟,换个加宽带宽,然后异步请求更好一点 |
3 onetrlee 2017-03-06 12:24:49 +08:00 1L+1 如果有在用路由,先尝试不用路由,再跑一下.如果有用光猫把光猫改成桥接,直连电脑然后电脑拨号跑一下试试. 我前段时间也是写爬虫,就是这个问题,最开始,1 秒撑死直接处理不到 1000 个请求,上行带宽只用了不到 10M.后来去掉路由有提升但是还是没跑满,又把光猫改成桥接电脑直接拨号,问题就解决了. 所以,如果你确定代码没问题的话,检查一下自己网络会经过的设备,挨个排查吧. |
4 imn1 2017-03-06 12:26:49 +08:00 可以确认 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 |