*盆栽マシンの記録 [#jd4f39cd]
ロースペックマシンをあれこれとチューニングして
それなりに動作するように手を加えることを自分の中では盆栽と
呼んでいるのだが、
何台かあるマシンのうち
典型的な盆栽について紹介したいと思う((この kaw.ath.cx も結構な盆栽だったりするが))。
**概要 [#i3e7a80e]
このマシンは、勤務先の人から個人的に譲り受けたPC本体に、
手持ちの周辺機器の実装、取付治具などの自作を行い作成した。
スペックは以下の通り;
|ベースシステム|IBM Aptiva 330|
|CPU           |Intel 486DX4 / 100MHz|
|メモリ        |24MB|
|ハードディスク|IDE×4式: 425MB, 700MB, 800MB, 3GB|
|I/Oバス       |ISAバス: スロット×4|
|ネットワーク  |NE2000互換×2式: 10BASE-5, 10BASE-5, 10BASE-T|
|シリアルポート|RS-232C×4チャンネル|
|パラレルポート|1チャンネル|
|フロッピーディスク|3.5インチ×1|
**外形 [#x0cb8db4]
#ref(All.jpg,wrap,around,33%)
本体はIBMのAptiva 330がベース。
ディスプレイは、モノクロ9インチCRTを接続。~
OSには、Unix系のOpenBSDをインストールしている。
このマシンは実装メモリが24MBと少ないため、X Windowはインストールしておらず、
本機単体でのグラフィックや日本語の表示はできない。ASCIIのみ表示可。
#img(,clear)
**ペリフェラル [#d45214b7]
I/OバスはISAのみ((まだPCIどころかEISAも出ていなかった))。
よってIRQの割当は全て手動設定である。~
|CENTER:&ref(IO_IntrNear.jpg,,25%);|
|CENTER:IRQ割当表 - ほぼ全てが割当済|
I/Oスロットは全部で4つある。
|CENTER:&ref(Inner_Back.jpg,,25%);|CENTER:&ref(IO_SlotMidium.jpg,,25%);|
|CENTER:I/Oスロット実装状況|CENTER:I/Oスロット使用状況|
4スロットのうち、2スロットにEthernetカードを実装。
どちらもNE2000互換カードで10BASE-2, 10BASE-Tに
対応((うち、1枚は、10BASE-5用のAUIポートも実装))。~
残り2スロットには、マルチI/Oカードを実装。
このカード中、シリアルポート2チャンネルを
使用(パラレルおよびゲームポートは、割り当てるIRQがないため、未使用)。
本体の2チャンネルと併せ、計4回線を接続可。
**ストレージ [#w41acf3e]
ハードディスクは4式を実装。~
本来、実装できる台数は2式(wd0, wd1)までだが、CD-ROMを取り外し、
空スペースにwd2を増設(前面にはブランクパネルを取付)。~
さらに3.5インチフロッピーディスクドライブ下に吊り下げる形で
自作HDDベイを設置し、wd3を増設。
|CENTER:&ref(Disk_BP.jpg,,25%);|CENTER:&ref(Inner_Front.jpg,,25%);|
|CENTER:前面ブランクパネル|CENTER:ブランクパネルの内部|
|CENTER:&ref(Disk_Stack13.jpg,,25%);|CENTER:&ref(Disk_ExtBayFar.jpg,,25%);|
|CENTER:wd0~wd2取付状況|CENTER:wd3増設状況|
これにより、IDEインターフェースのチャンネルは全て埋まっているため、
現時点で最大限の実装状態となっている。
**ソフトウェア [#q14b8734]
#ref(OS_Login.jpg,wrap,around,right,33%)
使用OS: OpenBSD 3.0 (2001年) ~ OpenBSD 4.3 (2008年現在)

実装メモリ量が小さいため、OSカーネルは不必要な機能を削った
カスタムカーネルを作成し使用している。~
このカーネル起動時のdmesgはこちら→ &ref(dmesg.boot.txt); 。~
ログインしてオペレーションを行った例はこちら→ &ref(typescript-hsv.txt); 。

このマシンにはOpenBSD本体以外に、以下のようなソフトウェアが追加導入されている;~
bzip2 (ファイル圧縮),
DeleGate (プロキシサーバ),
dmassage (カーネル作成支援ツール),
GNUPLOT (グラフ描画ソフト),
ircd (IRCデーモン),
Kermit (シリアル通信/ファイル転送),
NetPBM (画像ファイル加工・変換ユティリティ),
ng (日本語Micro GNU Emacsテキストエディタ),
PHP-4 (スクリプト言語),
APC (PHPアクセラレータ),
screen (スクリーンマネージャ),
Ruby (オブジェクト指向スクリプト言語),
QuickML (メーリングリストドライバ),
smtpfeed (高速メール配送エージェント)

このマシンは当初、外向けゲートウェイの予備機として運用されていたため、
追加インストールされたソフトウェアには、ネットワーク関連のものが多い。
#img(,clear)
このマシンの動作速度の実測を行った結果を以下に示す。~
測定対象として、セキュリティスキャナである[[chkrootkit-0.48>http://www.chkrootkit.org/]]を
用い、そのコンパイル、及びchkrootkit自身の実行時間を測定した。
|CENTER:CPU|CENTER:メモリ|>|>|CENTER:コンパイル所要時間 (秒)|>|>|CENTER:実行時間 (秒)|
|~|~|実時間|ユーザ|システム|実時間|ユーザ|システム|
|''486DX4 100MHz (盆栽)''|RIGHT:24MB|RIGHT:70.88|RIGHT:32.87|RIGHT:19.85|RIGHT:219.93|RIGHT:57.74|RIGHT:130.87|
|Pentium/MMX 200MHz|RIGHT:64MB|RIGHT:13.02|RIGHT:4.56|RIGHT:2.53|RIGHT:45.58|RIGHT:11.75|RIGHT:18.94|
|Pentium-III 540MHz|RIGHT:192MB|RIGHT:2.25|RIGHT:1.14|RIGHT:0.67|RIGHT:8.88|RIGHT:2.71|RIGHT:5.49|
|Core2 4300 1800MHz|RIGHT:1024MB|RIGHT:0.41|RIGHT:0.21|RIGHT:0.18|RIGHT:2.00|RIGHT:0.85|RIGHT:1.78|
以上の結果から、この「盆栽マシン」は、概ね
2007~2008年頃の標準的な性能を持つマシンの1/50~1/200程度の処理能力であることがわかる。
**「盆栽」の意義 [#n33a65d6]
今まで見てきたように、このマシンは「今時の」マシンとは
比べものにならない程非力な処理能力しか持たない。

特に、メモリが非常に少ないため、現在デスクトップ環境で使われているような
高機能なアプリケーションを使うことはほとんど不可能と思われる。
また、サーバとしての用途を考えても、高速なネットワーク通信や
大容量のデータ処理なども困難と思われ、ごく軽いサービスを提供することが
運用可能な範囲だろう。

それでも、このような「盆栽」には幾つかの存在意義があると考えている。

まず考えられるのが、スケラビリティに関連する技術の修得である。~
このような非力なマシンであると、運用中すぐに性能の限界に達してしまう。
そのため、運用が正常に行われるためには、システムの動作を基本から理解し、
それをパフォーマンスを向上させるための具体的な技術が求められる。~
実際、管理者が意図せずとも、ハイスペックなマシンを余裕をもって
運用している場合に比べ、そのようなスキルが身に付きやすい。~
また、マシンに対して過大な負荷がかかった場合の挙動なども容易に体験できるため、
実運用に用いられるようなハイスペックマシンを管理する場合も、
「盆栽」を使用した経験から敷衍し、あるスペックが
どの程度までスケールするか、そしてスケールしなかった場合に
どのようになるかを予測できやすくなると思われる。

次に挙げられるが、テスト・リサーチ環境としての有用性である。~
盆栽には、標準構成を超えるハードウェアが装備されており、
それを用いての試験や実験を行うことができる。

最後に、ハードウェアとソフトウェアのそれぞれの技術を連携させて
修得できることも利点として挙げたい。

Front page   New Page list Search Recent changes   Help   RSS of recent changes