诊断Linux上的孤立节点的原因,繁忙的MySQL?

我们的其中一台服务器最近经历了一些文件系统损坏,我们的根文件系统被自动重新安装为只读。 我采取的步骤是:

  1. 试图remount > mount -n -o remount /失败
  2. 重新启动服务器
  3. 被提示执行手动fsck ,有5个孤立的inode需要修复。

执行完这些步骤之后,我能够获得访问权限,并且文件系统可以再次写入。 不幸的是,我没有任何信息logging,因为没有任何logging,或者我会包括这些logging。

原因之一是我们的数据库太忙,无法正确地将数据写入磁盘,这就造成了这个问题,高水平的高速caching被用来表明这可能是这种情况。 不过,我不确定这是因为虽然caching很高,我们根本不使用交换(下面的free输出)。

 $ free -m total used free shared buffers cached Mem: 2041 1879 162 0 62 1599 -/+ buffers/cache: 216 1825 Swap: 471 0 471 

发生故障后有什么办法可以诊断? MySQL看起来像一个可能的候选人吗?

如果没有的话,如果再发生这种情况,我还有什么要做的?

首先检查你的服务器是否健康:

  • 你在使用ECC内存吗?
  • 你正在运行RAID吗? 你有没有看到RAID卡的错误? (当时dmesg会显示这些信息,但是现在你已经重启了,他们可能会丢失)

高水平的caching是可取的,不应该以任何方式破坏你的文件系统。

每当你有不洁的下马,孤立的inode是良性的,完全正常的。 他们仅仅是被删除的文件,但是当fs被重新安装时只能读取。 他们不是原因,而只是一个症状。 您需要检查您的内核日志,以查看导致只读重新安装的实际问题。 您还可能需要运行一些SMART诊断程序,以确保该驱动器没有故障。