在本地和其他数据库上有一个数据库位于远程服务器位置.框架 - 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
我曾经有两台 mysql 服务器,它们是这样连接的。我会有一些脚本来完成一些事情。人们会告诉我连接操作是什么样的(服务器上的并发会话连接)并记录下来。接下来将检查服务使用情况,如果阈值达到 70%,我将开始终止连接并向自己发送一些电子邮件以了解情况。
事实证明,在您正常使用期间,当您希望看到人们浏览您的网站时,却占用了我的服务器)。
除了终止会话之外,我还做了一些事情来缓解这种情况(这并不酷)。是为了标准化我的数据库,重构频繁使用的表。然后我会修复并重新索引。
我还意识到某些事情是无法配置的。我们进行裁员。
我必须镜像我的 MySQL 服务器,然后根据请求参数路由用户。
最终我意识到我需要更好的负载平衡,并最终使用了 4 台 MySQL 服务器和一个负载平衡器来减轻和引导流量。
因此,您的方法是在查询级别上,看看您可以在那里做什么,然后您的数据库/表重构和重新索引。
接下来创建并发连接谋杀脚本并定位不活动的用户,并将他们重定向到某个地方,或者只是剪辑他们,为网站上的重量级用户让路。
随着时间的推移,我做了很多事情,但这就是一切的开始。
希望这对您有所帮助,或者至少让您思考一种方法
归档时间: |
|
查看次数: |
2110 次 |
最近记录: |