RAMが128MBしかない小さな組み込みデバイスがあります
このデバイスに接続されているのは2TB USB2ハードディスクです
最近まで、デバイスのパフォーマンスに非常に満足しており、ファイルの数がディスクの容量のしきい値を超えたときに、しきい値を超えました(どちらかわかりません)。
書き込みの性質上、ディスク上には多数の小さなファイルがあります。アプリケーションファイルは非常にバランスのとれた方法で編成されています。リーフノードディレクトリには200を超えるファイルはなく、800,000を超えるファイルしかありません。
私は調査するためにリードを得たいと思っています。ディスクのパフォーマンスが大幅に低下しました。デバイスは順調に動いていたため、突然のパフォーマンスはすべて岩のように低下しました。
私の仮定では、ディスク上でファイル用に選択した組織構造が、iノードキャッシュの機能を損なうために何らかの形で害を及ぼしていると思います。
実験として、ディスクのマウントを解除しました(キャッシュのフラッシュ、無料で確認済み)。次に、コマンドプロンプトからディレクトリ構造の深いところに移動しました。すべてがこのディレクトリ(およびその子)にはその下に含まれるファイルが約3200しかないことを伝え、この時点で 'free'は117MBを超える空きメモリを示しました
この時点で、コマンド「find」に続けて「free」を入力しました
「検索」は約3000ファイルを示しましたが、メモリ使用量は約117MBから約2MBになりました
キャッシュと空きメモリのバランス、およびカーネルが空のページを不良ページと見なす方法を理解しています。ただし、3000ファイルのディレクトリから115MBのキャッシュされたコンテンツは、私の理解に重大なギャップがあることを示しています。誰かが起こっていることを理解するのに役立つことを願っています
バランスの取れたツリーが多くのファイルを持つための方法だと思いますか?