首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
V2EX  ›  NGINX

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

  •  
  •   Mei99 · 45 天前 · 2999 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Tomcat 负责收 POST 请求并写单机的 Redis,两个 Tomcat 前面挂了一个 Nginx 做转发,配置都是 6 核 4G 内存独立机器,和压测机都在一个局域网内,用 Jmeter 直接压测 Tomcat 能跑到 8000QPS,压测 Nginx 只有 5000 多,我该怎么做?
    31 回复  |  直到 2019-09-03 11:44:53 +08:00
        1
    BBCCBB   45 天前
    这是肯定的, 挂个 nginx 中间多了一层转发消耗, 挂 nginx 是为了其他的功能,比如多实例水平扩展, 负载均衡, 做统一的权限认证等.
        2
    opengps   45 天前
    nginx 是为了多台同职责机器对外统一服务入口,多台机器做负载均衡,不是提高单机性能
        3
    Mei99   45 天前
    @opengps 可是 Nginx 不是说轻松达到几万 QPS 吗?那压测 Nginx 的话不应该是接近 Tomcat 的 QPS*2 吗?
        4
    opengps   45 天前
    等等,楼主意思是负载均衡后 2 台才 5000,不如一台的 8000 ?
        5
    Mei99   45 天前
    @BBCCBB 我挂 Nginx 就是为了给后面多个 Tomcat 做负载均衡啊....性能反而还下降了
        6
    opengps   45 天前
    关注下 Nginx 机器的网卡使用情况,压测时候是不是占满了带宽
        7
    Mei99   45 天前
    @opengps 带宽应该没啥问题,内网千兆互联,看 Jmeter 最大发送速度才 2.5MB/s,Nginx 机器的 CPU 也没有跑满,压测机是 i9 9900K
        8
    akira   45 天前
    是不是都只转发到一边去了。。
        9
    gstqc   45 天前 via Android
    jmeter 有性能问题
    用 wrk 压吧
        10
    zjlletian   45 天前
    这就太多了要考虑的了,改下 nginx 线程数,连接数配置?
        11
    zpfhbyx   45 天前
    贴下 nginx 配置?
        12
    Mei99   45 天前
    @zjlletian 线程和连接数一般多少合适?我改成和 ulimit 一样的 65535 了
        13
    Mei99   45 天前
    @akira 只转到一边也不会比直接压测 Tomcat 性能还低吧....
        14
    Mei99   45 天前
    @zpfhbyx 6 核的 i5 8500,6 个 worker 进程
        15
    zpfhbyx   45 天前
    @Mei99 额 我意思是配置文件..
        16
    LeeSeoung   45 天前
    看 nginx log 看 tomcat log
        17
    Xusually   45 天前
    一般情况下不会的。。大概率是 NGINX 配置问题或者 NGINX 那台机器的内核参数配置问题。
        18
    cloudyplain   45 天前
    可能是 nginx 配置的问题,是否是长连接、upstream 连接池是否足够大、网络问题等等
        19
    janxin   45 天前
    我盲猜可能是 nginx 相关配置的问题
        20
    gz911122   45 天前
    盲猜两个 tomcat 在一个机器上
        21
    chendy   45 天前
    盲猜两个 tomcat 在一个机器上 +1
        22
    lishunan246   45 天前
    有可能是你 Jmeter 压测的时候线程数固定而且顺序发请求。
    由于多路过一台机器请求完成时间增加了 60%,比如说 1ms 变成了 1.6ms 。
    qps 自然就变成了原来的 5/8。
        23
    jsy123392550   45 天前
    盲猜两个 tomcat 在一个机器上 +2
        24
    stupil   45 天前
    盲猜两个 tomcat 在一个机器上 +3
        25
    autogen   45 天前
    你有几台机器?
        26
    janxin   45 天前   ♥ 1
    盲猜 Tomcat 在一个机器上你们是真没看吧...
        27
    Mei99   45 天前
    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;
        28
    lishunan246   45 天前
    预期能有 16000qps 现在只有 5000 的话,可以试试线程数*3 再压
        29
    zhuisui   45 天前
    worker_connections 和 keepalive 不是越高越好
    看看连接的状态
        30
    realpg   44 天前
    如果没有硬件瓶颈问题
    基本是 nginx 没配好
    我的低配机器 nginx 做入口,都能上万 QPS
        31
    nekoyaki   44 天前
    楼主你的 192.168.50.166 和 192.168.50.99 这两台机器和 nginx 所在服务器之间的网络是什么网络? 网络延迟可能是一个比较大的因素,如果中间有路由器 /交换机,可能也得查查负载和延迟
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   958 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
    ♥ Do have faith in what you're doing.