如题,在树莓派上跑Tornado程序,前端是否需要再放置一个Nginx做负载均衡,有利于性能的提高嘛?
光阴似箭催人老,日月如移越少年。
无意义 树莓派可提供的系统资源太少,即使跑单实例也无法跟商用服务器相提并论,在这种情况下装多实例反而会降低性能。树莓派的设计初衷和定位是用于研究学习,拿来当应用服务器使用并不是最佳选择。
普通的民用汽车无论如何改装都无法上 F1 赛道参赛的。
被树莓派的问题吸引过来。
Tornado是非阻塞的,Tornado+Nginx的组合,主要是为了填Python实现中GIL的坑,更好的实现多核。似乎并不直接对单个Tornado的执行效率有什么提升。
对于树莓派来说,撑爆CPU和IO能力的请求数,和能够拖死Tornado的非阻塞机制的请求数,有数量级上的差异。
这个优化打不到瓶颈上。所以我的答案是:没有。
(……其实最终的建议还是:玩具就是玩具。几乎任何情况下,树莓派都不应当做为生产环境)
没有。Tornado 进程数应当总是等于 CPU 核心数,这样一个 CPU 跑一个 Tornado 进程。当然你有其它比较需要 CPU 的服务的话还得减。
即使单 Tornado 进程也建议在前边放一个 Nginx,因为 Tornado 自身的 HTTP 实现没有 Nginx 完善。即使多 Tornado 进程也并不一定需要 Nginx,因为 Tornado 自身支持 fork 出多进程。
无意义 树莓派可提供的系统资源太少,即使跑单实例也无法跟商用服务器相提并论,在这种情况下装多实例反而会降低性能。树莓派的设计初衷和定位是用于研究学习,拿来当应用服务器使用并不是最佳选择。
普通的民用汽车无论如何改装都无法上 F1 赛道参赛的。
被树莓派的问题吸引过来。
Tornado是非阻塞的,Tornado+Nginx的组合,主要是为了填Python实现中GIL的坑,更好的实现多核。似乎并不直接对单个Tornado的执行效率有什么提升。
对于树莓派来说,撑爆CPU和IO能力的请求数,和能够拖死Tornado的非阻塞机制的请求数,有数量级上的差异。
这个优化打不到瓶颈上。所以我的答案是:没有。
(……其实最终的建议还是:玩具就是玩具。几乎任何情况下,树莓派都不应当做为生产环境)
没有。Tornado 进程数应当总是等于 CPU 核心数,这样一个 CPU 跑一个 Tornado 进程。当然你有其它比较需要 CPU 的服务的话还得减。
即使单 Tornado 进程也建议在前边放一个 Nginx,因为 Tornado 自身的 HTTP 实现没有 Nginx 完善。即使多 Tornado 进程也并不一定需要 Nginx,因为 Tornado 自身支持 fork 出多进程。