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
確かにメモリ帯域幅をテストするための良いツールではありません。
特定のツールが必要ですここにそこに置かれているそのような理由で。