CPU負荷のないディスクベンチマーク

CPU負荷のないディスクベンチマーク

さまざまなレベルのCPU使用率とIOスループットを使用して、同じシステムでCPUとIO集約的なベンチマークを混在させたいと思います。

残念ながら、CPUにストレスを与えずに高いIO負荷を生成することはできません。 Cで書かれた一時的なプログラムを試した後、帯域幅パラメータを使用してrsyncを試みました。理論的には、データはCPU介入なしでメモリからディスクに転送できます。これはDMAの中心です。

(あまりにも多く)CPU負荷を生成せずに、プロセス全体で一定量のIOを生成するのに役立つAPIまたはプログラムがあるかどうか疑問に思います。

ベストアンサー1

sendfile(2)カーネルのあるオープンファイルディスクリプタから別のオープンファイルディスクリプタへのデータコピーを最適化するシステムコールを見てください。どちらのファイル記述子もディスクファイルである必要はありません。 Web ソケットも使用できます。

また、ファイルと一緒に使用するときにO_DIRECTフラグを見つけます。open(2)dma バッファーからユーザー・バッファーにデータを再コピーしなくても読み取り/書き込みは可能ですが、ページまたは同様のページにバッファーをソートし、長さに対してページ・サイズの倍数を使用する必要があります。

hdparm -t --directタイミングテストにこのフラグを使用できます。

パッケージの一部のコマンドsg3_utils(例sg_dd:)は低レベルのディスクIOを実行し、O_DIRECTオプションもあります。

おすすめ記事