
1 justfly Jan 11, 2018 首先确定 瓶颈 在哪里。 如果是阻塞的 IO 可以换非阻塞的 IO,便于榨干 CPU. 然后开多个线程并绑定到每个核心上。 之后看 CPU 和 带宽哪个先成为瓶颈,如果带宽不够用了,考虑只发 HEAD 请求,或者自己实现 HTTP Client 读完头部就关连接。如果 CPU 先成瓶颈那就换语言吧 代码逻辑上尽量增大并行度。 |
2 fiht Jan 11, 2018 楼上大佬说得对。讲得很全面了。 还有一点就是做好 DNS 缓存,这个对爬虫性能影响很大。 |
3 akira Jan 12, 2018 先粗暴的加机器 |
4 tSQghkfhTtQt9mtd Jan 12, 2018 via Android @fiht 有点在意 DNS 缓存要怎么做,前几周查了老半天。。(有个 python dns 请求量爆炸,不知道为啥全部都往上游发 dns,本地完全没缓存 |
5 qsnow6 Jan 12, 2018 via iPhone scrapy |