面对这样的问题,我们从哪个点开始呢?从代码?业务流程?浏览器 dedug? ... 都不是。这里我们从 日志 / 数据 去分析。首先我们要知道,我们的项目架构,不要局限于框架。我们要从大的整体范围,操作系统 (Linux),服务器 (Nginx),MySQL,PHP 等要素出发,这些都是看得见的东西,但里面的构成关系是复杂的 (LNMP)。到这里或许思路开阔些了。刚说到日志、数据我们就从 LNMP 日志数据展开。
Linux:我们主要关注 磁盘 IO、网络 IO、内存消耗、CPU 负载的压力等,可以用 top , ps 命令观察服务器状态,看看到底哪里出了问题,具体问题具体分析。
MySQL:我们从观察进程状态,开启慢日志,分析执行语句等方面查看日志和数据分析,这里可以具体展开说明。
Nginx: 我们可以查看服务器具体响应状态码 (500,502,503..),查看错误日志来分析。
PHP: 使用 PHP-fpm 的慢执行日志 slow_log 来分析,而不是仅限于功能代码。
通过这样的分析,我们大致从根本上解决了问题。有了这些数据的分析,才有那些业务流程、功能场景的解决方案 (用缓存,用队列,异步框架) 来做优化。日志分析具体细节方法肯定还有很多,这里就不具体展开了。感兴趣的同学可以在白纸上写写画画,然后进行归类总结。以便提高自己解决问题的思维。
————————————————
原文作者:vasar
转自链接:https://learnku.com/articles/35779