Les systèmes d’exploitations modernes permettent de modifier la mémoire installée et le nombre de processeurs. L’opération est simple pour l’ajout, c’est une autre histoire pour la suppression car il faut au préalable libérer des ressources. Les systèmes Windows ne permettent d’ailleurs pas la suppression. Les systèmes Linux et BSD permettent les deux sens depuis le départ.
Ce genre d’opération est générallement effectuée sur des machines virtuelles, il suffit alors de modifier le paramétrage « au vol » dans le gestionnairecorrespondant. Pour le faire sur une machine physique, la carte-mère doit être prévue pour les modifications à chaud, ce qui implique des modèles chers et peu courants, le tout pour une opération pas bien utile sur des machines physiques, alors qu’en virtuel c’est pratique pour effectuer des arbitrages, des tests, ou des montées en charge.
Mémoire
Les systèmes Linux gèrent correctement l’ajout/suppression de mémoire depuis 2007.
Pour Windows ce sont uniquement les versions serveur depuis l’année 2008 (donc pas Windows 10 par exemple) et uniquement en ajout. Windows 2003 le gère sur le papier (éditions Enterprise et Datacenter) mais dans la réalité il y a pas mal de problèmes, il est fortement conseillé de le faire machine éteinte. On a en outre des instabilités avec d’anciennes versions de Microsoft Exchange et SQL Server. En résumé : avec d’anciennes versions de produits Microsoft, il est plus simple et fiable de le faire machine éteinte.
Sous Linux on peut vérifier la bonne prise en compte de toute la mémoire avec : for F in « /sys/devices/system/memory/memory »* ; do echo -n « $F : « ; cat « $F/state »; done
Si une des lignes n’est pas online alors il faut l’activer avec echo online > « /sys/devices/system/memory/memoryXX/state » (remplacer XX par la bonne valeur).
Processeur
Linux gère bien l’ajout de processeur depuis 2006. N’ayant pas testé la suppression, nous ne savons pas dire si cela fonctionne correctement.
Pour les systèmes Microsoft c’est géré encore une fois uniquement sur les versions serveur depuis 2008 (Windows 2008 Datacenter, puis Windows 2008 R2 Datacenter), et uniquement en 64 bits. Windows 2012 et 2012 R2 le gère pour les versions Standard et Datacenter, idem pour 2016 (donc pas Foundation et Essentials).
Sous Linux on peut vérifier la prise en compte des processeurs (ou cœurs de processeur, c’est géré de la même manière) via :
for F in « /sys/devices/system/cpu/cpu* »; do echo -n « $F : « ; cat « $F/online »; done
note : le premier processeur n’est pas désactivable, il n’a pas le paramètre online, ce qui évite de se tirer une balle dans le pieds dans certaines situations.
Pour activer/désactiver un processeur, il suffit d’envoyer 0 (désactiver) ou 1 (activer) dans le paramètre online : echo 0 > /sys/devices/system/cpu/cpu1/online