Saturation CPU de Dom0 XenServer dans un environnement XenDesktop
Dans le cadre de mise en place d'une infrastructure XenDesktop entièrement virtuel (DDC, PVS et les VD dans du XenServer), le démarrage d'un DesktopPool risque vite de saturé le CPU du Dom0 du serveur XenServer hébergeant les bureaux virtuels.
En effet, lors du démarrage d'un bureau virtuel, la carte réseau (utilisé pour le PXE) est émulé jusqu'à ce que l'OS du VD soit complétement chargé avec les XenTools. Cette carté émulé vient prendre entre 8 et 12% du processeur de Dom0 du XenServer. On voit donc que si on démarre plus de 10 VD, le Dom0 sature complétement et donc le réseau virtuel ne répond plus correctement donc les vDisks ne peuvent être chargés, les VD restent en erreur de démarrage et on risque carrément de boucler et de saturer complétement le serveur XenServer (Cf. capture ci-dessous).
Dans la capture suivante, on a l'exemple de la consommation CPU d'un XenServer démarrant 41 Virtual Desktops : le CPU0 consomme 100% pendant presque 10 min. Quelques VD ne sont pas correctement démarrés.
Le contournement de ce Pb. est d'ajouter un processeur à Dom0, mais cette solution n'est pas supportée par Citrix.
Pour cela éditer le fichier /etc/init.d/unplug-vcpus et d'ajouter les ligne en gras comme dans l'exemple ci-dessous:
for i in ${CPUS}; do
cpu=$(basename $i)
if [ "${cpu}" != "cpu0" ]; then
if [ "${cpu}" != "cpu1" ]; then
if [ $(cat $i/online) -ne 0 ]; then
echo 0 > $i/online && echo -n "${cpu} "
fi
fi
fi
done
Et enfin redémarré le serveur XenServer pour que la modification soit prise ne compte.
Et dans la dernière capture , on a le résultat de la consommation CPU d'un XenServer démarrant 48 Virtual Desktops: les CPUs de Dom0 consomme 100% pendant 2min par lot de 20 VD. Tous les VD sont correctement démarrés.





