なぜ小さなファイルと大きなファイルのファイル転送速度は異なる可能性があります
環境
- ONTAP 9
- clustered Data ONTAP 8
- Data ONTAP 7-Mode
回答
- 1つの場所に多数の小さなファイルをコピーする場合、合計サイズが小さいファイルのサイズと等しいいくつかの大きなファイルを同じ場所にコピーするよりも時間がかかります。ホストベースのファイルシステムパフォーマンス問題はよく知られていますが、あまり知られていません。
- すべての主要なオペレーティングシステムで、大量の小さなファイルを読み書きしようとすると、大量のO/Sシステムオーバーヘッドが発生します。これは、処理中の各ファイルに対してfind ()、open ()、close ()の各操作を実行するために、O/Sレベルでより多くの時間が費やされるためです。
- これらの処理は、1つのファイルに対して必ずしも多くの時間を要するわけではありませんが、数百、数千の小さなファイルを処理するとすぐに処理が完了します。これらの問題は、バックアップ、復元、ウイルススキャンなどのアクティビティを実行するときに現れます。 4Kのような小さなファイルでは、データの読み取りや書き込みよりも、ファイルの検索、開く、閉じるのに多くの時間を費やすことができます。
- O/Sがファイルシステム内でファイルを検出し、そのファイルを開くと、ファイルの内容の読み取り/書き込みとストレージアレイとの通信が可能になります。そのため、ストレージアレイのパフォーマンスの観点からは問題ないように見えます。
- アレイは'O/Sからの読み取り/書き込み要求に非常に迅速に応答していますこのようなシナリオでは、CPUの高速化と低レイテンシのディスクの使用が効果的ですが、問題を完全に排除することはできません。すべてのファイルをSSDまたはRAMベースのディスクに保存した場合でも、OSは各ファイルに対してすべてのシステムコールを実行する必要があります。
- 大容量のファイルでは、上記の検索のオープン操作とクローズ操作は引き続き実行されますが、ファイル数が少ないため、アクセスのこれらの部分を完了するために必要な時間が短くなり、実際の読み取り/書き込みに費やす時間が長くなります。
追加情報
Microsoft Knowledge Baseでは、小さなファイルの書き込みパフォーマンスが低下しています