Cisco7200/3600シミュレータ 〜便利なテクニック〜
パソコンの処理負荷を抑える(idlepcオプション)

デフォルトだとCPUの処理負荷は常に100%
ルータ・シミュレータ(Dynamips)を使うと,CPUの負荷率が常に100%になります。
仮想ルーターが10台であろうと1台であろうと,常に100%になってしまいます(下の画面)。
というのもデフォルトでは,仮想ルーターのCPUが使われていなくても,「使われていない」という状態を逐一エミュレートするからです。
「idlepcオプション」を使うと,この「CPU100%問題」を解決することができます。


Dynagen付属のツールを使ってパラメータ値を調べる
まずは,idlepcオプションで指定するパラメータを調べる必要があります。
そのために,ちょっとした作業が必要になります。

最初に,仮想ルーターにログインして,ユーザー・モードに入ります。
ユーザー・モードとは,プロンプトが「>」のモードです。



この状態で,「Ctrl+]」キーを押した後に,「i」キーを押します。
すると,Dynamipsのコンソール画面に「Please wait while gathering statistics...」(統計を収集するまでお待ちください)と表示されます。
しばらくすると,0xで始まる数値がいくつか表示されます。
これらが,idlepcオプションで使われるパラメータ値です。



表示された値のいずれかを,.netファイル中のルーターの記述部分に書き込みます。
表記方法は,「idlepc = パラメータ値」です。
例えば上の場合は,「idlepc = 0x60870000」などとなります。



設定したら,いったんDynamipsを終了して,再び立ち上げます。
そして,iplepcオプションを記述した.netファイルをダブルクリックします。
しばらくはCPU利用率100%が続きますが,いずれかの仮想ルーターがユーザー・モードに入ると100%ではなくなります。
何%くらいに落ち着くかは,PCのスペックによります。
設定しても利用率が100%のままの場合は,ほかの値を設定してみて下さい。
またこの値はIOS固有の値なので,IOSを変えた場合は値を調べ直して再設定して下さい。



※追記(2007/04/14)
Dynamipsバージョン0.2.6-RC4から,コマンドラインによるidlepc値の設定が可能になりました。
Dynagenのコンソールから「idlepc get R1」など入力するといくつか候補値が表示されます。
「*」マークが推奨値なので,*マークが付いている番号を入力すると,idlepc値が反映されます。
また,「idlepc save R1」などとすると,idlepc値のsaveが可能です。

設定例は,以下の「Internetwork Expertのワークブック用の設定ファイルを動かす」を参考にして下さい。
http://ccstudy.org/simurator/config/IEWB2/iewb2.html