我du -sh在各种目录中运行以查找磁盘猪。我有两台相同的服务器(Dell PE2850s),都使用 RHEL5,du在一台服务器上运行比在另一台服务器上运行的时间要长得多。
例如,做 du -sh /opt/foobar在服务器 A(其中大约有 25 GB)上将需要 5 分钟,而在服务器 B 上,具有相同数据量的相同命令将几乎立即向我报告。在跑顶等时,我看不到任何明显的东西。
任何意见是极大的赞赏。
如果该目录中有大量文件并且目录的内容不断变化,则目录条目本身会随着时间的推移而变得碎片化。然后当操作系统读取目录内容时,会有很多不必要的磁盘搜索。这尤其发生在 ext* 文件系统(尽管 ext4 可能更好)和旧的 ReiserFS v3.x 文件系统(如果已超过 85% 左右)。
解决方案很简单:
cp -pr origdir newdir
mv origdir origdir.bak
mv newdir origdir
Run Code Online (Sandbox Code Playgroud)
当然,如果所有内容都缓存在 RAM 中,这并不重要;通常 Linux 会非常积极地缓存经常访问的文件和目录。如果您真的想将这些目录的内容保存在 RAM 中,您可以将类似的内容放到ls -lah /your/dir 2>&1 >/dev/null您的 cron 中。
编辑:哦,我想到了一件事。如果您的服务器有一个带电池备份的 RAID 控制器,其中有一些缓存,请检查电池是否正常。我见过电池没电并且控制器完全禁用缓存的情况,从而破坏了非常糟糕的性能。例如,HP 服务器可能会在 iLO 日志中告知有关控制器电池的信息;在实际的服务器运行状况仪表板中,一切似乎都很好而且是绿色的,但只有日志条目会告诉您这一点。
| 归档时间: |
|
| 查看次数: |
27027 次 |
| 最近记录: |