2011年12月30日金曜日

メモリテストツールを動かしてみた。

Xubuntuをインストールするときに、ちょっと気になったのが
メモリテストのツールがLive-CDに同梱されていたこと。
昔のRHEL系のインストールCDでは見たことがなかったので
いい機会なので、実験的に動かしてみました。
きっとOSがブートしている状態でもできるんでしょうが、
やり方がわからなかったので、CDブートさせて動かしてみました。

まずはXubuntuのLive-CDをCD-ROMドライブに入れまして、起動。
LenovoのS10-3はCDドライブがついていませんが、いただき物のUSB CDドライブを
接続してCD-ROMブートしました。

BIOSのブートセレクタ。USB CDROMを選択。
















CD-ROMから起動すると、言語の選択画面が表示されます。

日本語を選択します。
















次にxubuntuが起動していくつかの項目が表示されます。「メモリテスト」を選択します。

xubuntuが起動。
















「メモリテスト」を選択すると、さっそくメモリテストが動き始めます。


メモリテスト実行画面。
















画面右上にプログレスバーが表示されます。
















「Pass」が全体の進行状況。
「Test」が個別テストの進行状況。
その下の「Test (番号)」が実行中のテスト内容。
「Testing」はおそらくテストするメモリのアドレス範囲。
「Pattern」がテストパターン?詳しくはわかりません…(^_^;)

もうすぐ終了…
















終了画面。またすぐにメモリテストが走り始めますが…
















画面下部に新たな文字列が表示されています。
「Pass complete, no errors, Press Esc to exit」
と表示されています。


















私のPCにはメモリの異状は無いことが判明しました。
異状が無かったのでエラーがある場合にどのように表示されるかは
わかりませんが、上記画面以外の状態だと何かしらエラーがあるかと思われます。
その場合は、今はもうメモリも結構安いので買い替えがいいかもしれませんね。
複数のメモリモジュールを差している場合は、画面下部のSlotが複数行表示されると思います。
エラーが出た場合はどのモジュールでエラーが出ているかを教えてくれるのでしょうね、きっと。

終わったら、Escキーを押してメモリテストツールを終了するとPCが再起動します。
CD-ROMを抜いてOSを起動してあげましょう。

私のPCのメモリはDDR2-667 1GBで、この環境で1GBのメモリテストに
約25分かかりました。
メモリの規格によってまた速度も変わってくると思いますが、DDR3ならもう少し早く
終わると思います。
最近はPCも大容量メモリを積んでいる人もいますから、チェックツールを走らせるときは
PCが使い終わってしばらく放置してもいい状況のときがいいですね。
4GBくらいでも2時間くらいは覚悟しておいたほうがいいかもしれません。

