Modifizieren von Kernelparametern (Linux)

Bei Installationen mit Rootberechtigung vewendet der Datenbankmanager eine Formel, um die Kernelparametereinstellungen automatisch anzupassen, sodass keine manuellen Aktualisierungen für diese Einstellungen mehr erforderlich sind.

Vorbereitende Schritte

Um die Kernelparameter ändern zu können, müssen Sie über die Rootberechtigung verfügen.

Prozedur

Gehen Sie wie folgt vor, um Kernelparameter unter Red Hat und SUSE Linux®zu aktualisieren:

  1. Führen Sie den Befehl ipcs -l aus, um die aktuellen Kernelparametereinstellungen aufzulisten.
  2. Analysieren Sie die Befehlsausgabe, um festzustellen, ob Sie Kerneleinstellungen ändern müssen, indem Sie die aktuellen Werte mit den erzwungenen Mindesteinstellungen in der folgenden Tabelle vergleichen.
    IPC-Kernelparameter Erzwungene Mindesteinstellung
    kernel.shmmni (SHMMNI) 256 * <size of RAM in GB>
    kernel.shmmax (SHMMAX) < Größe des Arbeitsspeichers in Byte >1
    kernel.shmall (SHMALL) 2 * < Größe des Arbeitsspeichers in der Standardsystemseitengröße >2
    kernel.sem (SEMMNI) 256 * <size of RAM in GB>
    kernel.sem (SEMMSL) 250
    kernel.sem (SEMMNS) 256 000
    kernel.sem (SEMOPM) 32
    kernel.msgmni (MSGMNI) 1 024 * <size of RAM in GB>
    kernel.msgmax (MSGMAX) 65 536
    kernel.msgmnb (MSGMNB) 65 536 3
    1. Unter 32 -Bit- Linux -Betriebssystemen ist die erzwungene Mindesteinstellung für SHMMAX auf 4.294.967.295 Bytebegrenzt.
    2. SHMALL begrenzt die Gesamtmenge des gemeinsamen virtuellen Speichers, die auf einem System zugeordnet werden kann. Jeder Db2® -Datenserver verwaltet effizient die Menge an Systemspeicher, die er verbraucht, auch als zugesicherter Speicher bezeichnet. Der Db2 -Datenserver ordnet mehr virtuellen Speicher zu als er festschreibt, um die Speichervorabzuordnung und das dynamische Speichermanagement zu unterstützen. Die Vorabzuordnung von Speicher wirkt sich vorteilhaft auf die Leistung aus. Die dynamische Speicherverwaltung ist die Erhöhung und Reduzierung der Realspeicherbelegung innerhalb separater Bereiche des gemeinsamen virtuellen Speichers. Zur Unterstützung der Vorabzuordnung von Speicher und der dynamischen Speicherverwaltung müssen Datenserver häufig mehr gemeinsamen virtuellen Speicher auf einem System zuordnen, als physischer Arbeitsspeicher vorhanden ist. Der Kernel benötigt diesen Wert in Form von Seitenanzahlen.
    3. Die Leistung bei Ladeoperationen kann von einem höheren Grenzwert für die Größe der Nachrichtenwarteschlange profitieren. Dieser wird mit MSGMNB in Byte angegeben. Sie können die Auslastung der Nachrichtenwarteschlange durch die Ausführung des Befehls ipcs -q anzeigen. Wenn bei Ladeoperationen die Kapazität von Nachrichtenwarteschlangen ausgeschöpft oder beinahe ausgeschöpft ist, können Sie den Grenzwert für die Größe der Nachrichtenwarteschlange erhöhen.
    Der folgende Text ist ein Beispiel für die Ausgabe des Befehls ipcs, wobei Kommentare nach der Markierung // eingefügt sind, die die Parameternamen angeben.
       # ipcs -l
    
       ------ Shared Memory Limits --------
       max number of segments = 4096               // SHMMNI	
       max seg size (kbytes) = 32768               // SHMMAX
       max total shared memory (kbytes) = 8388608  // SHMALL
       min seg size (bytes) = 1
    
       ------ Semaphore Limits --------
       max number of arrays = 1024                 // SEMMNI
       max semaphores per array = 250              // SEMMSL
       max semaphores system wide = 256000         // SEMMNS
       max ops per semop call = 32                 // SEMOPM
       semaphore max value = 32767
    
       ------ Messages: Limits --------
       max queues system wide = 1024               // MSGMNI
       max size of message (bytes) = 65536         // MSGMAX
       default max size of queue (bytes) = 65536   // MSGMNB
    • Beginnend mit dem ersten Abschnitt über die Grenzwerte für gemeinsam genutzten Speicher ist der Grenzwert SHMMAX die maximale Größe eines gemeinsam genutzten Speichersegments auf einem Linux -System. Der Grenzwert SHMALL definiert die maximal mögliche Zuordnung von gemeinsam genutzten Speicherseiten auf einem System.
      • Es empfiehlt sich, für SHMMAX einen Wert zu wählen, der dem Umfang des physischen Speichers auf Ihrem System entspricht. Allerdings Auf x86 -Systemen ist mindestens 268435456 (256 MB) und auf 64-Bit-Systemen 1073741824 (1 GB) erforderlich.
    • Der nächste Abschnitt bezieht sich auf den für das Betriebssystem verfügbaren Semaphorumfang. Der Kernelparameter sem besteht aus vier Token: SEMMSL, SEMMNS, SEMOPMund SEMMNI. SEMMNS ist das Ergebnis von SEMMSL multipliziert mit SEMMNI. Der Datenbankmanager erfordert, dass die Anzahl der Arrays (SEMMNI) nach Bedarf erhöht wird. In der Regel muss SEMMNI doppelt so viele Agenten wie auf dem System erwartet werden, multipliziert mit der Anzahl der logischen Partitionen auf dem Datenbankservercomputer plus der Anzahl der lokalen Anwendungsverbindungen auf dem Datenbankservercomputer.
    • Der dritte Abschnitt bezieht sich auf Nachrichten, die auf dem System übertragen werden.
      • Der Parameter MSGMNI beeinflusst die Anzahl der Agenten, die gestartet werden können. MSGMAX beeinflusst den Umfang der Nachrichten, die in eine Warteschlange gestellt werden können, und MSGMNB steuert die Länge der Warteschlange.
      • Der Parameter MSGMAX muss in 64 KB (d. h. 65536 Byte) geändert und der Parameter MSGMNB auf 65536 erhöht werden.
  3. Ändern Sie die Kernelparameter, die Sie anpassen müssen, indem Sie die Datei /etc/sysctl.conf bearbeiten. Wenn diese Datei nicht vorhanden ist, muss sie erstellt werden.
    Die folgenden Zeilen sind Beispiele für Angaben, die in der Datei gespeichert werden müssen:
    #Example for a computer with 16GB of RAM:
    kernel.shmmni=4096
    kernel.shmmax=17179869184
    kernel.shmall=8388608
    #kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI>
    kernel.sem=250 1024000 32 4096
    kernel.msgmni=16384
    kernel.msgmax=65536
    kernel.msgmnb=65536
  4. Führen Sie sysctl mit dem Parameter -p aus, um die sysctl -Einstellungen aus der Standarddatei zu laden /etc/sysctl.conf:
       sysctl -p
  5. Optional: Die Änderungen bleiben nach jedem Warmstart bestehen:
    • (SUSE Linux) Aktivieren Sie boot.sysctl .
    • (Red Hat) Das Initialisierungsscript rc.sysinit liest die Datei /etc/sysctl.conf automatisch.