MySQL 卡住,占用大量磁盘 i/o

MySQL 卡住,占用大量磁盘 i/o

在 Solaris 上使用 mySQL 5.0.51。

间歇性地,MySQL 似乎“卡住了”。服务器上的磁盘使用率因读取而飙升至 98%。我使用 dtrace(特别是 DTrace 工具包 - iosnoop)来追踪哪些进程正在使用所有读取。Mysql 每秒调用 tablename.TDM 数百次。Web 服务器上的负载不超过平均水平,这可以解释这一点。没有运行 cronjobs,也没有其他实用程序(如 mysqldump 或任何其他实用程序)。这是一个主/从复制设置。

作为临时修复,我将 mysql 表从“tablename”更改为“tablename2”,然后改回“tablename”

这暂时修复了问题,并“解除”了 mysql 的困扰。磁盘使用率回落,dtrace 不再显示每秒对“tablename.TDM”的数百次读取。

我有几个想法:

1. MySQL version bug 
2. Infinite loop somewhere in my application (which i'm not sure how likely this is) 
3. ?? 

有人曾经见过这个或者有任何见解吗?

谢谢

答案1

呃,随机重命名表格是一个糟糕的想法。

查看 MySQL 进程列表,确定哪些进程正在加载系统。使用:

show full processlist;

还有像mytopmtop这样方便的实用程序。

编辑1

隔离将取决于您的环境。连接来自哪里?

如果是本地主机,它只能是一个系统脚本还是您有一个从数据库提供服务的应用程序?

如果是远程主机,该远程主机提供什么功能?它与其他主机有什么不同?它有脚本吗,还是只是一个应用程序?

隔离来源应该相当快速和简单,但不一定能隔离原因。

相关内容