用 tornado 的同学 你们用 Nginx 吗
一直都是单进程裸跑tornado 前两天心血来潮测试了一下Nginx后面跑四个tornado
跑hello world的话,Nginx 的 request per second 倒是可以达到单tornado的两倍多
但是如果带上了后面的db查询 成绩基本就差不多啦 甚至还稍稍慢点
想问问在生产环境到底要不要在tornado前面加上Nginx呢?
如果加的话有哪些配置需要注意以提高性能?
或者说有其他性能之外的好处? ----------------------- 以下是精选回复-----------------------
跑hello world的话,Nginx 的 request per second 倒是可以达到单tornado的两倍多
但是如果带上了后面的db查询 成绩基本就差不多啦 甚至还稍稍慢点
想问问在生产环境到底要不要在tornado前面加上Nginx呢?
如果加的话有哪些配置需要注意以提高性能?
或者说有其他性能之外的好处? ----------------------- 以下是精选回复-----------------------
答:加
维护起来方便
充分利用多核 CPU
答:必须加呀,tornado跑一个实例很浪费的;另外,db查询速度和带不带nginx没啥关系,请优化db本身,比如读写分离、增加cache层、分布式等等
答:一般都是多少颗CPU,就起多少实例,前面用nginx负载均衡。
答:看下官方文档,非常建议用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.
答:db查询也得找异步库, tornado那个分离出去的mysql db库是block的, 而且如果要测得相对准一点, db和应用最好别放在同一个节点上.
答:Nginx解决的是慢连接问题,不是性能问题。组件变多,性能基本是会降低,所以只有在实际要解决问题的情况下才有意义增加组件。
答:v2ex就是t+n的
答:多台机器跑可以用nginx,如果一台机器直接用tornado多进程监听同一端口就行了。
0条评论