Novedades de Solaris 10

Mejoras en el rendimiento del sistema

Las siguientes funciones y mejoras del rendimiento del sistema se han agregado a la versión Solaris 10 8/07.

SPARC: Datos de contador de rendimiento de la unidad de interfaz PCI Express de UltraSPARC-T2

Las unidades de interfaz PCI Express de los sistemas UltraSPARC-T2 tienen contadores integrados que se pueden volcar utilizando busstat. El resultado del comando busstat -l muestra los siguientes dispositivos para estos sistemas:

donde # es un número de instancia.

El uso de este contador de rendimiento integrado está destinado principalmente al personal de servicio de Sun.

Compatibilidad con el modo Hashed Cache Index

El modo Hashed Cache Index es una nueva función de hardware disponible en procesadores UltraSPARC T2. El hardware utiliza muchos más bits de dirección para computar un índice de caché L2. Por ese motivo, hay más colores de página en las páginas grandes.

Para alcanzar un rendimiento óptimo, el kernel de Solaris debe maximizar el número de colores de página utilizados por todos los subprocesos que comparten caché. El subsistema de memoria virtual de Solaris se ha ampliado para incorporar la compatibilidad con esta función de hardware. El correcto cálculo de color mejora el rendimiento y la coherencia de análisis de los programas de aplicación en sistemas UltraSPARC T2.

Optimizaciones de la planificación CMT de varios niveles

La función de optimizaciones de la planificación CMT (Chip Multi-Threaded) de varios niveles proporciona al núcleo de Solaris un mecanismo independiente de la plataforma. Este mecanismo permite descubrir y optimizar varias relaciones de uso compartido de hardware relevantes para el rendimiento entre las CPU de las arquitecturas de procesador CMT actuales y futuras, incluida Niagara II.

Esta función también mejora el distribuidor o planificador de subprocesos del núcleo con una política que equilibrio de carga CMT de varios niveles que mejora el rendimiento del sistema en varios sistemas de procesador de diferentes sockets, núcleos y subprocesos.

Para obtener más información sobre esta función, consulte la página web de OpenSolaris http://www.opensolaris.org/os/community/performance.

Escalabilidad del número de procesos

La función de escalabilidad del número de procesos mejora la escalabilidad del número de procesos del sistema operativo Solaris. Actualmente, todos los sistemas UltraSPARC admiten un máximo de 8.192 contextos. Cuando el número de procesos supera los 8.192, el núcleo se apropia de contextos para que los procesos puedan seguir ejecutándose. Para apropiarse del contexto de un proceso, es necesario llevar a cabo las tareas siguientes:

Este procedimiento resulta caro y empeora si el número de procesos supera los 8.000. La función de escalabilidad del número de procesos rediseña por completo la administración de contextos. Los contextos se administran por MMU en lugar de hacerlo de forma global, lo que permite un vaciado del contexto de TLB eficaz y mejora notablemente la escalabilidad de la administración de contextos.

La función de escalabilidad del número de procesos también mejora el rendimiento de las cargas de trabajo compuestas por más de 8.000 procesos activos o que crean y destruyen procesos con un número superior, y es más útil en los sistemas con múltiples CPU.

MPSS ampliada para memoria compartida

La admisión de múltiples tamaños de página (Multiple Page Size Support o MPSS) para la función de memoria compartida admite páginas de gran tamaño para asignar memoria compartida y proporciona una política de configuración rápida para el uso de páginas de gran tamaño para memoria compartida. La admisión de MPSS está destinada a la memoria compartida creada por mmap(1) de /dev/zero o con el indicador MAP_ANON, y a la memoria compartida de System V. Esta función también incluye compatibilidad para memcntl(2) cambiando el tamaño de página de estos segmentos de memoria compartida.

La admisión de MPSS también se amplía para el uso de páginas de gran tamaño para memoria creada por mmap(1), mmap(MAP_PRIVATE ) de /dev/zero.