実際のところ、体感的な変化を感じられなかった方もいらっしゃるかもしれません。
そのため、私の環境で計測した実測値をこちらに載せたいと思います。
環境は以下のとおりです。
#CPU情報
user@Lenovo:~$ cat /proc/cpuinfo | egrep 'processor|model name'
processor : 0
model name : Intel(R) Atom(TM) CPU N455 @ 1.66GHz
processor : 1
model name : Intel(R) Atom(TM) CPU N455 @ 1.66GHz
#RAM情報
user@Lenovo:~$ free
total used free shared buffers cached
Mem: 1015728 933520 82208 0 9576 269616
-/+ buffers/cache: 654328 361400
Swap: 891900 74748 817152
#ディスク情報
user@Lenovo:~$ sudo fdisk -l
[sudo] password for user:
Disk /dev/sda: 250.1 GB, 250059350016 bytes
ヘッド 255, セクタ 63, シリンダ 30401, 合計 488397168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0xc29cb78b
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 121094143 60546048 83 Linux
/dev/sda3 121096190 122879999 891905 5 拡張領域
/dev/sda4 122880000 488396799 182758400 83 Linux
/dev/sda5 121096192 122879999 891904 82 Linux スワップ / Solaris
user@Lenovo:~$
CPUはAtomのシングルコア、HTで2コアに見えている状態。
RAMは1GB、HDDはSATA250GB。
この環境で、前回作成したtmpfsとHDD上のext4にddコマンドでI/Oをかけて、
どれくらいの速度で書き込みされるかを計測しました。
テストは、userでログインし、ホームディレクトリ上でファイル作成を実行します
内容は以下の通り。
#書き込み
・~/testというファイルに0データを100MB書きこむ
・~/.cache/testというファイルに0データを100MB書きこむ
#読み出し
・~/testを/dev/nullに読み出す。
・~/.cache/testを/dev/nullに読み出す。
前回の手順を実施していれば、~/.cacheは/tmp/userへのシンボリックリンクになっています。
RAMとHDDでどの程度I/Oが違うのかを比較します。
以下、結果になります。
#マウントポイントを表示
user@Lenovo:~$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 59595916 5226608 51342008 10% /
udev 500856 4 500852 1% /dev
tmpfs 507864 56 507808 1% /tmp
tmpfs 203148 800 202348 1% /run
none 5120 0 5120 0% /run/lock
none 507864 716 507148 1% /run/shm
tmpfs 204800 68276 136524 34% /tmp/user
/dev/sda4 179889560 60126668 110624976 36% /home
#~/testへ100MB書き込み
user@Lenovo:~$ dd if=/dev/zero of=~/test bs=1024 count=100000
100000+0 レコード入力
100000+0 レコード出力
102400000 バイト (102 MB) コピーされました、 1.26332 秒、 81.1 MB/秒
#~/.cache/testへ100MB書き込み
user@Lenovo:~$ dd if=/dev/zero of=~/.cache/test bs=1024 count=100000
100000+0 レコード入力
100000+0 レコード出力
102400000 バイト (102 MB) コピーされました、 0.69711 秒、 147 MB/秒
#~/testへ書き込んだデータを読み出す
user@Lenovo:~$ dd if=~/test of=/dev/null
200000+0 レコード入力
200000+0 レコード出力
102400000 バイト (102 MB) コピーされました、 2.51517 秒、 40.7 MB/秒
#~/.cache/testへ書き込んだデータを読み出す
user@Lenovo:~$ dd if=~/.cache/test of=/dev/null
200000+0 レコード入力
200000+0 レコード出力
102400000 バイト (102 MB) コピーされました、 0.783181 秒、 131 MB/秒
user@Lenovo:~$
上記のような結果となりました。
いずれの結果も、HDDへの読み書きよりもRAMへの読み書きが2倍弱〜3倍程度の
速さで行われていることがわかります。
この結果から、体感的にはあまり変化を感じられなくても、実際は変化しております。
更に、使ってみるとわかるのですが意外とキャッシュというものはよく使われていて、
ブラウジングしているだけでも数十MBのキャッシュが使われていたりします。
dfコマンドでtmpfsをマウントしているマウントポイントの使用率を見ることで
どの程度キャッシュが使われているかがわかります。
このキャッシュへのI/OをRAMに逃してあげれば、HDDへの書き込みも減ると
いうことになりますので、多少は寿命が長くなる可能性もあるかもしれません。
逆にRAMが寿命が短くなることもあるかもしれませんが…(^_^;)
パフォーマンスを上げる試みと謳っていながら、実測値を掲載していないと
いかんせん説得力に欠けるかなぁ?と思い補足いたしました。
0 件のコメント:
コメントを投稿