MySQL 每晚都会创建大量文件,导致服务器瘫痪

MySQL 每晚都会创建大量文件,导致服务器瘫痪

我有一台 Ubuntu 12.04 LEMP 服务器,上面有商店应用程序,运行 MySQL 5.5 作为数据库(自从这个问题出现以来,我已经切换到 Percona,但没有成功)。

因此,目前的事实是:每天晚上我的监控都告诉我服务器没有响应。确切的时间各不相同。它可能停机几分钟,甚至几个小时。它可能从晚上 1 点左右开始,也可能从晚上 5 点之前的任何其他时间开始。Munin 和 atop 显示,此时 iowait 占用了所有资源,使用的磁盘空间逐步增加约 2Gb。甚至占用了所有可用空间。

Mysql 慢查询日志未显示任何内容。当时没有慢查询。

Web 服务器日志未显示任何特殊活动 - 只是一般的网站使用、静态、商店、产品、产品列表。没有额外的内容。

cron 中没有可能在那时执行的条目,并且可能对 DB 执行任何操作。

MysqlSHOW EVENTS所有数据库都为空。MySQL 错误日志(启用警告日志)一次没有任何内容。只有当磁盘已满时才会出现一些内容,例如:

151028  4:03:54 [ERROR] Got an error from unknown thread, /mnt/workspace/percona-server-5.5-debian-binary/label_exp/ubuntu-precise-64bit/percona-server-5.5-5.5.45-rel37.4/storage/myisam/mi_write.c:226
151028  4:03:54 [ERROR] /usr/sbin/mysqld: Incorrect key file for table '/tmp/#sql_5e90_21.MYI'; try to repair it
151028  4:03:54 [ERROR] Got an error from unknown thread, /mnt/workspace/percona-server-5.5-debian-binary/label_exp/ubuntu-precise-64bit/percona-server-5.5-5.5.45-rel37.4/storage/myisam/mi_write.c:226
151028  4:03:54 [ERROR] /usr/sbin/mysqld: Incorrect key file for table '/tmp/#sql_5e90_20.MYI'; try to repair it
151028  4:03:54 [ERROR] Got an error from unknown thread, /mnt/workspace/percona-server-5.5-debian-binary/label_exp/ubuntu-precise-64bit/percona-server-5.5-5.5.45-rel37.4/storage/myisam/mi_write.c:226

以下是一些 munin 图表:CPU使用率磁盘空间使用情况(您可以在此图上看到一些峰值 - 这对于我们的服务器来说并不正常,在开始之前没有出现峰值)。

这个问题在之前就已经出现了,在服务器正常运行之前,服务器从未需要过这么大的磁盘空间。

答案1

根据我的经验,此错误通常意味着磁盘已满。

尝试通过重新挂载来增加 tmpfs 分区的大小:

mount -t tmpfs -o remount,size=1G tmpfs /tmp

或者,您可以在 mysql 配置中设置 tmpdir=/some/drive 以将 tmp 存储移动到具有更多可用空间的地方。

相关内容