RAMFSが予想より遅いようです。ボトルネックは何ですか?

RAMFSが予想より遅いようです。ボトルネックは何ですか?

RAMFSはスワップを使用しません(TMPFSは使用します)。だからFSをマウントします。

cd /mnt/; mkdir SOMETHING; mount -t ramfs -o size=1500m ramfs /mnt/SOMETHING; cd /mnt/SOMETHING

テストファイルを生成します。

dd if=/dev/zero of=testfile_500MB bs=524288000 count=1

I cpテストファイル(メモリからメモリへ)

time cp testfile_500MB testfile_500MB_cptestfile

real    0m0.599s
user    0m0.008s
sys     0m0.592s

私のPCにはDDR2-1066モジュールがあります。ボトルネックは何ですか?このWikipediaの記事によると:

http://en.wikipedia.org/wiki/List_of_device_bandwidths

10GB/秒以上が必要です!速度は10GB /秒を超えません。

0.599秒で500MB = 835MB/秒。非常に遅い。

CPUがボトルネックですか?または何をか。 :O(E7300 @ 2.66GHz)

アップデート:「時間」の面で「cp」を測定するのは良いですか?

答え1

テストが実行オーバーヘッドを均等化するのに十分長くない可能性があるため、cpこれが良いテストであるかどうかはわかりません。同様のことを試すこともできますbonnie++

しかし、あなたが提示した数字は私が見るには無理なようではありません。 memtest86+を信じると、ほとんどのデュアルチャネルRAMシステムはメインメモリへの転送速度が2〜3GB / sです。単一チャネル(つまり、単一のRAM)は遅くなります(必ずしも半分ではありません)。理解できるオーバーヘッドを除くと、1 GB / s未満の速度が合理的に見えます。

答え2

を使用すると、cpデータは複数のバッファ(ユーザー側とカーネル側)を通過するため、必要なメモリ帯域幅に大きな要素を掛けることができます。たぶん、ramfsは内部的にいくつかのオーバーヘッドを追加するかもしれません。したがって、cp確かにメモリ帯域幅をテストするための良いツールではありません。

特定のツールが必要ですここにそこに置かれているそのような理由で。

答え3

実際に思ったより遅いです。このようにファイルを作成すると、次のようになります。足りないデフォルトでは、ファイルシステムは次のようにマウントされます。非同期I/O

もちろん、cpは大容量ファイルをコピーするときに非常に遅いです(この問題を解決するためのさまざまな方法があります。最も一般的な方法はパイプ全体でcpioを使用することです)。

どの速度を測定しますか?メモリ I/O を測定するには、以下を使用します。記憶力テスト。実際にramfsのパフォーマンスを測定するには、次のようにします。ペオ

関連情報