Optimisez les performances de Dynamips
by Alex on Oct.05, 2007, under Cisco, Emulation, Linux
Par défaut, Dynamips va prendre toutes vos ressources CPU lorsqu’il émule un ou plusieurs routeurs, un peu gênant quand vous faites plusieurs choses à côté et encore plus quand vous émulez 8 routeurs
Comment faire pour ajuster les besoins de dynamips autant en CPU qu’en RAM ?
A travers 3 paramètres à placer dans votre fichier de topologie, nous allons pouvoir executer dynamips tout en gardant des performances plus qu’acceptable.
1. Ghostios
On crée un fichier de topologie permettant de nous entrainer sur un lab avec 3 routeurs. Chaque routeur chargeant un IOS de compressé de 30 Mo, une fois le routeur allumé, il va décompresser l’image et la charger en RAM, on a alors dans ce cas 80 Mo occupé en RAM.
Chaque routeur faisant pareil, on va avoir dans ces 3×80 Mo en RAM, soit 180 Mo en moins ^^
La petite astuce consiste à utiliser le paramètre :
ghostios = true
En utilisant ce paramètres , vos 3 routeurs vont se partager la même image IOS , faisant ainsi une économie dans l’utilisation de votre RAM
Ce paramètre est à placer en haut de votre fichier de topologie sur vous souhaitez que les divers séries de routeur que vous émuler en profite, sinon à placer dans la série de routeurs que vous souhaitez.
Tous les routeurs de votre fichier de topologie en profiteront
ghostios = true [localhost] ...
tout les routeurs de la série émuler par l’ID 3660 en profiterons
[[3660]] ghostios = true
2. Sparsemem
Lorque vous définissez votre type de router à émuler, vous lui donner une certaine quantité de ram à travers l’intermédiaire du paramètre :
ram = 128
Vous allumez alors votre routeur, et la Linux va directement attribué 128 Mo de RAM à dynamips pour l’émulation de votre routeur.
Le paramètre sparsmem va nous permettre d’allouer dynamiquement la RAM au routeur en fonction de ses besoins et non pas de lui donner directement 128 Mo alors qu’il n’en a pas forcément le besoin.
Ce paramètre est à utiliser comme le précèdent.
sparsmem = true
3. Idle Pc
Comme nous l’avons vu avec la RAM, Dynamips va agir pareil au niveau de votre CPU, une fois connecté à l’un de vos routeurs émulé, il va prendre 100 % de votre processeur.
Une façon de contrer ce petit souci est d’attribuer ce qu’on appelle des valeurs idlepc à votre instance de router. Cela va permettre de déterminer quand votre routeur n’a pas besoin de ressources CPU, c’est à dire quand il est inactif.
Pour cela connecter vous à votre routeur par la commande
=>telnet R1
depuis votre interface dynagen. Attendez que le routeur ait démarrer, retournez dans la console dynagen et taper la commande suivante :
=>idlepc get R1
Attendez quelques secondes et vous voyez apparaîtres alors une liste de valeurs hexadécimales du type 0×9a3b9984
avec devant certaines une étoile [ * ] , dynagen vous demande alors qu’elle est la valeur à appliquer , taper alors le chiffre de celle qui possède une étoile devant et appuyez sur [entrer].
Soit vous avez un ptit “widget” qui vous montre votre charge CPU et dans ce cas vous l’avez vu tomber considérablement ou alors dans un autre cas , le ventilo de votre pc ( si c’est un pc portable ) crache beaucoup moins
cette manipulation est à répéter pour tous vos routeurs
Ensuite sauvegarder cette valeur dans votre fichier de configuration grâce à :
=>idlepc save R1
Vous voilà parti pour faire des toplogies d’un nombre supérieur au premier nombre premier différent de l’unité ![]()
April 30th, 2008 on 4:31 pm
Bon travail, cela fonctionne.
J’ajouterai une chose. La valeur idlepc configurée se trouve dans C:\Documents and Settings\{nom d’utilisateur}\dynagenidledb.ini
Ainsi si vous n’êtes pas satisfait par la valeur courante d’idlepc vous pouvez supprimer le fichier et relancer idlepc get {nom-routeur}.
ciao.