HOME > PC > SSD vs. HDD > Linux ubuntu


SSD や ANS-9010 と Linux ubuntu  


SSDでは読み書きが交錯すると書込遅延が発生し、プチフリが発生する。これをさける方法としてRAIDの構築があるが、SONYのVAIOは基盤2枚でSSDのRAIDを組めますが、それ以外のノートパソコンでは、一般にRAIDを組みにくい。このような環境で、読み書きの交錯を避けるためには、WindowsからLinuxにOSを入れ替えてしまうのもいいと思います。

Linuxのext2やext3などのファイルシステムはNTFSやFATとは別の哲学で設計されており、本来はマルチユーザーを想定して複数のユーザーが同時に複数のファイルにアクセスする事を前提に作られているので、Windowsの様に同じ場所に書き込みを繰り返すのではなくパーティションの空いている部分に一度にデータを書き込み、これがSSDにとっては好都合で、読み書きの交錯が起こりにくく、上記実験結果のような読書交錯遅延メカニズムによるフリーズが発生しにくい仕組みとなっています。別の言い方をすれば、Windowsの場合には、新たな書込みが発生した場合に新しいデータの書込み終了後SSD内で元のデータのある場所のブロック消去が発生するが、Linuxの場合には多くの場合新しいデータの書き込みを行うだけでよいからより高速になると考えています。
よく言われるように、Linuxでは「遅延書込処理をするから速い」という理論については、SSDのブロックサイズ以下の小さなサイズのデータを遅延書込処理をすると処理はより高速化するという点では私も当然そう思いますが、SSDのブロックサイズより大きなデータを遅延書込処理する場合には、かえって大量のブロック消去が発生して書込み時間が遷延することもあると考えています。

SSDは構造上、HDDのように高速な先頭部分にデータを集める必要性がないため ext2・ext3などのファイルシステムでも速度が低下する心配がなく、さらに、Linuxではswapも別のパーティションで行っているのでシステムパーティションのデータが断片化しにくく SSDの得意なより高速な sequential read/write としてデータ処理ができます。LinuxはSSDが出現する将来を見据えて設計されたような未来型OSとも言えます。ext2ではジャーナリング機能がないので、SSDで読み書きの交錯が少なくより高速ですが、ext3 でもジャーナリングモードを変更して、さらに高速化することを実験・証明したサイトもあります。ext3は本質的には遅いと考えて、SSDへの書き込みを高速化するためにはデータの書込みブロックサイズをSSDの書込みブロックサイズと同じにすべきと考える意見もあります。私はSSDの特性上、ジャーナリング機能のないファイルシステムでSSDを使用して、ファイルシステムにエラーが発生した場合にはバックアップから復元して完全に元に戻す使用方法が個人的には好きです。ファイルシステムにエラーが発生するのは、突然の電源切断や使用中のクラッシュですが、これらの発生する環境では、遅くなるのをがまんしてジャーナリング・システムを利用すべきでしょう。

さらにまた、LinuxではSSDへの書込みが初めから deviceレベルのみならずOSレベルでもウェアレベリングを行っていることになり、読書交錯遅延が発生しにくいという利点のみならず、SSD自体が長寿命化するという利点もあると考えられます。ただし、SSDを使い込んでいくと、これらの利点が打ち消されてしまうことも充分予想できるので、SSDのための新たなファイルシステムがWindows用・Linux用を問わず開発されていることであろう。

2009年3月15日、朝起きて上記のSSDとLinuxの良好な相性の可能性について思いついたのですが、その夜、Linux ubuntu で実験してみて、ちゃんとうまくいくことが確認されました。(2009年7月30日、VistaでプチフリしていたがFedora Core 11でプチフリが消えたという書込みも出ました。)

