为什么用 Nginx 做了负载均衡之后 QPS 还不如直接压测 Tomcat?

2019-09-02 15:48:45 +08:00
 Mei99
Tomcat 负责收 POST 请求并写单机的 Redis,两个 Tomcat 前面挂了一个 Nginx 做转发,配置都是 6 核 4G 内存独立机器,和压测机都在一个局域网内,用 Jmeter 直接压测 Tomcat 能跑到 8000QPS,压测 Nginx 只有 5000 多,我该怎么做?
8431 次点击
所在节点    NGINX
31 条回复
chendy
2019-09-02 18:15:38 +08:00
盲猜两个 tomcat 在一个机器上 +1
lishunan246
2019-09-02 18:22:49 +08:00
有可能是你 Jmeter 压测的时候线程数固定而且顺序发请求。
由于多路过一台机器请求完成时间增加了 60%,比如说 1ms 变成了 1.6ms 。
qps 自然就变成了原来的 5/8。
jsy123392550
2019-09-02 18:23:39 +08:00
盲猜两个 tomcat 在一个机器上 +2
stupil
2019-09-02 18:28:34 +08:00
盲猜两个 tomcat 在一个机器上 +3
autogen
2019-09-02 18:44:39 +08:00
你有几台机器?
janxin
2019-09-02 18:59:00 +08:00
盲猜 Tomcat 在一个机器上你们是真没看吧...
Mei99
2019-09-02 19:05:01 +08:00
nginx.conf:
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
#multi_accept on;

}

http {
upstream tomcat{
server 192.168.50.166:8080;
server 192.168.50.99:8080;
keepalive 20480;
}
server{
listen 8080;

location / {
proxy_pass http://tomcat;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 15;
types_hash_max_size 2048;
server_tokens off;
client_header_buffer_size 4k;
client_max_body_size 10m;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
lishunan246
2019-09-02 19:18:11 +08:00
预期能有 16000qps 现在只有 5000 的话,可以试试线程数*3 再压
zhuisui
2019-09-02 19:42:33 +08:00
worker_connections 和 keepalive 不是越高越好
看看连接的状态
realpg
2019-09-03 06:40:41 +08:00
如果没有硬件瓶颈问题
基本是 nginx 没配好
我的低配机器 nginx 做入口,都能上万 QPS
nekoyaki
2019-09-03 11:44:53 +08:00
楼主你的 192.168.50.166 和 192.168.50.99 这两台机器和 nginx 所在服务器之间的网络是什么网络? 网络延迟可能是一个比较大的因素,如果中间有路由器 /交换机,可能也得查查负载和延迟

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX