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

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

阅读 13.8k
5 个回答

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

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

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

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

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

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

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

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

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

数据说话
编译安装MySQL5.6.15 耗时12个小时
我个人觉得小Pi就是练习机 学新东西用吧 我买来就是练习和研究Hadoop还有新版本MySQL

这个玩意不用深究太多,用的地方不多,仅当练手...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题