Engineered to Work Together: Oracle Datenbank 12c und Oracle Solaris

Das Oracle Solaris Web Forum vom 7. August ist jetzt als Aufzeichnung verfügbar. Dabei sprach Mike Palmeter, Chef des Solaris Produkt Management, unter anderem darüber wie die Zusammenarbeit zwischen dem Solaris- und dem Datenbank-Engineering wesentlich enger geworden ist - schon allein dadurch, dass bei der Kommunikation innerhalb eines Unternehmens nicht wie bei Mitarbeitern verschiedener Unternehmen zumindest mental ein Rechtsanwalt mit im Raum ist. Auch der wechselseitige Zugriff auf Quellcode ist innerhalb eines Unternehmens unproblematisch. Es gab eine Übersicht über einige der wechselseitigen Optimierungen zwischen der Oracle Datenbank insbesondere der neuen Version 12c und Solaris, aber wenig technische Details. 

Ein Ansatzpunkt für Performance-Verbesserungen ist die effiziente Verwaltung der großen Hauptspeicher, die heutige Systeme bieten - eine M5-32 oder eine voll ausgebaute M10-4S bis zu 32TB. Eine Anwendung, die von sehr großen Hauptspeichern schon immer profitierte, ist die Oracle Datenbank. Allein das Anlegen und Auflösen dauert seine Zeit, die direkt in den Start und das Herunterfahren der Datenbank eingeht und die man durch Parallelisierung deutlich verringern kann. Das wurde im Solaris jetzt in Form der vmtasks umgesetzt. Zur effizienten Speicherverwaltung insbesondere von SGAs war bereits 1993 in Solaris 2.2 das Intimate Shared Memory (ISM) eingeführt worden. ISM setzt aber eine fixe Größe der Speicherbereiche voraus. Die dynamische Variante DISM ging mit Abstrichen bei der Performance einher. Daher worde jetzt für die Oracle Datenbank 12c in Solaris eine neue Schnittstelle eingeführt: das Optimized Shared Memory (OSM), das erlaubt, die Größe der SGA ohne Zugeständnisse an die Performance online ohne Neustrat zu ändern. Damit ist es dann aucb möglich eine Datenbank schnell mit einer kleinen Datenbank zu starten und diese dann nach Bedarf zu vergrößern. In Solaris 11.1 wurde zudem eine neue Architektur zur virtuellen Speicherverwaltung implementiert, die nicht nur auf die Größe sondern etwa auch auf die NUMA-Charakteristika moderner Hauptspeicher ausgelegt ist.

In den Datenbank-Versionen 12c und ab 11.2.0.4.0 (11gR2 Patchset 3) wird eine Optimierungsmöglichkeit in Solaris auf aktuellen SPARC-Servern (T4, T5 und M5) genutzt, indem die Log Writer und LMS Prozesse im Solaris als „Critical Threads“ priorisiert sind (siehe auch MOS Doc ID 1523164.1 Reducing High Waits on ‘log file sync’ on Oracle Solaris SPARC by Increasing Priority of Log Writer). Dabei werden vom Solaris-Scheduler diesen Performance-kritischen Threads auf nicht voll ausgelasteten Systemen möglichst ganze Cores exklusiv zugewiesen. So müssen sie Ressourcen wie Caches und Ausführungseinheiten nicht mit anderen Threads teilen und können damit die maximal mögliche Hardware-Performance abrufen. Der Oracle Log Writer Prozess profitiert auch von der in Solaris 11.1  von 10ms auf 1ms verfeinerten Auflösung von Anwendungstimern – ermöglicht durch eine effizientere und besser skalierbare Implementierung.  Davon profitiert die Performance aller Anwendungen, die Polling-Mechanismen nutzen - eben auch die des Oracle Log Writer Prozesses, der bei hoher Last in einen Polling-Modus schaltet.

Neben diesen administrativ transparenten Optimierungen können mit Oracle 12c Solaris-Funktionalitäten direkt aus der Datenbank heraus genutzt werden. Oracle 12c nutzt auf der Solaris-Plattform DTrace, um nähere Informationen über I/Os zu gewinnen, die sehr lange dauern (über 500ms)- zunächst auf auf Raw-Devices unter ASM. Diese werden in der neuen dynamischen View V$KERNEL_IO_OUTLIER bereitgestellt, die auf Solaris wesentlich detailiertere Informationen bietet als die Views V$IO_OUTLIER und V$LGWRIO_OUTLIER, die auf allen Plattformen vorhanden sind. V$KERNEL_IO_OUTLIER ist dort als View zwar ebenfalls vorhanden, bleibt aber leer. V$KERNEL_IO_OUTLIER liefert zusätzlich eine Aufsplittung der Zeitanteile, die auf den Datenpfad sowie auf das Gerät selbst entfallen, was im Fehlerfall eine Diagnose signifikant vereinfacht und beschleunigt.

Der Markus Flierl, Chef der Solaris Kernel Entwicklung, sprach im Web Forum zudem über ein weiteres Projekt, auf das bereits bei der Ankündigung von Solaris 11.1 kurz hingewiesen wurde: Die Verlagerung einiger Funktionen aus dem RAC Lock Management in ein Solaris Kernel Module (1. Vortrag, allgemein zur Oracle Datenbank 12c auf Solaris ab ca. 39:30min - zum Kernel Mode RAC Accelerator ab 42:50min).

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet
Search

Archives
« April 2014
MoDiMiDoFrSaSo
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Heute