2011年12月29日木曜日

Xubuntuのパフォーマンスを上げる試み(補足)

前回書いたtmpfs設定に関する補足記事になります。

実際のところ、体感的な変化を感じられなかった方もいらっしゃるかもしれません。
そのため、私の環境で計測した実測値をこちらに載せたいと思います。

環境は以下のとおりです。

#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 件のコメント:

コメントを投稿