Nouveautés de Solaris 10

Performances système

Les améliorations et fonctionnalités de performances système suivantes ont été ajoutées à la version Solaris 10 8/07.

SPARC : données de compteur de performances pour les unités d'interface PCI Express des systèmes UltraSPARC T2

Les unités d'interface PCI (PIU, PCI Express Interface Units) des systèmes UltraSPARC T2 présentent des compteurs de performances intégrés qui peuvent être vidés à l'aide de busstat. La sortie de la commande busstat -l affiche les périphériques suivants pour de tels systèmes :

où # correspond à un numéro d'instance.

Ce compteur de performances intégré est conçu essentiellement à l'intention du personnel de service clientèle de Sun.

Prise en charge du mode Hashed Cache Index

Le mode Hashed Cache Index est une nouvelle fonctionnalité matérielle disponible dans les processeurs UltraSPARC T2. Le matériel utilise de nombreuses autres bits d'adresse pour calculer un index de cache L2. Par conséquent, il existe plus de couleurs de page pour les grandes pages.

Pour optimiser les performances, le noyau Solaris peut maximiser le nombre de couleurs de page utilisées par tous les threads partageant un cache. Le sous-système de mémoire virtuelle Solaris a été étendu pour prendre en charge cette nouvelle fonctionnalité matérielle. Le calcul des couleurs adéquates améliore les performances et la cohérence du traitement des programmes d'application sur systèmes UltraSPARC T2.

Optimisations de programmation CMT multiniveau

La fonction d'optimisations de programmation CMT (Chip Multithreading Technology, technologie de multithreading à puce) multiniveau fournit au noyau Solaris un mécanisme de plate-forme indépendant. Ce mécanisme permet la détection et l'optimisation de diverses relations de partage matériel adéquates pour les performances, qui existent entre les CPU sur les architectures de processeur CMT nouvelles et existantes, notamment Niagara II.

Cette fonction améliore également le dispatcheur ou l'ordonnanceur de thread du noyau à l'aide d'une politique d'équilibrage de charge CMT multiniveau qui exploite les performances système sur divers systèmes processeur à unités d'exécution multiples, à plusieurs noyaux ou à plusieurs sockets.

Pour de plus amples informations sur cette fonction, reportez-vous au site Web de la communauté de performances OpenSolaris à l'adresse http://www.opensolaris.org/os/community/performance.

Évolutivité de la fonction de comptage de processus

Cette fonction améliore l'évolutivité du comptage des processus du SE Solaris. Actuellement, tous les systèmes UltraSPARC gèrent un maximum de 8 192 contextes. Lorsque le nombre de processus dépasse 8 192, le noyau s'approprie le contexte pour maintenir les processus en service. L'appropriation d'un contexte à partir d'un processus implique les tâches suivantes :

Cette procédure est d'autant plus coûteuse que le nombre de processus est élevé (notamment lorsqu'il dépasse 8 Ko). L'évolutivité du comptage de processus a permis de redéfinir complètement la gestion du contexte. Les contextes sont gérés non pas de façon globale, mais par MMU. Le vidage TLB est ainsi plus efficace et la gestion du contexte offre des possibilités d'évolution beaucoup plus intéressantes.

L'évolutivité du comptage de processus améliore également le rendement des charges de travail constituées de processus actifs dépassant 8 Ko ou ayant pour effet de créer et de détruire des processus à haut débit. Elle est plus avantageuse pour les systèmes dotés de nombreuses CPU.

MPSS étendu à la mémoire partagée

Grâce à la fonction MPSS (Multiple Page Size Support, prise en charge de plusieurs tailles de page) pour mémoire partagée, les grandes pages sont prises en charge pour le mappage de mémoire partagée et une politique OOB (Out-Of-Box, prêt à l'emploi) est à votre disposition afin d'utiliser de grandes pages pour la mémoire partagée. La prise en charge MPSS est destinée aux mémoires partagées créées à l'aide de la commande mmap(1) de /dev/zero ou à l'aide de l'indicateur MAP_ANON, ainsi qu'aux mémoires partagées System V. Grâce à cette fonction, il est également possible de modifier la taille de page de ces segments de mémoire partagée à l'aide de la commande memcntl(2).

En outre, la prise en charge MPSS a été étendue afin de permettre l'utilisation de grandes pages lorsque la mémoire est créée à l'aide de commande mmap(1), mmap(MAP_PRIVATE) de /dev/zero.