Nginx性能优化

Nginx作为一个非常流行和成熟的Web Server和Reserve Proxy Server,网上有大量的性能优化教程,但是不同的业务场景千差万别,什么配置是最适合自己的,需要大量的测试和实践以及不断的优化改进。最近用户调用量突破百万大关之后,就遇到了一些问题,虽然不算太复杂,但也折腾了挺长时间才搞定,积累了不少经验。

碰到的这个问题其实已经有一段时间了,有客户给我们反馈调用超时,但是我们自己从系统监控上看都是正常的,只有几十毫秒肯定不会超时,怀疑是不是网络的原因,但是出现几次后,就隐隐感觉这个问题可能不是偶发性的,应该还有深层次的原因。

因为我们服务面向企业客户的,虽然每家客户的调用量可能会非常大,但每家企业客户就那么几个公网IP,即使以后有上千家客户,Nginx也可以轻松支撑这些并发连接。因此,首先先从网络上对Nginx长连接作了优化,将长连接从原来配置的5秒钟改成5分钟,将每次建立连接请求的数目从默认的100调整到1000。

keepalive_timeout 300;
keepalive_requests 1000;

调整完毕后,通过netstat -anp命令可以看到,新建连接请求会减少,说明长连接已起到作用。但过了一段时间,仍然发现有客户调用超时的情况发生,从Nginx日志中可以看到请求时间还是有超过1s的,甚至有长达20s左右的,如下所示:

(查看原图)

并且从Zabbix上的监控发现一个现象,当connection writing或active数突然增高时,请求时间就相应的出现较多超时:

(查看原图)

查看应用的日志,发现执行时间并不长:

(查看原图)

应用程序里统计的时间,只是从业务开始执行到执行结果的时间,这个还没有算Tomcat容器的执行时间,外部请求的执行路径如下:

client --> Nginx --> Tomcat --> App

会不会是Tomcat容器本身执行有问题呢,把Tomcat请求的日志调用出来,发现这个时间点前后的执行也是正常的:

从请求路径上分析,肯定是Nginx到Tomcat这层存在一些问题。正在排查这个问题的时候,突然发现有大量30s左右的超时,从Zabbix上也观察到connection writing非常高,如下所示:

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

【推荐收藏】33款可用来抓数据的开源爬虫软件工具

要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很...

5475
来自专栏MySQL实战分享

Redis 经典案例分析:消失的连接

在Redis 经典案例分析这一专题中,我将与大家一起学习关于 Redis 维护的相关内容,把真是业务环境中遇到的维护问题与大家分享,共同积累 Redis 维护的...

9702
来自专栏开源FPGA

Modelsim10.2c使用教程(一个完整工程的仿真)

 这学期在玩Altera的板子,不不, 现在应该叫intel PSG。在QuartusII13.0上老喜欢用modelsim_ae做仿真,小工程用起来也方便,...

6765
来自专栏施炯的IoT开发专栏

Application Architecture Guide 2.0 - CH 19 - Mobile Applications(1)

Chapter 19: Mobile Applications Objectives • Define a mobile application. • Unde...

1977
来自专栏CSDN技术头条

创建一个分布式网络爬虫的故事

编者按:作者通过创建和扩展自己的分布式爬虫,介绍了一系列工具和架构, 包括分布式体系结构、扩展、爬虫礼仪、安全、调试工具、Python 中的多任务处理等。以下为...

2438
来自专栏北京马哥教育

小技巧:显示数据库查询耗时,改善开发者习惯

我会分享一系列在我开发生涯中积累的有用且容易实现的小技巧,本文是此系列的第一篇。 ---- 很多原因都可能导致网站运行缓慢,但这其中最常见的就是在数据库查询耗时...

2916
来自专栏FreeBuf

我是如何找到Donald Daters应用数据库漏洞的

星期一的晚上像往常一样我通过观看电视节目来打发时间,但并没有什么有趣的节目。于是我决定在手机上寻找乐趣,我开始漫无目的在Twitter上翻看各种推文,一条Fox...

622
来自专栏deed博客

权限何必那么高

1784
来自专栏FreeBuf

关于“入侵检测”的一些想法

离开长沙的时候写了一篇文章“左右互博:站在攻击者的角度来做防护”(freebuf上可以找到),一晃已经是三年了。这三年接触了很多东西,自己也有过很多想法,但实际...

2330
来自专栏张善友的专栏

从APM角度上看:NoSQL和关系数据库并无不同

Michael Kopp拥有十年以上C++、Java/JEE的架构及开发经验,现Compuware技术策略师,专攻大规模产品部署的架构和性能。 以下为译文: 传...

2378

扫码关注云+社区

领取腾讯云代金券