使用した実験用パソコンのスペックは次の通りです。
 CPU: Core 2 Duo E8600 3.33GHz, 1333MHz FSB, 6MB L2 cache
 RAM: Samsung M378T5663RZ3-CF7 DDR2 PC6400 2GB × 4枚
 Northbridge: Intel P45
 Southbridge: Intel ICH10R
 Motherboard: GIGABYTE EP45-DS3R
 Boot SSD: SP032GBSSD650S25 および ANS-9010
 SSD Format: ext3
 Graphics: GIGABYTE GeForce 7300GS (nVIDIA 7300GS)
 Powered by: GOURIKI-P-550A
 Power switch: AINEX KM-01
 OS: Linux ubuntu 8.10


まず上記の実験用PCに Linux ubuntu 8.10 の desktop版をまずANS-9010にインストールしてみました。GUIのみでインストール可能でトータルで12分で完了し、ファイルの書込時間自体は5分ほどでした。 Fedora Core 2 でサーバーを作るときに、不得手なCUIで3ヶ月間も悪戦苦闘したことを考えると、たった5年で隔世の感がある。

次に、ANS-9010にインストールしたLinuxシステムのバックアップをとり、これをJMF602チップ採用のSSDに復元してみました。1ポートのANS-9010への復元は9GBのLinuxシステムをANS-9010へ復元するのに2分少々かかったものが、1ポートのSSD(SP032GBSSD650S25)への復元は4分少々かかりANS-9010より長くかかりましたが、起動後に使用してみて、ブラウジングの高速性は全く同じような体感速度でした。

ブラウジング時やメール作成の際の漢字変換時の引っかかり等は全くなく、体感的にもとても高速でした。Linuxの起動時間も単体のJMF602チップ採用のSSDを用いたにもかかわらず、WindowsのRAID起動並で、BIOS画面終了後、火星の表面のような ubuntu のデスクトップ表示まで15秒で、ネットワークの接続が確立して円形のカーソルが矢印になるまで27秒でした。
1ポートのANS-9010では ubuntu のデスクトップ表示まで12秒で、ネットワークの接続が確立して円形のカーソルが矢印になるまで25秒でした。

goo スピードテストでは、私の環境の場合、自宅サーバーのルーターに複雑な設定とfirewallがあってLANケーブルも30mもあってhubで何度も接続されているため、Windows環境ではFTTHで23Mbpsしか出なかったのですが、Linuxにすると32Mbpsに向上しました。

