性能 - 如何调试慢 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 个请求),它似乎完全停止了页面服务。以下是一些性能统计数据:
- 传入网络I/O:2mb/s
- 传出网络I/O:11mb/s
- 正在使用的内存 (RAM):1.1gb
- CPU 使用率:2%
以下是 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 性能的方法。
我 运行 Apache/PHP/MySQL 网络服务器 运行 正在 Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64) 和 4gb 内存。
在过去的几天里,随着服务器负载的增加(每秒 100-200 个请求),它似乎完全停止了页面服务。以下是一些性能统计数据:
- 传入网络I/O:2mb/s
- 传出网络I/O:11mb/s
- 正在使用的内存 (RAM):1.1gb
- CPU 使用率:2%
以下是 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 性能的方法。