Tomcat 负责收 POST 请求并写单机的 Redis,两个 Tomcat 前面挂了一个 Nginx 做转发,配置都是 6 核 4G 内存独立机器,和压测机都在一个局域网内,用 Jmeter 直接压测 Tomcat 能跑到 8000QPS,压测 Nginx 只有 5000 多,我该怎么做?
|
BBCCBBSep 2, 2019
1
这是肯定的, 挂个 nginx 中间多了一层转发消耗, 挂 nginx 是为了其他的功能,比如多实例水平扩展, 负载均衡, 做统一的权限认证等.
|
|
opengpsSep 2, 2019
2
nginx 是为了多台同职责机器对外统一服务入口,多台机器做负载均衡,不是提高单机性能
|
|
opengpsSep 2, 2019
4
等等,楼主意思是负载均衡后 2 台才 5000,不如一台的 8000 ?
|
|
opengpsSep 2, 2019
6
关注下 Nginx 机器的网卡使用情况,压测时候是不是占满了带宽
|
|
7
@opengps 带宽应该没啥问题,内网千兆互联,看 Jmeter 最大发送速度才 2.5MB/s,Nginx 机器的 CPU 也没有跑满,压测机是 i9 9900K
|
|
akiraSep 2, 2019
8
是不是都只转发到一边去了。。
|
|
0ZXYDDu796nVCFxqSep 2, 2019 via Android
9
jmeter 有性能问题
用 wrk 压吧 |
|
zjlletianSep 2, 2019
10
这就太多了要考虑的了,改下 nginx 线程数,连接数配置?
|
|
justseemoreSep 2, 2019
11
贴下 nginx 配置?
|
|
justseemoreSep 2, 2019
15
@Mei99 额 我意思是配置文件..
|
|
LeeSeoungSep 2, 2019
16
看 nginx log 看 tomcat log
|
|
XusuallySep 2, 2019
17
一般情况下不会的。。大概率是 NGINX 配置问题或者 NGINX 那台机器的内核参数配置问题。
|
|
cloudyplainSep 2, 2019
18
可能是 nginx 配置的问题,是否是长连接、upstream 连接池是否足够大、网络问题等等
|
|
janxinSep 2, 2019
19
我盲猜可能是 nginx 相关配置的问题
|
|
gz911122Sep 2, 2019
20
盲猜两个 tomcat 在一个机器上
|
|
chendySep 2, 2019
21
盲猜两个 tomcat 在一个机器上 +1
|
|
lishunan246Sep 2, 2019
22
有可能是你 Jmeter 压测的时候线程数固定而且顺序发请求。
由于多路过一台机器请求完成时间增加了 60%,比如说 1ms 变成了 1.6ms 。 qps 自然就变成了原来的 5/8。 |
|
jsy123392550Sep 2, 2019
23
盲猜两个 tomcat 在一个机器上 +2
|
|
stupilSep 2, 2019
24
盲猜两个 tomcat 在一个机器上 +3
|
|
autogenSep 2, 2019
25
你有几台机器?
|
|
26
盲猜 Tomcat 在一个机器上你们是真没看吧...
|
|
27
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; |
|
lishunan246Sep 2, 2019
28
预期能有 16000qps 现在只有 5000 的话,可以试试线程数*3 再压
|
|
zhuisuiSep 2, 2019
29
worker_connections 和 keepalive 不是越高越好
看看连接的状态 |
|
realpgSep 3, 2019
30
如果没有硬件瓶颈问题
基本是 nginx 没配好 我的低配机器 nginx 做入口,都能上万 QPS |
|
nekoyakiSep 3, 2019
31
楼主你的 192.168.50.166 和 192.168.50.99 这两台机器和 nginx 所在服务器之间的网络是什么网络? 网络延迟可能是一个比较大的因素,如果中间有路由器 /交换机,可能也得查查负载和延迟
|