httpd - CPU利用率100% - Mysql服务器远程位置

Sud*_*wal 6 mysql apache

在本地和其他数据库上有一个数据库位于远程服务器位置.框架 - cakePHP Mysql:5.1.71 - "远程位置"PHP版本5.5.14

现在使用本地mysql数据库时,使用TOP命令检查时,httpd请求的CPU利用率是正常的.

但是,当我使用远程服务器数据库时.访问同一页面的CPU利用率高达70%或有时达到100%.

以下是php.ini和httpd.conf文件的几个主要设置

php.ini中

memory_limit = 128M
max_input_time = 60
post_max_size = 8M
Run Code Online (Sandbox Code Playgroud)

httpd.conf文件

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Run Code Online (Sandbox Code Playgroud)

在这种情况下,httpd的高CPU利用率可能是什么原因.

任何帮助将不胜感激.

谢谢Sudhir

Fra*_*dor 0

我曾经有两台 mysql 服务器,它们是这样连接的。我会有一些脚本来完成一些事情。人们会告诉我连接操作是什么样的(服务器上的并发会话连接)并记录下来。接下来将检查服务使用情况,如果阈值达到 70%,我将开始终止连接并向自己发送一些电子邮件以了解情况。

事实证明,在您正常使用期间,当您希望看到人们浏览您的网站时,却占用了我的服务器)。

除了终止会话之外,我还做了一些事情来缓解这种情况(这并不酷)。是为了标准化我的数据库,重构频繁使用的表。然后我会修复并重新索引。

我还意识到某些事情是无法配置的。我们进行裁员。

我必须镜像我的 MySQL 服务器,然后根据请求参数路由用户。

最终我意识到我需要更好的负载平衡,并最终使用了 4 台 MySQL 服务器和一个负载平衡器来减轻和引导流量。

因此,您的方法是在查询级别上,看看您可以在那里做什么,然后您的数据库/表重构和重新索引。

接下来创建并发连接谋杀脚本并定位不活动的用户,并将他们重定向到某个地方,或者只是剪辑他们,为网站上的重量级用户让路。

随着时间的推移,我做了很多事情,但这就是一切的开始。

希望这对您有所帮助,或者至少让您思考一种方法