V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2017-05-24 10:56:33 +08:00 · 2674 次点击
    这是一个创建于 2731 天前的主题,其中的信息可能已经有所发展或是发生改变。

    爬取同 1 目标站

    看起来是加载了 CF

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

    到底是什么原因

    19 条回复    2017-05-24 20:35:28 +08:00
    xiaoyu9527
        1
    xiaoyu9527  
    OP
       2017-05-24 10:56:51 +08:00
    规则什么都一样的。

    看 ping 的时间也差不多。
    xiaoyu9527
        2
    xiaoyu9527  
    OP
       2017-05-24 11:00:29 +08:00
    两台都是独服

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

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

    法国的系统是 Centos7

    美国的系统是 Centos6.9

    Python 系统都是 3.61

    我是哪里配置的问题么?
    xiaoyu9527
        3
    xiaoyu9527  
    OP
       2017-05-24 11:01:28 +08:00
    两边都是 1G 带宽。

    而且带宽质量都还不错。
    xiaoyu9527
        4
    xiaoyu9527  
    OP
       2017-05-24 11:03:45 +08:00
    我现在排查问题 认为唯一的可能性就是 Centos 6.9 是不是有什么并发限制。

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

    但是 CPU 怎么都应该跑起来吧。
    yeyuexia
        5
    yeyuexia  
       2017-05-24 11:10:09 +08:00
    线程数少一点试一试?
    xiaoyu9527
        6
    xiaoyu9527  
    OP
       2017-05-24 11:17:46 +08:00
    @yeyuexia 默认我是从法国那台机器复制过来的配置文件就是 32 线程。 结果不理想我才加倍到 64 线程的。
    xiaoyu9527
        7
    xiaoyu9527  
    OP
       2017-05-24 11:18:43 +08:00
    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
       2017-05-24 11:21:56 +08:00
    有没有大佬来给带带路呀
    yinliang
        9
    yinliang  
       2017-05-24 14:00:05 +08:00
    换成 centos 7 试试看
    xiaoyu9527
        10
    xiaoyu9527  
    OP
       2017-05-24 14:27:04 +08:00
    @yinliang 那台美国的做不成 CENTOS7
    Yc1992
        11
    Yc1992  
       2017-05-24 15:05:03 +08:00 via Android
    测一下两台机器的 io
    xiaoyu9527
        12
    xiaoyu9527  
    OP
       2017-05-24 15:37:50 +08:00
    @Yc1992 IO 没问题。 奇怪了。 我在 LA 的独服开了一台 VPS。

    竟然也只有 4MS

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

    真是见鬼了。。
    xiaoyu9527
        18
    xiaoyu9527  
    OP
       2017-05-24 19:14:18 +08:00
    难道是 AMD 的 CPU 调度太差了?
    xiaoyu9527
        19
    xiaoyu9527  
    OP
       2017-05-24 20:35:28 +08:00
    NFS 挂载以后 只能跑到 7mbps。

    与本地磁盘可以跑满 100M 简直差距巨大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.