Dynamips パフォーマンスの調整 その2
プロセスの分散化
1つのDynamipsプロセスでたくさんの仮想ルータを稼働させると、適切なidlepc値を指定していてもCPU負荷が高くなり、設定のレスポンスが悪くなります。また、シリアルインタフェースがフラッピングしたり、EIGRPネイバーがフラッピングするなどの影響が出てきます。
そのような場合、複数のDynamipsプロセスを起動して、仮想ルータを複数のプロセスに分散して稼働させると、CPU負荷を低下させることができます。
※ 経験上、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プロセスを起動するものです。
このように編集したDynamipsプロセス起動コマンドを実行すると、Dynamipsプロセスのウィンドウが複数出るようになります。
.netファイルの記述
.netファイルで仮想ルータを定義するときに、複数のDynamipsプロセスに分散して記述します。次の図は、4台の仮想ルータを2台ずつ2つのDynamipsプロセスに分散させている.netファイルの概要です。
[localhost:7200]の部分が1つ目のDynamipsプロセスで稼働させる仮想ルータです。C3640でR1とR2の仮想ルータを定義しています。同様に、[localhost:7201]の部分が2つ目のDynamipsプロセスで稼働させる仮想ルータです。C3640でR3とR4の仮想ルータを定義しています。仮想ルータの定義部分の詳細な記述は省略していますが、この部分はこれまで解説している内容の通りです。
また、複数プロセスを利用するときには、この例にあるようにプロセスごとにUDPポート番号の指定も必要になるので注意してください。