duコマンドの実行に時間がかかりすぎる


9

私はdu -sh、さまざまなディレクトリで実行して、ディスクの豚を見つけています。私は2台の同一のサーバー(Dell PE2850s)を入手しました。どちらもRHEL5を搭載してduおり、1台のサーバーで実行するのに他のサーバーよりもかなり時間がかかります。

たとえば、du -sh /opt/foobarサーバーA(約25 GB)で5分かかります。サーバーBでは、同じコマンドで同じ量のデータを使用すると、ほぼ瞬時にレポートが返されます。トップスなどを走らせても、はっきりと見えるものは何もありません。

アドバイスは大歓迎です。


3
の速度はdu -s、データのサイズではなく、ファイルの数に依存します。両方のディレクトリツリーに同じ数のファイルがありますか?
Ladadadada 2013

2
また、duすべてのディレクトリメタデータ(ファイルサイズなど)が現在キャッシュされている場合は、より高速に動作します。これが何らかの理由で一方のサーバーに当てはまり、もう一方のサーバーに当てはまらない場合、大きな違いが生じます。
スヴェン

@Ladadadaはい、ほぼ同じ量のファイルがあります。アスタリスクを追加してファイルサイズのリストを個別に取得する場合でも、スクロールに長い時間がかかります。しかし、メタデータがキャッシュされているかどうかを確認する方法は完全にはわかりません。
Jon Weinraub 2013

回答:


6

そのディレクトリに膨大な数のファイルがあり、ディレクトリの内容が絶えず変化する場合、ディレクトリエントリ自体が時間とともに断片化されます。次に、OSがディレクトリの内容を読み取っているときに、不要なディスクシークが大量に発生します。これは特にext *ファイルシステム(ext4の方が良いかもしれません)と古いReiserFS v3.xファイルシステム(85%を超えた場合など)で特に発生します。

解決策は非常に簡単です。

cp -pr origdir newdir
mv origdir origdir.bak
mv newdir origdir

もちろん、すべてがRAMにキャッシュされている場合、これはそれほど重要ではありません。通常、Linuxは頻繁にアクセスされるファイルをキャッシュし、かなり積極的に低下します。それらのディレクトリの内容を本当にRAMに保持したい場合はls -lah /your/dir 2>&1 >/dev/null、cron に何かを置くことができます。

編集:ああ、私の心に浮かんだことが一つあります。サーバーにバッテリーバックアップされたRAIDコントローラーがあり、その中にキャッシュがいくつかある場合は、バッテリーに問題がないことを確認してください。バッテリーがなくなり、コントローラーがキャッシュを完全に無効にして、パフォーマンスを非常に悪くする状況を見てきました。たとえば、HPサーバーは、iLOログでコントローラーのバッテリーについて何かを伝える場合があります。実際のサーバーヘルスダッシュボードでは、すべてが正常で緑色のように見えますが、これについてはログエントリのみでわかります。


1
これにはおそらく時間がかかるでしょう。それは本番サーバー上にあるので、夜通し実行する必要があり、ディレクトリ全体に数百ギガバイトのデータが含まれているので、それを邪魔したくありません...報告します明日の朝一番。アイデアをありがとう。
Jon Weinraub 2013

私はまだこのコマンドを実行しており、どのくらいの時間がかかるのかわかりません。私もそれを手直しし、cpはまだ実行されて、それを開始してから約1時間15分です。別のシェルのそのフォルダーでduを実行するのにも長い時間がかかりましたがumount、ドライブとfsckそれだけで十分だと思いますか?
Jon Weinraub 2013

どういうわけかあなたの生産を邪魔しない限り、それを走らせてください。RHEL5とそのデフォルトのCFQ I / Oスケジューラーを使用すると、他のプロセスをいじめないように、cpコマンドをアイドルクラスに配置できますionice -c3 -p $(pidof cp)
ジャンヌピッカライネン2013

私の最新の編集も読んでください。
ジャンヌピッカライネン2013

1
久しぶりのことですが、先ほどお話ししたcpコマンドを実行できるようになりました。25 GBをコピーするには2時間かかります。移動した後、別のdu -shを実行するのも同じように遅くなりました。実際、バックアップディレクトリの消去も遅くなります。
Jon Weinraub 2013年

0

スイッチなしで簡単なduコマンドを試すことをお勧めします。最終的に、どのディレクトリがプロセスを遅くしているのかがわかります。ディスクに問題があるか、その他の理由が考えられます...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.