2013-10-25 26 views
1

我正在用java编写一个爬取器,我被某物粘住了。更多线程=每秒更少的请求数?

在我的抓取程序中,我使用HttpURLConnection来下载静态远程页面的线程。 我试图用不同的参数下载一个小文件(2kb)。连接的超时设置为1秒。我注意到,如果我使用100个线程进行下载,我就会每秒提出3次更多的请求(每秒约10k个请求,使用),而当使用500个线程时,我会使用“仅限”每秒4k个请求。

我预计至少可以处理100个线程的每秒请求数。

你能解释一下为什么这样做的行为,如果有一些参数激活某处增加最大并行连接数?

谢谢:)

+2

线程争用? –

回答

1

我认为这只是你的CPU的问题,在某一点上的开关威胁比较贵然后通过不等待一个连接获得的时间。

我会尝试通过设置上限来最大化parralel连接

+0

事情是CPU使用率是20%左右 所以我想这不是一个阻塞问题,对吧? – Nisalon