如何定位php程序访问慢

本文介绍了如何定位PHP程序访问慢的问题,通过配置php-fpm的slow log来追踪性能瓶颈,以及在LAMP环境下使用Xdebug+Webgrind进行分析。详细讲解了配置slow log、分析slow log内容、安装和配置Xdebug以及使用Webgrind的过程,帮助运维人员快速找出并解决PHP应用的性能问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 公司的业务是用PHP语言开发的,那么使用的环境十有八九就是LNMP。在日常的运维工作中,占到9成以上的故障是遇到性能问题。
    你可能会想,我们的业务运行的好好的,为啥平白无故就出现性能问题?
    原因有太多可能,比如代码改动、异常访问、网络波动、服务器硬件故障等等。
    引起性能问题的原因有这么多,那如何定位呢?
    给大家介绍一个性能追踪的方法,这个方法在我运维职业生涯里屡试不爽,帮了我不少大忙。 — slow log追踪 —
    我们可以通过slow log很方便地追踪到问题点。先来看配置方法吧。
    1)编辑配置文件
    假设php安装路径为/usr/local/php,配置文件路径/usr/local/php/etc/php-fpm.conf)
    # vim /usr/local/php/etc/php-fpm.conf #更改或增加两行内容slowlog = /data/logs/php-slow.logrequest_slowlog_timeout = 2
    说明:slowlog定义日志路径和名字,request_slowlog_timeout定义超时时间,单位秒,即一个php脚本执行时间超过了该时间,则会记录日志。
    2)重启php-fpm服务
    具体重启命令,根据你自己的环境来决定。配置文件修改后,不重启或者不重载服务是不生效的。
    3)测试
    在测试站点里新建一个test.php文件,写入如下内容:
    <?php echo “1”; sleep (5); echo “2”; 然后在浏览器里或者使用curl命令去访问
    # curl http://ip/test.php 4)结果分析
    访问test.php时,我们能感觉到它短暂卡死,大概5秒后出现结果。此时到/data/logs/php-slow.log里查看,有如下内容:
    [pool www] pid 6368script_filename = /data/wwwroot/aminglinux.cc/test.php[0x00007ff8c821f090] sleep()
    /data/wwwroot/aminglinux.cc/test.php:3 这个slow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值