性能 - 如何调试慢 Ubuntu Apache/PHP/MySQL 服务器

Performance - How To Debug Slow Ubuntu Apache/PHP/MySQL Server

我 运行 Apache/PHP/MySQL 网络服务器 运行 正在 Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64) 和 4gb 内存。

在过去的几天里,随着服务器负载的增加(每秒 100-200 个请求),它似乎完全停止了页面服务。以下是一些性能统计数据:

以下是 mpm_prefork.conf 中的值:

<IfModule mpm_prefork_module>
    StartServers              5
    MinSpareServers           5
    MaxSpareServers           50
    MaxRequestWorkers         150
    MaxConnectionsPerChild    5000
</IfModule>

请求发生在通常具有一个数据库查询和 return 格式为 JSON 的数据的页面上。它不是 graphical/database/resource 密集型。

重新启动网络服务器将允许它为页面提供大约 1 分钟的服务,直到负载恢复并且它 return 进入冻结状态。

我可以寻找或改变什么来解决这个问题?

您首先必须确定您的问题是否出在 Apache 服务器上、PHP 代码上、mySQL 数据库查询上,甚至是 mySQL 数据库参数上。

您需要针对这些组件进行分析。

根据 CPU 和内存使用情况来看,这不是您的硬件大小问题,而是与应用程序配置或组件参数化有关的问题。

我将从检查 SQL 请求需要多长时间开始。只需 google mysql database profiling tools,如果需要,您将找到提高 mySQL 性能的方法。