Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
性能-如何调试运行缓慢的Ubuntu Apache/PHP/MySQL服务器_Apache_Lamp - Fatal编程技术网

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

性能-如何调试运行缓慢的Ubuntu Apache/PHP/MySQL服务器,apache,lamp,Apache,Lamp,我在Ubuntu 14.04.2 LTS(GNU/Linux 3.13.0-48-generic x86_64)上运行Apache/PHP/MySQL Web服务器,内存为4gb 在过去的几天里,随着服务器负载的增加(每秒100-200个请求),它似乎已经完全停止了页面服务。以下是一些性能统计数据: 传入网络I/O:2mb/s 传出网络I/O:11mb/s 正在使用的内存(RAM):1.1gb CPU使用率:2% 以下是mpm\u prefork.conf中的值: <IfModule

我在Ubuntu 14.04.2 LTS(GNU/Linux 3.13.0-48-generic x86_64)上运行Apache/PHP/MySQL Web服务器,内存为4gb

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

  • 传入网络I/O:2mb/s
  • 传出网络I/O:11mb/s
  • 正在使用的内存(RAM):1.1gb
  • CPU使用率:2%
以下是
mpm\u prefork.conf
中的值:

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

StartServers 5
MinSpareServers 5
MaxSpareServers 50
最大150名工人
MaxConnectionsPercild 5000
请求发生在通常有一个数据库查询并返回JSON格式数据的页面上。它不是图形/数据库/资源密集型的

重新启动Web服务器将允许它为页面提供大约1分钟的服务,直到负载恢复并返回到冻结状态


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

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

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

从CPU和内存使用情况来看,硬件大小并没有问题,而是与应用程序配置或组件参数化有关


我首先检查SQL请求需要多长时间。只需使用google
mysql数据库评测工具
,您就可以在需要时找到提高mysql性能的方法。

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

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

从CPU和内存使用情况来看,硬件大小并没有问题,而是与应用程序配置或组件参数化有关


我首先检查SQL请求需要多长时间。只需使用google
mysql数据库评测工具
,如果需要,您将找到提高mysql性能的方法。

更新较晚,但问题似乎是长时间运行的POST请求,这将使用大量的
prefork mpm
服务器(内存较重)。将此长时间运行的API调用切换为在Apache上运行,该Apache具有
事件mpm
wsgi
,以及简单的
Python
实现,效果最好。更新较晚,但问题似乎是长时间运行的POST请求,这将使用大量
预工作mpm
服务器(内存较重)。将此长时间运行的API调用切换为在Apache上运行,使用
事件mpm
wsgi
,以及简单的
Python
实现效果最佳。