Linux - System V - IPC-Parameter und die Oracle Datenbank

Alle Versionen

Die Parameter

NameBeschreibungVernünftige Werte
SHMMAX Maximale Größe eines Shared-Memory-Segments (Bytes)250 kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections bis unendlich
SHMMINMinimale Größe eines Shared-Memory-Segments (Bytes)1
SHMALLGesamtgröße des verfügbaren Shared Memory (Bytes oder Seiten) wenn Bytes, dann gleich SHMMAX; wenn Seiten, dann ceil(SHMMAX/PAGE_SIZE)
SHMSEGMaximale Anzahl von Shared-Memory-Segmenten pro Prozess nur 1 Segment wird benötigt, aber die Voreinstellung ist viel höher
SHMMNIMaximale Anzahl von Shared-Memory-Segmenten im ganzen Systemwie SHMSEG plus Platz für andere Anwendungen
SEMMNIMaximale Anzahl von Semaphorbezeichnern in einer Gruppe/Array mindestens ceil(max_connections / 16)
SEMMNSMaximale Anzahl von Semaphoren im ganzen Systemceil(max_connections / 16) * 17 plus Platz für andere Anwendungen
SEMMSLMaximale Anzahl von Semaphoren pro Gruppe/Arraymindestens 17
SEMMAPAnzahl Einträge in Semaphorkarte
SEMVMXMaximalwert eines Semaphorsmindestens 255 (Der Standard ist oft 32767; nicht ändern wenn nicht nötig.)

Aktueller Werte anzeigen:

  find /proc/sys -type f -exec sh -c "echo \"{}: \`cat {}\`\"" \;
 
  ipcs -l
 
Verbrauch der Semaphore Arrays überprüfen
ipcs -s

Die typischen Oracle Defaults setzen

/etc/sysctl.conf:

kernel.sem = 250 32000 100 128

SEMMSL=250, SEMMNS=32000, SEMOPM=100, SEMMNI=128

Der Wert für SEMMSL sollte 10 plus die Anzahl aller „PROCESSES“ Parameter aller Datenbanken zusammen auf dem System sein!

Quellen:

9i/10g

11g

Oracle Support: