Neuerungen im Betriebssystem Solaris 10

Verbesserung der Systemleistung

In Solaris 10 8/07 wurden die folgenden Leistungsmerkmale und Verbesserungen für die Systemverwaltung implementiert.

SPARC: Leistungszählerdaten für die UltraSPARC-T2 (Niagara) II PCI Express-Schnittstelle

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:

Dabei ist # eine Instanznummer.

Dieser integrierte Leistungszähler ist hauptsächlich für Mitarbeiter des Sun-Kundendienstes vorgesehen.

Unterstützung für Hashed Cache Index Mode

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.

Optimierung der mehrstufigen CMT-Ablaufplanung

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.

Skalierbarkeit der Prozessanzahl

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:

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-Erweitung für gemeinsamen Speicher

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.