zoukankan      html  css  js  c++  java
  • 性能测试之nginx瓶颈优化

    压测场景

    800线程做稳定性压测时,接口大批量返回500异常,如下所示

    可以发现,很明显是Nginx返回的错误。但是从接口返回看不出太多的细节问题,需要打印nginix日志查看

    日志分析

    打印nginx日志,可以看到大量的异常信息:Too many open files

    看起来是句柄数超出文件限制了
    ulimit -a查看一下linux的句柄,发现已经加到65535,最大值

    查看nginx进程句柄数,发现也是65535,最大值

    linux句柄和nginx进程句柄都已经放到最大了,为什么还会报错呢?

    问题分析

    仔细想一想,其实这个Too many open files反映的并不是句柄数,而是打开文件数。什么是打开文件数?
    linux下,有两个值可以代表打开的文件
    1.file-max【最大打开文件数】
    2.ulimit【最大文件句柄数】
    通过lsof | grep 应用进程号 | wc -l可以实时查看当前进程一共打开了多少文件,如下所示,一共打开了70多万。。。。

    然后再通过** /proc/sys/fs/file-max查看一下当前linux的file-max限制,最大是10240

    对比一下就知道了,打开的文件数远远超出了linux的限制数!
    echo 6553560 > /proc/sys/fs/file-max,修改一下最大文件数就行了,改成6553560,然后重启nginx
    再次跑脚本的时候,就没有返回这些文件错误了,但是又返回了新的错误:
    Connection reset by peer**

    未完待续

  • 相关阅读:
    C#进程操作(使用cmd启动和停止.exe)
    NCHW 与NHWC 的区别
    对于openeuler x_86_64,openeuler aarch_64的安装以及yum换源
    读西瓜书笔记
    修改SpringBoot启动Logo
    SpringBoot集成Redis
    SpringBoot集成Dubbo
    那些Java架构师必知必会的技术
    CompletableFuture 入门学习
    使用 VirtualBox+Vagrant 快速搭建 Linux 虚拟机环境
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/15139791.html
Copyright © 2011-2022 走看看