1

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

服务器可以在不眨眼的情况下清楚地处理很多事情,但似乎在每秒大约 55k 请求之后,Nginx 将不再建立任何连接,如统计数据所示。

我正在使用 Luameter 来获取我的读数,并通过使用云平台向我的服务器施加压力,每秒执行 50k 请求或每秒 100k 请求,永远不会返回超过来自 Nginx 统计数据的 50k 请求。

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

当每秒收到 100k 请求时,Cpu 为 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;

考虑到在服务器资源方面仍有工作空间,我怎么可能增加这个限制?

谢谢

4

2 回答 2

1

限制是 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-06T07:35:21.457 回答
1

根据 mikhailov 的评论,这特别有助于分散网络的 IRQ 负载,这可能对您的情况有所帮助:

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
于 2015-07-06T13:44:44.853 回答