请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

nginx 性能优化,线上场景。

老师,您好,跟着您的步伐,我学到了nginx第五章,性能优化方案,收获良多。

与此同时,我遇到了一些线上服务响应过慢的问题,因您是这方面的专家,所以想请您帮我理下思路,找到性能瓶颈,以便找到对应的优化方案。

问题如下:

1.线上 nginx  Api 服务器响应过慢,导致客户端请求迟迟不能响应,十分影响用户体验,服务程序代码是 php 编写,nginx web服务器 结合php-fpm进行请求接收与响应。

2.用户请求api会经过1台负载均衡服务器,请求会被轮询负载均衡至4台Api服务器,但4台服务器cpu不够均衡也不够稳定。

3.4台web应用服务器硬件配置

Cpu:5核,主频2.0

内存:10G

4.mysql服务器负载

mysql服务器采用主备模式 负载很小。

5.api web 服务器 上 top命令结果:

https://img1.sycdn.imooc.com/szimg//5992b6320001819507540804.jpg

6.sleep状态的php-fpm数量

https://img1.sycdn.imooc.com/szimg//5992b6a00001034105350159.jpg

大致保持在305个的水平且每个sleep的fpm 占用的cpu稍高,可能会是什么导致sleep进程产生这么高的cpu占用率呢







正在回答

1回答

Jeson 2017-08-16 20:36:59

你好,这个问题,我觉得你可以从这几个方面着手优化:

1、首选你需要找到的系统性能瓶颈的短板,目前就你给我的描述,我觉得php-fpm这块是整体系统性能的短板。

2、就php-fpm的优化,看你给我的截图,我觉得,是php-fpm占用执行效率不高,具体是因为程序本身的执行效率问题,还是请求流量过高导致,或者其它,这个没有体现出来,所以我建议开启php-fpm的slow日志,分析具体的执行效率慢的地方。具体确定请求问题更深层次的的原因,如下:

request_slowlog_timeout = 5s

slowlog = /usr/local/php/log/php-fpm-slowlog.log


另外,如果是短期无法解决、或者性能优化瓶颈无法找到有效手段,让用户体验差是不应该的,导致损失的情况,建议临时可以申请一些机器进行横向扩容。



0 回复 有任何疑惑可以回复我~
  • 提问者 mark_fork #1
    嗯嗯,多谢老师,我明天在线上开启下PHP-FPM慢执行日志,因为我们接口请求核心逻辑需要进行token鉴权,token鉴权事分离出来的服务,对外对接的有7个不同类型的app客户端,每次鉴权都是通过网络远程鉴权,初步怀疑问题是在鉴权这块出的问题,等日志产生出来,若还没有明显的性能损失点,还希望老师不吝赐教,谢谢!
    
    回复 有任何疑惑可以回复我~ 2017-08-16 23:28:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信