推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xiaoyu9527
V2EX  ›  Python

scrapy 的性能问题。

  •  
  •   xiaoyu9527 · May 24, 2017 · 3169 views
    This topic created in 3303 days ago, the information mentioned may be changed or developed.

    爬取同 1 目标站

    看起来是加载了 CF

    法国的 OL 服务器 CZ2750 8G 128G SSD 可以跑到 100M 1W P/S 美国的渣渣服务器 AMD 1853 8G 5TB HDD 只能跑到 6M 500 P/S

    到底是什么原因

    19 replies    2017-05-24 20:35:28 +08:00
    xiaoyu9527
        1
    xiaoyu9527  
    OP
       May 24, 2017
    规则什么都一样的。

    看 ping 的时间也差不多。
    xiaoyu9527
        2
    xiaoyu9527  
    OP
       May 24, 2017
    两台都是独服

    美国这台 CPU 始终只能跑到 2%左右
    而法国这台 CPU 可以跑到 40%左右

    我给美国开的线程数远远大于法国

    法国的系统是 Centos7

    美国的系统是 Centos6.9

    Python 系统都是 3.61

    我是哪里配置的问题么?
    xiaoyu9527
        3
    xiaoyu9527  
    OP
       May 24, 2017
    两边都是 1G 带宽。

    而且带宽质量都还不错。
    xiaoyu9527
        4
    xiaoyu9527  
    OP
       May 24, 2017
    我现在排查问题 认为唯一的可能性就是 Centos 6.9 是不是有什么并发限制。

    否则差距也太大了。 即便 CPU 内存 硬盘的性能上有差距

    但是 CPU 怎么都应该跑起来吧。
    yeyuexia
        5
    yeyuexia  
       May 24, 2017
    线程数少一点试一试?
    xiaoyu9527
        6
    xiaoyu9527  
    OP
       May 24, 2017
    @yeyuexia 默认我是从法国那台机器复制过来的配置文件就是 32 线程。 结果不理想我才加倍到 64 线程的。
    xiaoyu9527
        7
    xiaoyu9527  
    OP
       May 24, 2017
    15 packets transmitted, 15 received, 0% packet loss, time 14335ms
    rtt min/avg/max/mdev = 8.771/8.809/8.910/0.058 ms

    9 packets transmitted, 9 received, 0% packet loss, time 8009ms
    rtt min/avg/max/mdev = 0.980/1.047/1.122/0.047 ms

    一个是 8ms
    一个是 1ms

    我觉得网络速度不是问题。
    xiaoyu9527
        8
    xiaoyu9527  
    OP
       May 24, 2017
    有没有大佬来给带带路呀
    yinliang
        9
    yinliang  
       May 24, 2017
    换成 centos 7 试试看
    xiaoyu9527
        10
    xiaoyu9527  
    OP
       May 24, 2017
    @yinliang 那台美国的做不成 CENTOS7
    bytenoob
        11
    bytenoob  
       May 24, 2017 via Android
    测一下两台机器的 io
    xiaoyu9527
        12
    xiaoyu9527  
    OP
       May 24, 2017
    @Yc1992 IO 没问题。 奇怪了。 我在 LA 的独服开了一台 VPS。

    竟然也只有 4MS

    真是奇怪了。 是不是因为法国的是源服务器? 所以速度就比较快?
    dsg001
        13
    dsg001  
       May 24, 2017
    相同配置、目标站,出现这种问题应该不是 scrapy 的问题
    服务器限速?
    目标站对不同区域 IP 限速?
    xiaoyu9527
        14
    xiaoyu9527  
    OP
       May 24, 2017
    反复尝试。单一进程抓取速度只有 4mbps 好奇怪。
    xiaoyu9527
        15
    xiaoyu9527  
    OP
       May 24, 2017
    @dsg001 目标站是挂在 CF 的 CDN 上的。 对不同 IP 限速。 真的可能么?
    xiaoyu9527
        16
    xiaoyu9527  
    OP
       May 24, 2017
    有没有牛人给分析一下什么问题?
    xiaoyu9527
        17
    xiaoyu9527  
    OP
       May 24, 2017
    找到原因了。。。 还真是 CPU 的原因。
    我的 LA 那台 VPS 开启 8 个 CPU 就可以跑到 100M 了。。

    真是见鬼了。。
    xiaoyu9527
        18
    xiaoyu9527  
    OP
       May 24, 2017
    难道是 AMD 的 CPU 调度太差了?
    xiaoyu9527
        19
    xiaoyu9527  
    OP
       May 24, 2017
    NFS 挂载以后 只能跑到 7mbps。

    与本地磁盘可以跑满 100M 简直差距巨大
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5796 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
    ♥ Do have faith in what you're doing.