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

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

我说这个的原因就是你需要做完整的系统监控,包括 mysql 的日志监控,而不是靠猜,可能确实是 mysql 的问题,但也保不齐是系统某些任务影响了它
keepeye
2018-11-27 16:33:51 +08:00
不好说,之前系统不定时负载爆炸,卡在 io 上,开始还以为是阿里云抽风,后来发现是 php 进程开太多时间久了耗尽了系统内存...
moxuanyuan
2018-11-27 16:50:45 +08:00
@keepeye 我觉得也可能是 php-fpm 进程的问题,fpm 进程开了,不会自动退出,
moxuanyuan
2018-11-28 15:15:10 +08:00
@WuwuGin 开了 mysql 慢日志,设了 2s 时间,php 慢日志设的是 6s,php 有记录,但 mysql 没记录,看来不是 query 的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/512001

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX