ハードディスクの最大書き込み速度を実現

ハードディスクの最大書き込み速度を実現

私は、8GBのRAM、4TBのセカンダリハードディスク、500GBのプライマリハードディスクを搭載したi5第6世代プロセッサを持っています。4TBのハードディスクはNTFSでフォーマットされています。私の目標は、ディスクに大量のファイルを書き込むことです。ディスクはSATA 7200RPMで、書き込まれた同じファイルで圧縮アルゴリズムをテストする必要があります。ディスクに書き込まれるファイルは、zlibで圧縮された小さいサイズであれば、約12〜20KBの範囲になります。テスト目的で同じものを500000コピーするbashスクリプトを作成しましたが、そのディレクトリには1秒あたり7〜8個のファイルが書き込まれていることがわかりました。これは100kB/秒ですが、記載されている速度ははるかに高速です。1秒あたり100ファイル程度を達成したいのですが、どうすればよいかわかりません。最高の書き込み速度を達成するためのアドバイスをお願いします。

答え1

ボトルネックとなっているのはディスクではなくファイルシステムです。ファイルシステム (およびその実装) がファイル操作 (作成/削除など) でどの程度拡張できるかは、実装と設計によって大きく異なります。同じ量のデータを複数のファイルに書き込むのではなく、1 つのファイルに順番に書き込む方が、多くのファイルシステム操作 (開く/作成) を必要とするよりも、スループットが大幅に向上している可能性があります。

大量のファイル操作を実行する必要がある場合は、Linux 上で NTFS よりもスケーラビリティに優れたファイルシステムを選択する必要があります。XFS または EXT4 は、パフォーマンスに優れた確実な選択肢です。

たくさんありますベンチマーク同じ点を指摘するパフォーマンスの違いを比較します。

答え2

小さなファイルを書き込む場合、主にファイルシステムがファイルを開いたり閉じたりする速度 (およびヘッド移動の遅延) をテストすることになります。また、Linux で NTFS を使用すると、最もパフォーマンスの高いファイルシステムを使用するわけではありません。アルゴリズムの速度をテストする場合は、ネイティブ ファイルシステム (ext4 など) と大きなファイルを使用します。そうすれば、NTFS で遅い結果が得られた場合、その原因がわかります。

関連情報