Dynamips パフォーマンスの調整 その1

ルータ数台程度のエミュレートであれば特に意識する必要はありませんが、CCIEラボ試験レベルの検証環境を作るときにはパフォーマンスの調整が必要です。主なパフォーマンスの調整について解説します。

Dynagen設定ファイル(.netファイル)のオプション

idlepc

エミュレートするルータに応じて適切なIdlepc値を指定することによって、Dynampisを稼働しているPCのCPU負荷を減少させることができます。

【idlepcの指定】

1. .netファイルを読み込んで、idlepc値を調べるルータのみを起動している状態にします。

dynamips35.png
図 idlepcを指定するルータのみ起動


2. Dynagen上で「idlepc get <ルータ名>」のコマンドを実行します。このコマンドにより、指定するべきidlepc値の候補が表示されます。

dynamips36.png
図 23 idlepc getコマンド

3. idlepc値を指定します。“*”が付いている値が推奨値です。上記の表示であれば、2、4、8のidlepc値が推奨値です。いずれかを選んでEnterキーを押せば該当のルータにidlepc値がセットされます。
“*”が付いている推奨値がない場合は、再び「idlepc get <ルータ名>」のコマンドを実行してください。

※”*”が付いている価が必ずしも最適なidlepc値ではないこともあります。

4. idlepc値をセットすれば、PCのCPU負荷が劇的に低下するはずです。もし、CPU負荷の低下が見られない場合は、別の値を試してください。別の値を試す場合は、Dynagen上で「idlepc show <ルータ名>」コマンドで再びidlepc値の候補を表示して選択します。

5. Dynagen上で「idlepc save <ルータ名>」コマンドで.netファイルの該当ルータの部分にidlepc値を保存することができます。.netファイルにidlepc値を保存すれば、次回以降は指定したidlepc値で起動し、CPU負荷を減少させることができます。

dynamips37.png
図 idlepc saveコマンド

dynamips38.png
図 .netファイル内のidlpc値の記述

6. 同様の手順でエミュレートしているルータのidlepc値を指定します。なお、ルータのモデル、IOS、搭載しているネットワークインタフェースモジュールが同一であれば同じidlepc値が有効です。
ただし、Dynamipsを実行するPCが異なれば適切なidlepc値は異なるので注意してください。

【idlepc値の管理】

.netファイルにidlepc値を保存できます。記述する部分に応じて、idlepc値が適用されるルータの範囲が異なります。ルータのモデルの定義部分にidlepc値を記述すれば、該当モデルのルータに一括で適用されます。ルータの定義部分にidlepc値を記述すれば、該当のルータのみに適用されることになります。
ルータのモデル、IOS、ネットワークインタフェースモジュールを統一して、検証環境を作成しているときは、ルータの定義部分にidlepc値を記述する方が管理しやすくなります。

dynamips39.png
図 ルータのモデル定義部分でのidlepc値の指定

また、Dynagen上で「idlepc set <ルータ名> <idlepc>」コマンドでidlepc値を指定することもできます。

ghostios/sparsemem

.netファイル内でghostios/sparsememオプションを有効化すれば、PCのメモリの消費量を削減することができます。
ghostiosオプションを有効化すると、同じIOSを利用している仮想ルータは共通のIOSイメージを利用するようになるので、PCのメモリ消費量を削減することができます。
sparsememオプションを有効化すると、仮想ルータ用に定義されているメモリ消費量を削減することができます。
これらのオプションは.netファイル内のトップレベルやルータのモデル定義部分で指定します。

dynamips40.png
図 ghostios/sparsememの有効化