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

プロセスの分散化

1つのDynamipsプロセスでたくさんの仮想ルータを稼働させると、適切なidlepc値を指定していてもCPU負荷が高くなり、設定のレスポンスが悪くなります。また、シリアルインタフェースがフラッピングしたり、EIGRPネイバーがフラッピングするなどの影響が出てきます。
そのような場合、複数のDynamipsプロセスを起動して、仮想ルータを複数のプロセスに分散して稼働させると、CPU負荷を低下させることができます。

dynamips41.png
図 複数のDynamipsプロセス

※ 経験上、1つのプロセスでは仮想ルータは4台程度までにしておいた方がよいです。
※ 1プロセスにつき仮想ルータ1台にすれば、最もCPU負荷を低下させることができます。ただし、メモリの消費量が増えます。

Dynamipsプロセス起動コマンドの編集

複数のDynamipsプロセスを起動するためには、Dynamipsプロセス起動コマンドを編集します。Dynampisプロセス起動コマンドはC:\Program Files\Dynamips\ dynamips-start.cmd です。インストールしたときにデスクトップに作成されるショートカット「Dynamips Server」のリンク先です。
dynamips-start.cmdをテキストエディタで編集します。dynamips-start.cmdの下記の部分は、Localport 7200でDynamipsプロセスを起動することを表しています。

start /belownormal "Dynamips"  cmd /c ""%dynamips%" -H 7200 & pause"

この行を必要なDynamipsプロセスの数分だけコピー&ペースとして、Localportの部分を変更します。以下の例は2つのDynamipsプロセスを起動するものです。

dynamips42.png
図 Dynamipsプロセス起動コマンドの編集例

このように編集したDynamipsプロセス起動コマンドを実行すると、Dynamipsプロセスのウィンドウが複数出るようになります。

.netファイルの記述

.netファイルで仮想ルータを定義するときに、複数のDynamipsプロセスに分散して記述します。次の図は、4台の仮想ルータを2台ずつ2つのDynamipsプロセスに分散させている.netファイルの概要です。

dynamips43.png
図 複数プロセスの.netファイル例

[localhost:7200]の部分が1つ目のDynamipsプロセスで稼働させる仮想ルータです。C3640でR1とR2の仮想ルータを定義しています。同様に、[localhost:7201]の部分が2つ目のDynamipsプロセスで稼働させる仮想ルータです。C3640でR3とR4の仮想ルータを定義しています。仮想ルータの定義部分の詳細な記述は省略していますが、この部分はこれまで解説している内容の通りです。

また、複数プロセスを利用するときには、この例にあるようにプロセスごとにUDPポート番号の指定も必要になるので注意してください。