En attendant ses nouveaux serveurs, Sun optimise Solaris pour les Xeon 5500 Nehalem
Sun a choisi de n'annoncer ses serveurs Sun Fire à base de puces Xeon 5500 Nehalem que le 14 avril prochain à l'occasion de son événement trimestriel Sun Network. En attendant, le constructeur met en avant les optimisations apportées à Solaris 10 pour tirer parti des capacités uniques des nouvelles puces Intel.
Pourquoi faire la même chose que tout le monde alors que l'on peut faire différent ? – à moins que ce ne soit, pourquoi faire simple lorsque l'on peut faire compliqué ? C'est la question que l'on peut se poser alors que Sun a tout simplement décidé de repousser l'annonce de ses nouveaux serveurs x86 à base de Nehalem au 14 avril prochain pour mettre l'accent sur la nouvelle édition de Solaris x86 optimisée pour les nouvelles puces d'Intel. Cet article ne vous parlera donc pas des caractéristiques des nouveaux serveurs Sun Fire X2270, X4170, X4270 (nom de code Lynx) ou du Sun Fire X4275 (nom de code Hyde). Il n'évoquera pas non plus le cas des lames bi-processeur Xeon 5500 répondant à douce appellation Sun Fire X6270 (et connues sous le nom de code Virgo). Autant de systèmes dont Sun ne dévoilera officiellement les caractéristiques détaillées que le 14 avril. Pas de grand miracles à attendre toutefois. Ces systèmes reprendront les caractéristiques essentielles des actuelles séries Xxx50 avec sans doute un peu plus d'emplacements mémoire, une capacité d'entrée/sorties un peu en hausse et des performances sensiblement dopées du fait des améliorations apportées par les puces Xeon 5500.
On peut se faire une idée des gains du fait de la publication par Sun d'un benchmark du Sun Fire X4270 sous SAP. Ce serveur rack 2U équipé de deux puces Xeon 5570 et de 48 Go de mémoire vive et configuré avec Solaris 10, Oracle et SAP ERP a obtenu un score SAP-SD de http://beta.lemagit.fr/wp-content/uploads/2010/02/dbciemwhbjppa4pswqm3k2w5sa2lmt35.jpg SAPS avec 3700 utilisateurs, un score plus de 10% supérieur à celui d'un Proliant DL380 sous Windows Server 2008 et SQL Server, configuré de façon équivalente).
Selon Sun, les quelque 12% de différence de performances sont largement le fait des optimisations effectuées sur Solaris 10 pour lui permettre de supporter les nouvelles puces d'Intel.
Solaris revu et optimisé pour tirer parti des fonctions spécifiques des Xeon 5500
Côté performances, la gestion NUMA de Solaris a par exemple été revue pour permettre à l'OS de gérer les affinités processeur/mémoire dans les systèmes Nehalem afin, notamment, de limiter les effets de latence mémoire lié à des placements par trop « hasardeux » des données. Sun a également optimisé la gestion du multithreading pour tirer partie des capacités des puces Nehalem et, notamment, de leur implémentation de la technologie SMT (Simultaneous MultiThreading) aussi appelée Hyperthreading par Intel.
Côté gestion d'énergie, Sun a notamment travaillé sur le Dispatcher de Solaris pour lui permettre d'optimiser les performances des applications tout en minimisant la consommation électrique. Ce que le constructeur appelle le « Power Aware Dispatcher » est en fait un outil d'allocation de tâches qui est au fait de l'état d'activité des différents éléments du processeur et peut allouer les tâches de façon à, par exemple, ne pas réveiller un coeur en sommeil... Le tout se fait de façon très granulaire.
Les puces Xeon "Nehalem" disposent en effet d'un arsenal impressionnant de technologies d'optimisation de la consommation. Elles peuvent ajuster leur fréquence de fonctionnement en fonction de la charge, mettre en veille certains de leurs coeurs et si nécessaires doper la fréquence d'un ou plusieurs coeur au dessus de la fréquence maximale spécifiée de la puce (mode dit Turbo-Boost) au prix de la mise en veille des coeurs inactifs. C'est l'optimisation de la gestion de ces multiples états et en fonction des tâches à réaliser que le Power-Aware Dispatcher de Solaris permet de réaliser (il est à noter qu'AMD et Sun ont réalisé des travaux similaires pour les puces Opteron). Sur le sujet de la consommation, Intel et Sun ont aussi collaboré pour porter l'outil PowerTop d'Intel sur Solaris. Ce dernier a été interfacé avec Dtrace et fournit une vue détaillée de l'impact de chaque application sur la consommation du système.
Sun a également optimisé la gestion du boot sur les puces Nehalem de façon à minimiser le temps de redémarrage sur les plates-formes équipées des nouvelles puces. Enfin l'éditeur a optimisé ses outils de développement Solaris afin, notamment, de simplifier le travail des développeurs en matière de micro-vectorisation et de parallèlisation de leur code.
En savoir plus:
Un livre blanc sur les optimisations réalisées par Sun sur Solaris pour les Xeon 5500 « Nehalem »