如何在Linux中调节MySQL?

有时候mysqld会使用top来达到95%的cpu。 这磨碎了我的整个服务器停下来。 是否有某种方法节制CPU使用率说最高25%?

首先,您需要启用慢速查询logging,以便您可以检测问题的根本原因。

接下来,您需要分析您的应用程序,以便了解资源的使用情况。

最后,性能调整您的mysql实例(es)最适合您的硬件和应用程序的要求。

根据我的经验,杀死mysql是磁盘访问。 “扼制”mysql的唯一方法是正确地分割你的数据,以便磁盘访问保持在最低限度。 如果你有一个有1亿行的表,即使索引,你也会遇到连接问题。 所以,如果可能的话,将数据分割出来。 您也可以使用复制来跨多台主机进行“负载均衡”读取。

有任何数量的“屁股拍摄”解决scheme来解决性能问题。 没有根本原因的特殊性,这是不太可能的。

兰迪有一个非常好的答案,但我想补充一个更通用的观点。

没有使用的CPU被浪费了。 正确configuration的服务器不会停止,如果一个服务声称所有的CPU,因为你的操作系统是build立来处理这个。 所以,你可以做的是,你可以降低mysqld进程的优先级(renice +19),以确保你的其他进程具有更高的优先级,并获得他们所需要的CPU时间。

当然,这并不考虑潜在的问题,也不会处理资源竞争(高IO负载或交换可能使服务器无法工作)。 但是,如果这是一个纯粹的CPU问题,改变优先权可以帮助。