ご自宅のPC、調子が悪いなと思ったら一度実行してみてください。
でもそうそうメモリは簡単に壊れませんけどね(´・ω・`)

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が寿命が短くなることもあるかもしれませんが…(^_^;)

パフォーマンスを上げる試みと謳っていながら、実測値を掲載していないと
いかんせん説得力に欠けるかなぁ?と思い補足いたしました。



2011年12月28日水曜日

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

前回は、ディスクのマウントオプションの変更によるパフォーマンスの向上について書きましたので、
今回は2つ目の/tmpをRAMディスク上に配置する、という設定変更について書きます。

Linuxカーネルでは、2.6系の頃(詳細は調べてません)からtmpfsというファイルシステムを
実装できるようになっています。
これは、RAM上にファイルシステムを作成し、HDDより高速アクセスが可能なファイルを
作成できるような仕組みです。(説明は至らないところがあるかと思いますがご了承ください)
要するに、一時領域など恒久的に保存する必要がないが、システムやアプリケーションで
作成し使用するファイルを、RAM上に作成して動作を高速化できるというわけです。
詳細については、こちらのリンクをご参照ください。
(参考リンク:Linux Kernel Documentation :: filesystems : tmpfs.txt

今回はこのtmpfsファイルシステムを/tmpにマウントし、更にユーザのキャッシュ保存先も
tmpfsを使用してしまおう、という設定変更内容になります。

まずは、/tmpにtmpfsをマウントする設定から。

1.ターミナルエミュレータを起動し、rootになります。
 $ sudo su -

2.fstabをバックアップします。
 # cp -p /etc/fstab /etc/fstab.`date +%Y%m%d`

3.fstabを編集します。(エディタはお好きなエディタで。私はvi派です。)
 # vi /etc/fstab

4.以下の項目を一番下に追記します。
 tmpfs /tmp tmpfs defaults,noatime,mode=1777  0 0

5.システムを再起動します。

/tmpに関しては、システムが利用していたり、ユーザが利用していたりで強制的に
マウントすると不具合が生じる可能性がありますので、必ず再起動します。
以上です。

これで、一時領域として使用されることの多い/tmpにtmpfsがマウントされるはずです。
dfコマンドで状態を表示してみると、以下のように表示されます。

user@Lenovo:~$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda1             59595916   5226496  51342120  10% /
udev                    500856         4    500852   1% /dev
tmpfs                   507864        64    507800   1% /tmp
tmpfs                   203148       800    202348   1% /run
none                      5120         0      5120   0% /run/lock
none                    507864       584    507280   1% /run/shm
/dev/sda4            179889560  62405872 108345772  37% /home
user@Lenovo:~$ 

赤字の項目が今回追加されたマウントポイントになります。
ブロックサイズは、デフォルトではシステムに搭載されているRAMの50%になります。
ただし、使用可能なRAMの50%が完全に割り当てられてしまうわけではなく、
tmpfsがマウントされているマウントポイントの使用量によってダイナミックに割り当てられます。
この割り当て量を50%ではなく、サイズで指定することもできます。
その手順については、後述するユーザキャッシュのtmpfsへの割り当てで説明します。

それでは、次の設定変更ポイント、ユーザキャッシュをtmpfsに割り当てる設定方法になります。

1.まずは上記のfstabに以下の項目を追記します。マウントポイントのターゲットのフォルダ名は
 任意のフォルダ名に変更してください。私はuserユーザを使っているため、以下のような
 記述にしています。そして、今回のtmpfsはブロックサイズを200Mに指定しています。
 "size=200M"のエントリがそのサイズ指定の記述になります。
 tmpfs /tmp/user tmpfs defaults,noatime,size=200M,mode=1777 0   0
 ※必ず/tmpのエントリより下に追記してください。

2.システムを再起動します。再起動後、dfコマンドでマウントされているファイルシステムを
 確認します。赤文字の項目、/tmp/userにtmpfsがマウントされていることを確認します。


user@Lenovo:~$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda1             59595916   5226500  51342116  10% /
udev                    500856         4    500852   1% /dev
tmpfs                   507864        80    507784   1% /tmp
tmpfs                   203148       800    202348   1% /run
none                      5120         0      5120   0% /run/lock
none                    507864       584    507280   1% /run/shm
tmpfs                   204800      7660    197140   4% /tmp/user
/dev/sda4            179889560  62405300 108346344  37% /home
user@Lenovo:~$



3.キャッシュをtmpfsに割り当てるユーザのホームディレクトリに移動します。この時のユーザは
 rootである必要はありません。逆にrootであると後でパーミッションの変更等が発生するため
 ホームディレクトリの所有者で実施したほうが効率的です。

4.ホームディレクトリ直下の.cacheディレクトリを削除し、tmpfsをマウントしたフォルダへの
 シンボリックリンクを作成します。
 $ rm ~/.cache
 $ ln -s /tmp/user .cache

5.一度、ログアウトし再度ログインします。

以上です。
これで、ブラウザなどで利用するキャッシュデータがRAMに保存されるようになります。
現状、私は高速回線で動かしていないため、それほど高速化されたかが実感できませんが
数十Mbpsの回線速度でブラウザの動作確認をすると差が出るかもしれません。
また、その他のアプリケーションでもキャッシュを使って動作するアプリケーションの動作は
速くなる可能性はあります。

どの程度、効果があるかわかりませんが、NetBookという貧弱なハードウェアで最大限に
リソースを活用するために今回の設定を実施してみました。

これは、サーバとして運用する場合のほうがパフォーマンスの変化が見える設定かもしれませんね。
RAMを大量に積んでいる場合は、データベースサーバのキャッシュディレクトリに
tmpfsを割り当てたりすれば、よりパフォーマンスの変化が見えるかもしれません。

この設定はデスクトップに限った設定ではありませんので、応用を効かせれば色々と
活用できると思います。

とりあえず、今回Xubuntuに設定したパフォーマンス向上の試みはこれだけになります。

次回は、パフォーマンス向上ではなく、パフォーマンス劣化時のために対処した設定を
書きたいと思います。
大したことはやってませんが、いちいちコマンド打つのがめんどくさかったので…(^_^;)

2011年12月27日火曜日

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

昨日はインストールしたアプリケーションについて書きました。
今日は、その後に実施したパフォーマンス向上を目的としたちょっとした設定変更を書きます。

今回実施した試みは、以下の2点になります。

  1. ディスク書き込みのオーバーヘッドを減らすようにディスクをマウントする。
  2. /tmpをRAM上に配置してディスク書き込みを減らし、アクセスを高速化する。

今回はまず、1の設定変更について。
これは、他の人が公開しているサイトを参考にして実施したのですが、
Linux(extファイルシステム?)ではファイルの読み込み時にアクセスタイムを
記録するのだそうです。
(参考リンク:ITmedia 余計なディスク書き込みを軽減させよう~noatime編~
これは上記リンクに記載されているように、一部のシステムでは利用するようですが、
今回のようにクライアントとして使用する端末には必要ないはず。
なので、この設定を無効化してしまいました。
修正内容は以下の通り。

1./etc/fstabをviなどテキストエディタで開く。(念の為、バックアップを取得する)

バックアップを取得する際は、以下のコマンドが意外と便利ですよ。
$ cp -p (バックアップするファイル) (バックアップするファイル).`date +%Y%m%d`
このコマンドを使うと、日付を拡張子として付与してくれますので世代管理しやすいです。
私は一番初めのバックアップは.orgを拡張子にしています。
それ以降は日付が多いです。

2./etc/fstabの内容を修正する。

以下、私の環境の/etc/fstabの内容です。説明コメントは省略しています。


# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda1 during installation
UUID=8f8577c8-d93a-4cf2-a169-63e8166a27f4 /               ext4    errors=remount-ro,noatime 0       1
# /home was on /dev/sda4 during installation
UUID=0b960d9c-664f-4177-924f-9caa0290e7d0 /home           ext4    defaults,noatime        0       2
# swap was on /dev/sda5 during installation
UUID=daa133c9-ce34-42f2-8417-b219d1389c95 none            swap    sw              0       0


赤字の箇所が今回追加した記述になります。
私の環境は、1ディスクの環境ですが、/homeをパーティション分けして
初期インストールしているのでこのようなfstabの内容になります。
特に意識せずにインストールしている場合は、/(ルート)だけ修正すればいいはずです。

3.OSを再起動する。

/etc/fstabの修正を反映させるために、OSを再起動します。


以上になります。
正直、これでどの程度パフォーマンスがよくなっているかはわかりません…(^_^;)
でも不要な書き込みを少しでも減らすことで、HDDやSSDの寿命が長くなる
可能性はあるかもしれません。
この設定は、体感的な要素は少ないかもしれませんが、長い目で見た時に
何かしら結果がでるかもしれません。

一度、オプションを外して再起動して、I/Oを測ればいいのですが、
この設定に関してはそこまで熱意はありません…(^_^;)

なので、この記事を見た方で、設定するまえにddレベルでもいいので
I/O測定して結果をコメントなどしていただけるとありがたいです。

次回は、2に上げた/tmpのRAM上への配置とプラスアルファについて書こうと思います。

2011年12月26日月曜日

Xubuntuのアプリケーションの整理とインストール

先日インストールしたXubuntu。
インストール直後の状態ではやっぱり使い辛いので、まずはデスクトップで使用するための
アプリケーションの選定をしました。

デフォルトのブラウザはFirefoxなんですが、やっぱり無駄に
メモリを食う(どのブラウザも共通か?)のと、UIが飽きてきたので
Firefoxはアンインストール。
代わりにGoogle ChromeのLinux版のChromiumをインストールしました。
ここでChromeを選択して、改めてChromeの利点というか、素晴らしい点に気づきました。

WindowsでもChromeは使っていたのですが、この時に設定していたGoogleアカウントで
自動同期していました。
Chromiumでもそのアカウントで同期したら、なんとまあ!
Windowsで設定していたブックマークや設定、プラグインまで
全て自動で持ってきてくれるんですね!
これは知らなかったので、凄く感動しました。
いやぁ、無知とは恐ろしいですね…(^_^;)

次にメーラーですが、こちらもMozilla系のThunderBirdがデフォルトのメーラーとして
インストールされております。
ThunderBirdはWindowsやMacでもデフォルトで使っていたのでこちらは変更なし。

次はオフィス系。
デフォルトでもWordとExcel?くらいは見れそうなアプリが入っていたのですが、
この辺は全て削除しました。代わりにLibreOfficeスイートを導入。
これでなんとかなるだろ的なやっつけで選定してます。

次はグラフィック系。
こちらは普段からあまり使わないのでデフォルトのまま。GIMPがあればいいかな的な。

次、システム系。
NTFSに蓄積されたデータを吸い上げたあと、パーティションを操作して全体を
ext4にするために、GPartedを使用しました。
それ以外は特に需要がなかったため、デフォルトのまま。

次、ゲーム。
これは全部削除。いらないもん。

次、マルチメディア系。
これは、WindowsでiTunesをつかっていたため、そのフォルダのデータをそのまま
読み込めるものを探して、SongBirdというプレイヤーを入れました。
少し重いし、プラグインがエラー出まくったりするけれど、使えないこともないので
しばらくは使ってみます。
その他は、デフォルトを放置。

そして、開発系。
定番はeclipseなんですが、Javaとか書けるわけでもないので必須というわけでもないし、
それにあまり開発作業を強いられることもないので、人気があるという点だけで
GeanyというIDEを入れて見ました。しかしまだ起動すらしていません…(^_^;)

それ以外ですが、TwitterクライアントにHotot、EvernoteクライアントにNixNoteという
アプリケーションを入れました。

以上が今回、インストール後に入れたアプリケーションです。
それ意外のプラスアルファとして、Linux版のGoogle日本語入力のMozcを入れました。

そして、何より驚いたのは…

上記のアプリケーションが、ほとんどコマンドなしのGUIでインストールできたこと。
ubuntuソフトウェアセンターというソフトウェアライブラリのようなアプリケーションが
デフォルトでインストールされていて、そこから入手できたのです。
一部、リポジトリの追加が必要なものもありましたが、大体のアプリを揃えることができました。

これって、以前私が知っていたLinuxではなかった環境で、非常に驚きました。
しばらく使っていなかったので浦島太郎状態でしたが、このソフトウェアセンターが
あったから、今回クライアントとして使ってみようという気になりました。

いやぁ、時代って変わるものですね…

と、インストール後のアプリケーションの追加と削除に関してはこんな感じになりました。

次回は、ちょっとだけパフォーマンスが良くなるのでは?と信じてやってみた
パフォーマンスチューニング内容を書こうと思います。

既存の方法ですが、自分への備忘録みたいなものですので…
今更とかのツッコミはしないでくださいね。

2011年12月25日日曜日

デスクトップ環境の変更

デスクトップ環境を一新しました。

今使っているPCはLenovoのS10-3。
モバイルですね。
NetBookといったほうがいいかもしれませんね。

今まではこのPCにWindowsXPを入れて動かしていたのですが、
最近時間を持て余しているのもあって、なんか新しくしたくなりまして。
最近のLinuxデスクトップは充分使えるということなので、
試しにWindowsからwubiというツールを使ってubuntuをインストールしてみました。

一応デュアルブート環境を構成してくれるのですが、ubuntuのディスクは
WindowsのNTFS上に仮想ディスクとして作成するようなのでパフォーマンスは
いまいちでしたが、Linuxデスクトップを体験するだけだったのでパフォーマンスの
面は気にせずに使ってみたところ、これがなかなかいい感じ。

なので、wubiのなかに含まれていたディストリビューションの中でも軽いといわれている
Xubuntuをインストールしてみることにしました。

知り合いの方にLive-CDを作ってもらい、まずはデュアルブート環境でインストール。
そして環境を整備して使ってみたのですが…

以前私が使ったことのあるLinuxデスクトップとは比べ物にならないくらいに
快適に使えました。
そのため、いっそのことディスクをすべてLinuxデスクトップに割り当ててしまおうと
データの入ったパーティションを除くすべてのパーティションをフォーマットして
Xubuntu環境を作って、データの入ったパーティションからデータを移行し、
完全なるLinuxノートにしてしまいました。

いやぁ、いいですね。何よりメモリ消費量が少ないです。
S10-3はハードウェア拡張していない状態で使用しているので
RAMは1GBしか積んでいないのですが、OS起動直後の使用量は大体200MB以下。
ブラウザやメーラ、Twitterクライアントを起動しても使用量500MB程度で済みます。
この状態でswap outはなし。
今、この記事を書いている間は音楽プレーヤーも起動しているのでswapも発生していますが
それでも特にストレスなく利用できています。

快適です。WindowsXPにはない快適さがあります。
それと、画面が見やすいですね。
WindowsXPはどうもフォントが安っぽくて画面が粗い感じが否めませんでした。
まぁ、2世代前のOSなので文句つけても仕方ないんですが。

ということで、現在この記事はXubuntuから、Xfceデスクトップ環境で書いております。

Mac買うまでは、この環境をデスクトップにしたいと思います。

今更的なブログ開設の理由

初投稿になります。

今更ですが、ブログを新規開設してみました。
過去には幾度かブログやっていたんですが、結局それほど記事を投稿せずに
辞めてしまったり、自宅のサーバでお遊び程度でやっていた程度なので
自宅サーバのメンテナンスを怠っていくと同時にフェードアウトしていったり…
という感じで継続的なブログ運用はしたことがないので、続くかわかりませんが
またやってみることにしました。

理由というのは、Twitterやってて自分の呟きが長くなりすぎるものがあって、
Twitterのサービスでは意図していないような呟きをすることがあるのと、
タイムラインに埋もれていってしまって、自分でも追いかけることが
困難になってしまっているが、自分にとって、また他の誰かにとって有益であろうと
思われる情報を見やすく残そうと思ったことがきっかけです。

政治絡みや経済絡みのことでも、思うことがあればたまに書きたくなるかもしれませんが
大してお利口でもないので、きっと突っ込まれまくるので辞めておこうかと思います。

主に、コンピュータ関係について、投稿していこうと思います。

よろしくおねがいします。