阿里云上tornado运行的最佳实践

2013-03-08 16:21:34 +08:00
 talentsnail
已经购买了阿里云的服务,操作系统版本是CentOS 6.2,目前正在备案域名。

请教各位,在阿里云上运行基于tornado+MySQL的web应用,最佳实践是怎样的?

看网上说的nginx+tornado+supervisord之类的,看不太懂,不知道原理是什么。

希望大家能给点建议,谢谢!
6098 次点击
所在节点    Tornado
8 条回复
molinxx
2013-03-08 16:24:40 +08:00
nginx轻量化web服务器作为PHP前端,动态负载强于apache,同配置性能高出50%,两者都经过特别优化后,nginx性能可以高出150%
talentsnail
2013-03-08 18:40:47 +08:00
@molinxx 谢谢。
不知道V2EX的运行环境是什么样的?
llbgurs
2013-03-08 20:30:56 +08:00
supervisord是一个进程管理工具,当tornado进程挂了,supervisord可以把它拉起来
tarsier
2013-03-08 20:42:15 +08:00
用supervisord将 tornado的进程"托管"起来, 比如有4个tornado进程绑定了 9021, 9022, 9023, 9023的四个端口

然后nginx就可以在前端做轮训来负载均衡,将请求分发给这4个tornado进程


supervisord 本身会在进程挂掉时重启,方便管理进程
btwo
2013-03-08 21:19:54 +08:00
我算带问一句,静态文件(纯HTML)可以直接走nginx吧?不经过tornado的处理。然后512M的Linode分配给MYSQL和nginx的内存分别是多少比较合适。
yetone
2013-03-08 21:40:48 +08:00
@molinxx V2EX 估计就是 nginx+tornado+supervisord ,nginx 负责静态文件,tornado 负责动态负载,supervisord 负责维护 tornado 进程
tarsier
2013-03-08 21:53:56 +08:00
@btwo

linode512 给了4CPU的话,你可以nginx开4个worker,分别绑定到对应的cpu上

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;


当然也可以开8个worker, 每两个绑定在一个cpu上

nginx本身占内存不大,可能在开启gzip压缩的时候,需要猴子腚压缩buffe的大小, 目测即使你开了4个worker线程,加起来nginx占内存不会超过60m


剩下的除了给系统留出些, 全都给mysql吧,把sort buffer以及 read / write 都开大些,减少磁盘io
talentsnail
2013-03-08 22:49:17 +08:00
@llbgurs
@tarsier
@yetone
@btwo
谢谢,感谢已送出!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX