现在系统使用的是 nginx+uwsgi(开启 gevent)+bottle(gevent monkey patch),测试场景(读 redis), qps 4k 左右,请问还有性能更高、稳定的生产级别架构吗?谢谢!
1 yanzixuan 2017-03-17 11:08:23 +08:00 我用 flask ,一直配合 gunicorn 的 eventlet 选项使用。貌似没毛病。 |
![]() | 2 est 2017-03-17 11:15:19 +08:00 先测 redis 。 |
![]() | 3 freestyle 2017-03-17 11:54:03 +08:00 mark 你的 nginx 多少个 worker? upstream? uwsgi 多少个 processes? |
![]() | 4 zhuanghuang1988 2017-03-17 13:01:41 +08:00 Cherrypy 的 wsgi |
![]() | 5 zhuangzhuang1988 2017-03-17 13:03:39 +08:00 你都用 Bottle 了 可以看下这个 http://bottlepy.org/docs/dev/deployment.html#switching-the-server-backend 列举了好多 wsgi server |
![]() | 6 cloudyplain OP @freestyle nginx 16 worker,upstream 2, uwsgi 8 processes, gevent 800,没做优化,但是使用 node 来测试,性能要高出很多, 1w+ qps 。 |
![]() | 7 baocaixiong 2017-03-17 13:53:50 +08:00 gunicorn+meinheld |
![]() | 8 cloudyplain OP @baocaixiong qps 能到多少?我们这个产品是 n 年前的了,想知道现在业界主流的玩法。 |
![]() | 9 wuxqing 2017-03-17 16:39:04 +08:00 性能 uwsgi 算是比较高的,但是我还是建议 gunicorn ,因为我们团队碰到一些问题: |
![]() | 10 wuxqing 2017-03-17 16:40:26 +08:00 ![]() 性能 uwsgi 算是比较高的,但是我还是建议 gunicorn ,因为我们团队碰到一些问题: 使用 uwsgi ,通过 zmq 发消息会丢失;有时候使用 requests 抓取网页会卡死 |
![]() | 11 wuxqing 2017-03-17 16:41:33 +08:00 ![]() gunicorn+meinheld 我测试不稳定,会出现空白页面。我现在用的是 gunicorn+gevent |
![]() | 12 wuxqing 2017-03-17 16:43:29 +08:00 ![]() 如果要性能高,可以试试 sanic ,速度很惊艳 |
![]() | 13 gladuo 2017-03-17 20:00:00 +08:00 大概就是这个水平,用 cache 吧 |
![]() | 14 jarlyyn 2017-03-17 20:22:08 +08:00 redis 用了链接池没有? 上次代码有错,连接池没有挂上。 不管什么机器死活只有几千 qps 。 改成连接池后上几 w 了。 |
![]() | 15 xu1ming 2017-03-17 23:56:28 +08:00 via iPhone ![]() 楼主可以试试 gunicorn+meinheld 并发很高 |