服务器磁盘 space 似乎不正确,为什么?

Server disk space seems incorrect, why?

我在使用 Drupal 的看门狗模块时遇到了很大的问题,它正在为数据库创建数量惊人的条目。 MySQL 因此停止工作。当我有一些 space 并且能够登录并删除模块时,我回滚到较早的点。我 运行 SQL 命令

SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  10;

所以当 watchdog 正在吃掉所有光盘时 space 我得到这样的响应

看门狗移除前的查询结果

无论如何,我删除了模块,table 随之而来。我 运行 相同的查询,但我没有再次看到 table。

去掉看门狗后的查询结果

我去控制台输入命令

df -h

删除看门狗后的控制台结果

所以控制台显示仍有大量内存用完。为什么是这样?我应该担心吗?

没有太多信息可以继续,我想说你已经击中了 "bug"

http://bugs.mysql.com/bug.php?id=1341

从这个答案中获取数据How to shrink/purge ibdata1 file in MySQL

as you want to reclaim the space from ibdata1 you actually have to delete the file:

  • 对除 mysql 和 performance_schema 数据库之外的所有数据库、过程、触发器等进行 mysql 转储
  • 删除除上述2个数据库之外的所有数据库
  • 停止mysql
  • 删除 ibdata1 和 ib_log 个文件
  • 开始mysql
  • 从转储中恢复

在恢复之前,您可能需要在配置文件中启用 innodb_file_per_table 选项

上面的说明实际上可以仅限于 innodb 的说明,以使过程稍微安全一些