V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moxuanyuan
V2EX  ›  PHP

怎样找出 PHP 代码不确定时间会很慢的问题?

  •  
  •   moxuanyuan · 2018-11-27 16:09:36 +08:00 · 3039 次点击
    这是一个创建于 2188 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在香港老板铺头里的一部群晖上开了 web 服务(别问我为什么要用群晖,我也很无奈),运行几个客户的项目。
    平时打开速度很快的,但每天总有几次不定时打开很慢。开启 php 慢日志后(设了 6 秒),发现基本上都是 ci 框架中的 mysqli_query 慢,但这个慢,是随机出现,不是一直出现,我觉得应该跟代码、sql 语句无关吧,要不然,就会一直有这个 log。大家觉得我应该如何找出原因呢?
    6 条回复    2018-11-28 15:15:10 +08:00
    luoyou1014
        1
    luoyou1014  
       2018-11-27 16:12:21 +08:00
    query 慢就是数据库慢吧,应该看 mysql 的慢日志吧
    WuwuGin
        2
    WuwuGin  
       2018-11-27 16:14:37 +08:00
    mysqli_query 就是执行 sql 语句慢啊。
    很大可能是 sql 语句有问题,会间歇性的触发,开发的时候没有考虑过这种情况。
    liuxu
        3
    liuxu  
       2018-11-27 16:24:08 +08:00
    以前一段时间有时候我系统卡死,我一直是以为是开着 virtualbox 的问题,后来我监控后,发现是 apt 定时更新使内存耗尽,导致使用了很多 swap。虽然也是因为 virtualbox 使用了很多内存,但我那是需要一直开着它,所以我关闭 apt 每日自动更新后,便不会导致内存耗尽了,系统也不会周期性卡了

    我说这个的原因就是你需要做完整的系统监控,包括 mysql 的日志监控,而不是靠猜,可能确实是 mysql 的问题,但也保不齐是系统某些任务影响了它
    keepeye
        4
    keepeye  
       2018-11-27 16:33:51 +08:00
    不好说,之前系统不定时负载爆炸,卡在 io 上,开始还以为是阿里云抽风,后来发现是 php 进程开太多时间久了耗尽了系统内存...
    moxuanyuan
        5
    moxuanyuan  
    OP
       2018-11-27 16:50:45 +08:00
    @keepeye 我觉得也可能是 php-fpm 进程的问题,fpm 进程开了,不会自动退出,
    moxuanyuan
        6
    moxuanyuan  
    OP
       2018-11-28 15:15:10 +08:00
    @WuwuGin 开了 mysql 慢日志,设了 2s 时间,php 慢日志设的是 6s,php 有记录,但 mysql 没记录,看来不是 query 的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2673 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 106ms · UTC 04:12 · PVG 12:12 · LAX 20:12 · JFK 23:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.