into the void

ソフトウェアに関する雑多な調査日記

UbuntuをSSDにインストール

LinuxSSDにインストールしてみる。SSDを使うときにはやっておいた方がいいチューニングもする。

使用するSSD

  • Intel SOLID-STATE DRIVE 330 SERIES (128GB)
    • Product Code: SSDSC2CT120A3K5
    • コントローラ: LSI SandForce

BIOSの設定

OSのインストールをする前に、BIOS上でSATAコントーラとのインタフェースがAHCI(Advanced Host Controller Interface)になっていることを確認する。AHCIの他にIDE互換モードがありこっちだとSATA3.0の性能がでない。

OSのインストール

  • Ubuntu Server 12.04.1 (64bit)

新しめのカーネルの方がSSDのサポートが充実しているのではないかと思うのでUbuntu 12.04にした。カーネルは3.2系。
あと、SSDは容量が少ないので、OSは必要最小限の構成にするべくServerエディションを使う。

パーティションのアライメント

SSDパーティションの開始位置が512Kの倍数になるように設定する。1Mになるように2048セクタから開始するようにする。

swap領域の設定

SSD内にswap領域を作ると書き込みが頻発して寿命が短くなる。swap領域は別途用意したHDD上にマウントすることにする。
http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm

言語、タイムゾーンGUI

言語はEnglish、タイムゾーンはAsia/Tokyoにする。インストールした後で日本語化用のパッケージを入れる。GUIも使いたいのであとでLXDEを入れる。

ファイルシステムの設定

SSDをマウントしたボリュームに対して/etc/fstabで下記の設定をする

  • notimeオプションをつけて、ファイルのRead時にアクセス日時の変更(書き込み)が行われないようにする
  • discardオプションをつけて、消去可能領域をSSD側に通知するようにする(trimの有効化)

ディスクI/Oスケジューラの設定

SSDアルゴリズムをdeadlineアルゴリズムに変更する。HDDではデフォルトのCFQのままにする。

CFQ
Completely Fair Queueing。HDDに最適化されたアルゴリズム
NOOP
単純なFIFO
deadline
NOOPに対してどのIOリクエストも最低限の時間(deadline)内では処理されるように動作するアルゴリズム

http://japan.internet.com/linuxtutorial/20090522/2.html
アルゴリズムのかえ方は下記。rc.localに下記のコマンドを追加する。

echo deadline >/sys/block/sda/queue/scheduler

swap処理の抑制

メモリが完全に使われてしまうまでスワップしないようにする。スワップ領域はHDDにとっているので、スワップがおきてもSSDの寿命への影響はない。ただ、HDDへのアクセスによって今まで通り動作が遅くなってしまうため、頻度が最小限になるようにしておく。
/etc/rc.localに下記のコマンドを追加する。

echo 20 > /proc/sys/vm/swappiness

tmp領域

/tmpをramdisk上にマウントするように/etc/fstabを変更する。

tmpfs   /tmp       tmpfs   defaults,noatime,mode=1777   0  0
tmpfs   /var/spool tmpfs   defaults,noatime,mode=1777   0  0
tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755   0  0

Ubuntu Server を日本語化する

Ubuntu Server の日本語化の手順。参考にしたページ。
http://www.server-world.info/query?os=Ubuntu_12.04&p=japanese

  1. Ubuntu Serverを言語は英語、タイムゾーンはAsia/Tokyoでインストールする
  2. 日本語化のためのパッケージを追加でインストール
$ apt-get  install language-pack-ja-base language-pack-ja
$ update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" 
$ source /etc/default/locale 
$ echo $LANG 
ja_JP.UTF-8

アプリケーションの使うキャッシュの設定

firefoxchromeがつかうキャッシュの保存先をHDD上に変更する。
~/.cacheを固定で使うものもあるため、.cacheをHDD上のディレクトリへのシンボリックリンクにしておく。