【问题标题】:MySQL causes 100% disk utilizationMySQL 导致 100% 的磁盘利用率
【发布时间】:2017-01-16 13:45:33
【问题描述】:

我正在使用 XAMPP 运行 MySQL (InnoDB) 数据库。我对一个表(约 1,100 万行)进行了许多不同的、昂贵的查询,并多次取消它们,因为这需要很长时间......

如果我现在启动 MySQL,磁盘利用率会立即达到 100%,并且不会降低。之前取消的查询是否有可能在后台排队并立即执行?

show processlist; 显示没有正在运行的进程...

有什么想法吗?提前致谢!

更新: mysql-error.log 的一部分

2016-09-09 10:04:56 2068 [Note] InnoDB: 128 rollback segment(s) are active.
InnoDB: Starting in background the rollback of uncommitted transactions
2016-09-09 10:04:56 2068 [Note] InnoDB: Waiting for purge to start
2016-09-09 10:04:56 3478  InnoDB: Rolling back trx with id 426031, 90941 rows to undo

这可能是问题...但是如何解决呢?

【问题讨论】:

  • 你是在真机还是虚拟机上运行这个?分配了多少 RAM,当 MySQL 达到峰值时会用掉多少内存? “磁盘使用率”可能不是您的意思,而是 CPU 使用率。
  • “磁盘使用率”是指卷上的空间,还是磁盘 i/o 使用率?您如何确定“磁盘使用率”为 100%?如果卷是“满的”并且没有更多的磁盘空间,那就是一个问题。你需要弄清楚是什么占用了空间,看看你是否可以恢复其中的任何一个。如果启用了 MySQL 二进制日志记录,要做的一件快速而肮脏的事情是清除旧的日志文件(假设复制或恢复不再需要这些文件),例如PURGE BINARY LOGS BEFORE NOW() - INTERVAL 2 DAY.
  • 只有 35MB 的 RAM 使用率,大多数时候 CPU 使用率接近 0%。在我的实际(强大)机器上运行它。就我而言,使用意味着使用。有足够的可用空间;-)
  • 添加到日志记录问题,如果启用了长查询日志记录并且您正在运行它们,您可以使用日志本身的字面上千兆字节的磁盘空间。尝试截断 mysql-slow.log、mysql.err 和 mysql.log(当然是在检查它们是否有错误之后)。
  • 抱歉表达错误。我的意思是利用而不是使用。 Mysql 并没有在我的磁盘上使用那么多空间;-) 它“只”用许多 I/O 给我的 HDD 带来压力......

标签: mysql disk utilization


【解决方案1】:

一点解决方法:

  1. 导出数据库
  2. 删除此数据库
  3. 重置所有 mysql 设置
  4. 导入数据库

欢迎提供更好的解决方案! =)

【讨论】:

    猜你喜欢
    • 2018-05-25
    • 2017-05-27
    • 1970-01-01
    • 2014-11-09
    • 2015-03-23
    • 2017-02-04
    • 2021-10-24
    • 2017-09-01
    • 2019-12-07
    相关资源
    最近更新 更多