V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyooo
V2EX  ›  程序员

多核单网卡服务器-多进程和协程性能对比?

  •  
  •   fyooo · 2017-08-16 11:15:10 +08:00 · 2656 次点击
    这是一个创建于 2443 天前的主题,其中的信息可能已经有所发展或是发生改变。
    题目长度有限,最近接手一个类爬虫工具,之前的框架是进程+多线程的同步请求来 handle HTTP 请求 /返回。

    对于多核的服务器,多进程+多线程确实是不错的选择,至少我现在接手的框架还可以扛住。

    最近老板让我规划新的场景,请求量会大很多,我在想如果采用单进程 /协程+异步请求框架会不会使得后续的功能扩展和定位 bug 效率更高一些?

    我写了一个小 demo,发现异步请求性能也非常好,就是只能用到单核。不知道有没有同行做过类似的对比?因为是以 handle http request 为主,而服务器也只有一个网卡,想了解一下有没人论证过这 2 个模式的性能、瓶颈什么的。
    10 条回复    2017-08-17 02:48:06 +08:00
    bazingaterry
        1
    bazingaterry  
       2017-08-16 11:27:26 +08:00 via iPhone
    异步和多进程不冲突……
    w2exzz
        2
    w2exzz  
       2017-08-16 11:31:27 +08:00
    这跟网卡个数有半毛钱关系?
    neoblackcap
        3
    neoblackcap  
       2017-08-16 12:01:11 +08:00
    《 Linux 多线程服务端编程》可以帮到你,不过不要将协程什么的想象得如此美好。
    NoAnyLove
        4
    NoAnyLove  
       2017-08-16 12:19:23 +08:00
    我觉得和应该和开发语言有关吧,如果是用的 C/C++,那么多进程或者多线程都是不错的构架,毕竟像 Apache 和 Nginx 之类的都是这么搞的。如果是其他语言,比如 Python,那么不妨试试协程,至于其他语言。。。。。。。我不会,没有发言权
    hjc4869
        5
    hjc4869  
       2017-08-16 12:28:29 +08:00
    问题问的太模糊了。
    myself659410
        6
    myself659410  
       2017-08-16 13:50:26 +08:00
    多进程 如果是 c/C++ 工作量多 性能取决于你的设计与编码
    采用协程如 golang 工作量少 性能有保证
    python 情况不了解 我把 python 当作脚本语言使用
    xiaoxubeii
        7
    xiaoxubeii  
       2017-08-16 18:12:40 +08:00   ❤️ 1
    一般针对 IO 密集型选用协程是个不错的选择。如果 IO 和计算都密集,可以选用多 worker+协程方式。没有最好,只有适用。
    fyooo
        8
    fyooo  
    OP
       2017-08-16 21:51:35 +08:00
    @xiaoxubeii 谢谢,已经发送感谢
    JamesRuan
        9
    JamesRuan  
       2017-08-16 23:55:55 +08:00
    单网卡当然适合用单 CPU,但是首先你的应用不是计算密集型的。
    HaoyangWei
        10
    HaoyangWei  
       2017-08-17 02:48:06 +08:00 via iPad
    c/c++的协程其实性能很不错的,其本身不容易构成性能瓶颈,同时在开发效率上要比多线程高不少。性能不够不妨上更多机器,毕竟机器比人便宜多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3751 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.