前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能测试之nginx瓶颈优化

性能测试之nginx瓶颈优化

作者头像
飞天小子
发布2021-08-18 15:58:09
2.4K0
发布2021-08-18 15:58:09
举报
文章被收录于专栏:公众号-测试驿栈

压测场景

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**

未完待续

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 压测场景
  • 日志分析
  • 问题分析
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档