Nginx +uwsgi+python2.7出现瓶颈,无法通过20000x40000基准测试



我遇到了一个瓶颈,无论我做什么调整,我的服务器都无法通过20000x40000基准测试。服务器有128G内存和Xeon 6核心cpu, centos5.6-64bit,状态良好。

i尝试组合包括:

nginx + uwsgi + python2.7
nginx + apache + mod_wsgi + python2.7
apache + mod_wsgi + python2.7

它们都不能通过apache基准测试:

ab -c 20000 -n 40000 (without -k)
巧合的是,在32000个请求 时,几乎所有的测试都失败了

关于nginx和uwsgi的详细信息:

nginx:

worker_processes  24
use epoll
worker_connections  65535

uwsgi:

listen 2048
master true
workers 24
uwsgi -x /etc/uwsgi_conf.xml --async 256 --file /var/www/example.py &

有人知道吗?提前感谢任何可能的解决方案和建议

在单个系统上允许如此数量的并发连接需要大量的内核调优,并且您可能永远无法在生产中管理这样的负载。

首先,你必须增加临时端口的数量,套接字积压队列,每个进程允许的文件描述符的数量等等…

除此之外(这应该已经足以阻止这种不切实际的测试),你应该增加uWSGI中的异步核心数量到20k。这没有什么问题(每个核心消耗的内存少于一页),但是您将在系统中至少打开40k的套接字。

这是为nginx+uwsgi。

使用Apache,您将以20k进程或线程结束,这甚至比40k打开的套接字更糟糕。

相关内容

  • 没有找到相关文章

最新更新