In Solaris 10 8/07 wurden die folgenden Leistungsmerkmale und Verbesserungen für die Systemverwaltung implementiert.
PCI Express Interface Units (PIU) für UltraSPARC-T2 (Niagara) 2-Systeme verfügen über integrierte Leistungszähler, die mit busstat ausgegeben werden können. Die Ausgabe des Befehls busstat -l enthält für derartige Systeme die folgenden Geräte:
imu#
mmu#
peu#
bterr#
Dabei ist # eine Instanznummer.
Dieser integrierte Leistungszähler ist hauptsächlich für Mitarbeiter des Sun-Kundendienstes vorgesehen.
Hashed Cache Index Mode ist ein neues Hardware-Leistungsmerkmal von UltraSPARC T2-Prozessoren. Die Hardware verwendet zur Berechnung eines L2-Cache-Index sehr viel mehr Adressbits. Deswegen sind für große Seiten mehr Farben verfügbar.
Zum Erzielen einer optimalen Leistung muss das Solaris-Kernel die Anzahl der Seitenfarben maximieren, die von allen Threads verwendet werden, die sich einen Cache teilen. Das Solaris-Subsystem für den virtuellen Speicher wurde entsprechend erweitert, damit dieses neue Hardware-Leistungsmerkmal unterstützt wird. Eine ordnungsgemäße Farbberechnung verbessert die Leistung sowie die Durchsatzkonsistenz von Anwendungsprogrammen auf UltraSPARC T2-Systemen.
Durch die Optimierung der mehrstufigen CMT-Ablaufplanung (CMT, Chip Multi-Threaded) wird der Solaris-Kernel mit einem plattformunabhängigen Mechanismus ausgestattet. Mit diesem Mechanismus können verschiedene leistungsrelevante Hardware-Sharing-Beziehungen erkannt und optimiert werden, die zwischen den CPUs aktueller und zukünftiger CMT-Prozesserarchitekturen bestehen, einschließlich Niagara II.
Mit diesem Leistungsmerkmal wird auch der Thread-Scheduler oder -Verteiler des Kernel durch eine mehrstufige CMT-Richtlinie zum Lastausgleich verbessert, von der die Leistung verschiedener Systeme mit Multi-Thread-, Multi-Core- und Multi-Socket-Prozessor profitiert.
Weitere Informationen zu diesem Leistungsmerkmal finden Sie auf der OpenSolaris Performance Community-Website unter http://www.opensolaris.org/os/community/performance.
Mit diesem Leistungsmerkmal wird die Skalierbarkeit der Prozessanzahl im Betriebssystem Solaris verbessert. Alle UltraSPARC-Systeme unterstützen derzeit maximal 8192 Kontexte. Wenn die Anzahl der Prozesse den Wert 8192 überschreitet, "stielt" der Kernel Kontexte, um die Prozesse am Laufen zu halten. Das Stehlen eines Kontextes von einem Prozess beinhaltet die folgenden Aufgaben:
Cross-Calling aller CPUs, auf denen der Prozess läuft
Annullieren des Kontexts für CPUs, die Threads des Prozesses verarbeiten
Löschen des Kontextes von den TLBs aller CPUs, die Threads des Prozesses verarbeiten
Dieses Verfahren ist sehr rechnerintensiv und wird deutlich erschwert, wenn die Anzahl der Prozesse 8 K übersteigt. Die Kontextverwaltung wird durch die Skalierbarkeit der Prozessanzahl vollständig remodelliert. Kontexte werden nicht global, sondern nach Speicherverwaltungseinheit (MMU) verwaltet, wodurch eine effiziente Löschung der TLBs gewährleistet und die Skalierbarkeit der Kontextverwaltung deutlich verbessert wird.
Die Skalierbarkeit der Prozessanzahl verbessert zudem den Durchsatz für Vorgänge, die mehr als 8 K aktive Prozesse umfassen oder Prozesse mit einer hohen Geschwindigkeit erstellen bzw. zerstören und erzielt auf Systemen mit vielen CPUs den größten Nutzen.
MPSS-Unterstützung (MPSS, Multiple Page Size Support) für gemeinsamen Speicher (Shared Memory) bietet beim Shared Memory Mapping zusätzliche Unterstützung für die Nutzung großer Speicherseiten und stellt eine OOB-Richtlinie (OOB, Out-of-Box) für die Verwendung großer Shared Memory-Speicherseiten bereit. Die MPSS-Unterstützung ist für gemeinsamen Speicher vorgesehen, der mit mmap(1) von /dev/zero oder mit dem Flag MAP_ANON erstellt wurde sowie für gemeinsamen Speicher von System V. Dank dieses Leistungsmerkmals kann die Speicherseitengröße dieser Shared Memory-Segmente mit memcntl(2) geändert werden.
MPSS-Unterstützung wurde auch für die Verwendung großer Speicherseiten für Speicher erweitert, der mit mmap(1), mmap(MAP_PRIVATE ) von /dev/zero erstellt wurde.