しかし、他のサイト(ブロードバンド スピードテスト)で計測すると、もっと高速になることがわかりました。gooの回線は込んでいるのか地理的に遠いのか、私の環境では、42Mbps以上は出にくかったので、もっと至適距離で回線混雑度に余裕のあるサイトで計測してみるべきでした。
Windows 98 の場合は「いじくるツール」でRWINを変更して高速化が容易にできたのですが、Windows XP ではこのソフトでRWINの変更ができなくなったので、Windows XP ではRWINは低速のデフォルト設定のまま(MTU=1452, RWIN=64952)で実験を行っていました。(Windows XPでもレジストリのRWIN設定を直接編集してさらに高速にすることは可能(■KEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP => DefaultRcvWindow ■KEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans => Max MTU)ですが、Google先生に聞いてみたら、Dr.TCPというソフトで簡単に変更可能でした。TCP/IP Analyzer

Windows XP でIEを用いた場合に、回線速度が半分に落ちている友人もいました。私の場合には、3種類のブラウザーで計測・比較してみましたが、ブラウザーの種類に関係なく同じOSでは同じ回線速度が出ていました。


今回、Linux ubuntu で実験してみて、OSの違いでこれだけ違うのかととても驚きましたので、以下にその結果をお示しします。(ubuntu のデフォルト設定 MTU=1452 RWIN=5888 のままの計測です。)

@SSD(SP032GBSSD650S25) に Linux ubuntu をインストールした場合:
 ブロードバンドスピードテスト 通信速度測定結果
 http://www.bspeedtest.jp/ v3.0.0
 測定時刻 2009/03/18 16:07:37
 回線種類/線路長/OS:光ファイバ/-/Linux/石川県
 サービス/ISP:Bフレッツ ファミリー100/plala
 サーバ1[N] 74.4Mbps
 サーバ2[S] 64.8Mbps
 下り受信速度: 74Mbps(74.4Mbps,9.30MByte/s)
 上り送信速度: 60Mbps(60.4Mbps,7.5MByte/s)
 診断コメント: Bフレッツ ファミリー100の下り平均速度は30Mbpsなので、あな
 たの速度はかなり速い方です!おめでとうございます。(下位から95-100%tile)


AANS-9010Linux ubuntu をインストールした場合:
 ブロードバンドスピードテスト 通信速度測定結果
 http://www.bspeedtest.jp/ v3.0.0
 測定時刻 2009/03/19 02:50:57
 回線種類/線路長/OS:光ファイバ/-/Linux/石川県
 サービス/ISP:Bフレッツ ファミリー100/plala
 サーバ1[N] 76.2Mbps
 サーバ2[S] 67.9Mbps
 下り受信速度: 76Mbps(76.2Mbps,9.53MByte/s)
 上り送信速度: 61Mbps(61.0Mbps,7.6MByte/s)
 診断コメント: Bフレッツ ファミリー100の下り平均速度は30Mbpsなので、あな
 たの速度はかなり速い方です!おめでとうございます。(下位から95-100%tile)


単体のSSDやANS-9010に Linux ubuntu 8.10 をインストールして、ブロードバンド回線速度を測定してみると、Windows XP では、下りで20〜23Mbps、上りで10〜12Mbps程度だった通信速度が、Linux ubuntu では、SSDとANS-9010で、下りで74〜76Mbps、上りで60M〜61Mbpsと、WinXPの3倍ほどの回線速度となることがわかった。

下記の条件での測定で、RWINが5888しかなくてMSS(MTU-40)の整数倍ではないのに、これほど高速になるとは不思議なものである。(不思議なので後でいろいろと考えてみたが、このサイトではLinuxが自動的に設定した最適RWIN値を正しく表示していないだけかもしれないとも思えた。)
 ≪ SpeedGuide.net TCP Analyzer Results ≫
 Tested on: 03.20.2009 00:01
 IP address: 222.150.xxx.xxx
 Client OS: Linux
   TCP options string: 020405840402080a00000a780000000001030306
 MSS: 1412
 MTU: 1452
 TCP Window: 5888 (NOT multiple of MSS)
 RWIN Scaling: 6 bits (2^6=64)
 Unscaled RWIN : 92
 Recommended RWINs: 64952, 129904, 259808, 519616, 1039232
 BDP limit (200ms): 236kbps (29KBytes/s)
 BDP limit (500ms): 94kbps (12KBytes/s) >
 MTU Discovery: ON
 TTL: 40 >
 Timestamps: ON
 SACKs: ON
 IP ToS: 00000000 (0)


BuffaloBBR-4HG 公称最大スループット98.7Mbps) とPLANEXBRL-04FMX 公称最大スループット91Mbps) の両社の有線ルーターで実験してみましたが、製品の箱に記載されているメーカー公称最大スループット値に差はあるものの、今回の条件下での計測実験結果の実測値自体は両者ともほぼ同様の数値が得られました。(上記@AはPLANEXBRL-04FMXで得られた数値です。)

サイトの閲覧自体はWindowsで標準の下り20〜30Mbpsでも十分高速なのですが(HTMLのサイトならPCの設定が高速なら5Mbpsで十分!)、YouTubeの早見などの場合には、回線速度が高速の方がコンテンツのダウンロード・プログレス・バーが速く表示されて、スキップして閲覧したりする際にも便利でした。
Linux ubuntu 環境で、単体のプチフリSSD 1個での実験で、YouTubeの閲覧中にメールでひらがなから漢字へ変換してメールを送受信してみましたが、スムーズで全くプチフリしませんでした。
プチフリ対策の一つとして Linux を利用することは有効な手段の一つだと思いました。

DELL Vostro 1400 のノートパソコンにも各種SSDMtronOCZSilicon Powerをシステムドライブとして用いて Linux ubuntu をインストールテストしてみました。そのインストール時間やOS起動時間は各リンク先ページの終わりの方に記載しました。いずれの場合も単体のSSDでブロードバンド回線速度は下り・上り共に60Mbps越えが可能で、YouTube の閲覧などもとても軽快でした。

