用 tornado 的同学 你们用 Nginx 吗

2014-11-18 17:14:20 +08:00
mulog  mulog
一直都是单进程裸跑tornado 前两天心血来潮测试了一下Nginx后面跑四个tornado
跑hello world的话,Nginx 的 request per second 倒是可以达到单tornado的两倍多
但是如果带上了后面的db查询 成绩基本就差不多啦 甚至还稍稍慢点

想问问在生产环境到底要不要在tornado前面加上Nginx呢?
如果加的话有哪些配置需要注意以提高性能?
或者说有其他性能之外的好处?
5402 次点击
所在节点   Python  Python
10 条回复
shiny
shiny
2014-11-18 17:17:32 +08:00

维护起来方便
充分利用多核 CPU
zeeler
zeeler
2014-11-18 17:28:30 +08:00
必须加呀,tornado跑一个实例很浪费的;另外,db查询速度和带不带nginx没啥关系,请优化db本身,比如读写分离、增加cache层、分布式等等
kslr
kslr
2014-11-18 17:39:24 +08:00
一般都是多少颗CPU,就起多少实例,前面用nginx负载均衡。
zeeler
zeeler
2014-11-18 18:25:39 +08:00
看下官方文档,非常建议用nginx http://unicorn.bogomips.org/PHILOSOPHY.html
By acting as a buffer to shield unicorn from slow I/O, a reverse proxy will inevitably incur overhead in the form of extra data copies.
.....
nginx is the only (Free) solution we know of that meets the above requirements.
skybr
skybr
2014-11-18 18:33:16 +08:00
db查询也得找异步库, tornado那个分离出去的mysql db库是block的, 而且如果要测得相对准一点, db和应用最好别放在同一个节点上.
mulog
mulog
2014-11-18 18:40:28 +08:00
@skybr
我的应用里数据库查询是一个分离出去的服务 服务调用也是异步的 所以应该没问题
不过我也觉得是该把db放另一台机器上测试 因为我们生产环境也是这样 谢谢建议~
msg7086
msg7086
2014-11-18 19:06:39 +08:00
Nginx解决的是慢连接问题,不是性能问题。组件变多,性能基本是会降低,所以只有在实际要解决问题的情况下才有意义增加组件。
wwqgtxx
wwqgtxx
2014-11-18 21:48:14 +08:00
v2ex就是t+n的
lianghui
lianghui
2014-11-19 12:54:43 +08:00
多台机器跑可以用nginx,如果一台机器直接用tornado多进程监听同一端口就行了。
freestyle
freestyle
2017-02-16 21:42:24 +08:00
@skybr 请教一下适合 tornado 的异步 db 库是哪个,谢谢

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

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

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

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

© 2021 V2EX