检测PHP目前使用mysql数据库的压力

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了检测PHP目前使用mysql数据库的压力脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个大型Web应用程序,并希望它根据与数据库当前所处压力相关的因素进行更改.

我不确定最准确/最有效/最简单是什么.我正在考虑当前连接数或服务器响应时间或cpu使用量?

什么是最适合和可能的?

谢谢

有趣的问题.你真正想要的是一种让 PHPMysqL服务器提出两个问题的方法

服务器,你几乎使用所有的cpu容量?

服务器,您使用几乎所有的磁盘IO容量?

根据答案,我想你想简化你的PHP Web应用程序的工作……可能通过消除某种搜索功能,或者更积极地缓存一些数据.

如果你的(linux或bsd)MysqL服务器有一个shell,你可以通过观察这两个命令的输出来回答你的两个问题.

sar -u 1 10     # the %idle column tells you about unused cpu cycles
   sar -d 1 10     # the %util column tells you which disks are busy and how busy.

但是,没有甜蜜的小查询MysqL中的数据提取到您的应用程序.

编辑:一种可能性是编写一些PERL黑客或其他在您的服务器上运行的简单程序,连接到本地数据库,并且每隔一段时间(每分钟一次)确定%idle和%util,并更新数据库中的小排一行表.如果你关心的话,你也可以毫不费力地将你的磁盘装满的东西添加到这个表中.然后您的程序可以查询此表.这是MEMORY访问方法理想用途.无论如何,请保持简单:您不希望您的监控对您的服务器造成压力.

您可以从客户那里获得的第二个最佳技巧.

发出命令SHOW PROCESSLIST FULL,计算Command为“Query”的行数(MysqL进程),如果你有很多它们认为它是一个高工作负载.

您还可以为具有状态Query的进程添加时间值,并使用该值的高值作为阈值.

编辑:如果你在MysqL 5服务器上运行,并且你的服务器帐户可以访问MysqL提供的information_schema,你可以直接使用查询获取我提到的过程数据:

SELECT (COUNT(*)-1) P.QUERYCOUNT,SUM(P.TIME) QUERYTIME
From information_schema.PROCESSLIST P
WHERE P.COMMAND = 'Query'

COUNT(*) – 1:因为上面的查询本身被视为查询.

您需要调整阈值以使其在生产中正常工作.

数据库服务器无法跟上时,最好让PHP Web应用程序卸载.不过,更好的想法是识别长时间运行的查询并对其进行优化.

脚本宝典总结

以上是脚本宝典为你收集整理的检测PHP目前使用mysql数据库的压力全部内容,希望文章能够帮你解决检测PHP目前使用mysql数据库的压力所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。