今回の実験では、別のサイトでご紹介した杉原理事長に Linux ubuntu の便利なバージョンやインストールなどについて全面的にご支援いただきました。深謝いたします。
私の所ではNTT西日本の「Bフレッツ ファミリー100」で、プロバイダーは plala ですが、彼の所では、NTT西日本 「フレッツ・光プレミアム ファミリー」でプロバイダーは OCN の環境で、下りで93.6Mbps、上りで94.0Mbps出たそうです。
FTTHスループット 統計データを見ても、ほぼ最速の数値が出ています。

今では7,500円程度のRAIDでもない単体のSSD 1個(消耗がいやならANS-9010)と無料のLinuxをphysical driveとOSとして準備するだけでこんな高速browsing(というよりは高速 YouTubing!)ができるとなると、今までパソコンでいろいろ苦労や試行錯誤して種々の実験してみていたことすべてが無意味で無力感にさいなまれる気がする程で、なんと容易かつ安価に高速browserを手にすることができる時代になったのだろうと感心するほどです。Linux ubuntu のブロードバンド回線速度はすばらしいの一言につきます。


追記1: このサイトは2009年3月18日に最初にuploadし、当時のANS-9010での計測はすべてUbuntu8.10でSATA 3Gbps 1ポートにて行った。その後の2009年10月29日uploadのUbuntu9.10 (Karmic Koala) 以降のalternate install CD (他Ubuntu10.04 LTS (Lucid Lynx) alternate)ではRAID 0の「/ (root)」のpartitionへのインストールが可能となり、ANS-9010をSATA 3Gbps 2ポートとして使いANS-9010の性能を最大限に発揮して利用することが可能となったので、Web site等の表示などはさらに高速化されてとても便利になった。Web閲覧用PCとして現在最も気に入って使っている。
RAID 1の例と同様にRAID 0にすればよい。ただし、試してみればすぐにわかることであるが丁寧に注釈を付ければ、「/boot」はRAID 1、「SWAP」はnon-RAID、「/ 」はRAID 0がよい。ちなみに上記のPC環境で、私は「/boot」は200MB ext3、「SWAP」は100MB swap、「/ 」は max ext4と設定した。)

追記2(Desktop版と同様な設定について):
@Alternate install CDDesktop版(CD)などのようにオートログインさせたい場合は、「システム」→「システム管理」→「ログイン画面の設定」→「ユーザ " " として自動的にログイン」で設定。
AThunderbirdのインストールは、「システム」→「システム管理」→「Synapticパッケージ・マネージャー」→「PW入力」→「Thunderbird選択」→「インストール指定」→「適用」。
B日本語化は、「システム」→「システム管理」→「言語のインストールと削除」→「日本語」→「check box」→「変更を適応」
CJavaのGUI簡易installは、Sun Microsystemsのサイトで→「Verify Java Version」→「プラグインを追加」→「The Java(TM) Plug-in, Java SE 6」→「次へ」→「install」→「PW」→「OK」→「DLJライセンス条項に同意」→「進む」→「閉じる」→「完了」→「Your Java is woking. Latest Java installed.」
Dついでに、「アプリケーション」→「Ubuntuソフトウェアセンター」→「インターネット」→「JD 2ch browser」

追記3(Ramdiskの設定):
@「端末」→「RAMディスクの作成」($sudo mkdir /media/ramdisk)→「RAMディスクをマウント」($sudo mount ?t tmpfs ?o size=800M,nr_inodes=10k,mode=0777 tmpfs /media/ramdisk)→「RAMディスクのサイズ設定」(例 size=1G等)→「RAMディスクの設定を保存」($sudo gedit /etc/fstab でfstabを開き、tmpfs /media/ramdisk tmpfs size=800M,nr_inodes=10k,mode=0777 を追加)。
AFirefoxのキャッシュ移動は、「about:config」→「適当な場所で右クリック」→「新規作成」→「文字列」→「設定名」(browser.cache.disk.parent_directory)→「文字列」(/media/ramdisk) 。