搜索

首页  >  问答  >  正文

对于树莓派这样的单核CPU,使用Nginx进行负载均衡跑多个Tornado进程有无意义

如题,在树莓派上跑Tornado程序,前端是否需要再放置一个Nginx做负载均衡,有利于性能的提高嘛?

大家讲道理大家讲道理2936 天前1058

全部回复(3)我来回复

  • 代言

    代言2016-11-12 15:16:29

    无意义 树莓派可提供的系统资源太少,即使跑单实例也无法跟商用服务器相提并论,在这种情况下装多实例反而会降低性能。树莓派的设计初衷和定位是用于研究学习,拿来当应用服务器使用并不是最佳选择。

    普通的民用汽车无论如何改装都无法上 F1 赛道参赛的。


    回复
    0
  • 代言

    代言2016-11-12 15:16:24

    被树莓派的问题吸引过来。

    Tornado是非阻塞的,Tornado+Nginx的组合,主要是为了填Python实现中GIL的坑,更好的实现多核。似乎并不直接对单个Tornado的执行效率有什么提升。

    对于树莓派来说,撑爆CPU和IO能力的请求数,和能够拖死Tornado的非阻塞机制的请求数,有数量级上的差异。

    这个优化打不到瓶颈上。所以我的答案是:没有。

    (……其实最终的建议还是:玩具就是玩具。几乎任何情况下,树莓派都不应当做为生产环境)


    回复
    0
  • 代言

    代言2016-11-12 15:16:17

    没有。Tornado 进程数应当总是等于 CPU 核心数,这样一个 CPU 跑一个 Tornado 进程。当然你有其它比较需要 CPU 的服务的话还得减。

    即使单 Tornado 进程也建议在前边放一个 Nginx,因为 Tornado 自身的 HTTP 实现没有 Nginx 完善。即使多 Tornado 进程也并不一定需要 Nginx,因为 Tornado 自身支持 fork 出多进程。


    回复
    0
  • 取消回复