Nginx瓶颈在每秒55k请求,但服务器仍有充足的资源可供使用。

基本上,我已经设置了Nginx OpenResty并尝试优化配置以获得最大性能/请求数。

服务器显然可以处理很多内容而无需眨眼,但似乎在每秒大约55k请求数之后,Nginx将不会建立更多的连接,如统计所示。

我使用Luameter获取读数,并通过使用云平台对我的服务器进行压力测试每秒进行50k 或100k个请求,从Nginx统计数据中最多仅返回50k个请求。

服务器具有完整的1gbps端口,但在被压力测试时从未发送超过330mbps的输出。它还有一个SSD硬盘。

CPU在每秒100k个请求的冲击下为45%。

Ulimit无限制,并且ulimit -n 999999

这是我的nginx配置片段:

user nobody; worker_processes 8; worker_rlimit_nofile 262144; error_log logs/error.log crit;
events {
  worker_connections 100000;
  use epoll;
  multi_accept on;
}
http {
  open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s;
  open_file_cache_min_uses 2; open_file_cache_errors on;
}

考虑到在服务器资源方面仍有可操作的空间,我如何可能增加此限制?

谢谢。

点赞
用户290338
用户290338

这是一个 TCP/IP 栈配置问题的限制。参考这个链接:https://www.percona.com/live/mysql-conference-2015/sites/default/files/slides/all_your_iops_are_belong_to_usPLMCE2015.pdf

尽管如此,不要期望一个单一的盒子能承受太多负载。

更新

Nginx 的配置可以按照官方的性能调优建议进行审查:https://www.nginx.com/blog/tuning-nginx/

2015-07-06 07:35:21
用户5085531
用户5085531

根据mikhailov的评论,这个命令可以帮助传播网络的IRQ负载,可能对你的情况有帮助:

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
2015-07-06 13:44:44