Betrifft: AIX 5L Initial Tuning

Betrifft: AIX 5L Initial Tuning

Aktualisiert: Oktober 2006

Hier sind jaqui Lynchs AIX 5.3 Initial Tuning Guidelines für kommerzielle Workloads. Jaqui schrieb und hielt die "AIX Performance Tuning" Sitzung auf der "IBM System p, AIX, Linux Technical University" im Oktober 2006 in Las Vegas. pseries-a26-aug06

in -p -rfc1323=1

in -p -o sb_max=1310720

in -p -o tcp_sendspace=262144

in -p -o tcp_recvspace=262144

in -p -o udp_sendspace=65536

in -p -o udp_recvspace=655360

nfso -p -o nfs_rfc1323=1

nfso -p -o nfs_socketsize=60000

nfso -p -o nfs_tcp_socketsize=600000

vmo -p -o minperm%=5

vmo -p -o minfree=960

vmo -p -o maxfree=1088

vmo -p -o lru_file_repage=0

vmo -p -o lru_poll_interval=10

ioo -p -o j2_maxPageReadAhead=128

ioo -p -der maxpgahead=16

ioo -p -o j2_maxRandomWrite=32

ioo -p -o maxrandwrt=32

ioo -p -o j2_nBufferPerPagerDevice=1024

ioo -p -o pv_min_pbuf=1024

ioo -p -o numfsbufs=2048

ioo -p -o j2_nPagesPerWriteBehindCluster=32

Bitte testen Sie diese Einstellungen, bevor Sie in die Produktion gehen.

Weitere Informationen finden Sie unter: http://www.circle4.com/papers/pseries-a26-aug06.pdf

Archiv

Oktober 2006: Ich habe meine ursprünglichen AIX 5.3 Tuning-Richtlinien (unten) zurückgezogen. Die meisten gelten noch. Ich verfasse die ursprünglichen Richtlinien hier als Archiv. Das Dokument kann auf Wunsch bei mir angefordert werden.

 

Einleitung

 

Hier sind die AIX 5L-Einstellungen, die ich automatisch ändere, wenn ich einen pSeries-Datenbankserver bestelle.  Sie werden hier als Bezugspunkt für die Abstimmung eines AIX-Systems bereitgestellt.  Wie immer sollten alle Einstellungen überprüft werden, sobald im System Produktionsworkloads ausgeführt werden.

 

Haftungsausschluss: Die Einstellungen werden "wie besehen" ohne Garantien bereitgestellt.  Jedes System ist anders, so dass Ihre Tuning-Anforderungen unterschiedlich sein können.

AIX 5L

 

In einem früheren "AIX-Tipp" habe ich die AIX 4.3-Einstellungen aufgeführt, die ich für einen Oracle-Benchmark verwendet habe.  Dieser Tipp erweitert diese Einstellungen auf AIX 5L.  Die Einstellungen in diesem Fall basieren jedoch auf allgemeinen Felderfahrungen und nicht auf einem bestimmten Benchmark.

 

Die Angabe von Einstellungen für AIX 5L ist komplexer als für AIX 4.3.  Der Grund dafür ist, dass AIX 5 mehr Konfigurationsalternativen mit unterschiedlichen Optimierungsanforderungen hat.  Zwei wichtige Konfigurationsalternativen sind der 32/64-Bit-Kernel und die JFS/JFS2-Dateisysteme. Eine weitere Überlegung sind die Unterschiede zwischen AIX 5.1 und 5.2.  AIX 5.2 definiert einige Tuning-Einstellungen sehr unterschiedlich (asynchrone E/A), verwendet verschiedene Tuning-Befehle und verfügt über neue Tuning-Funktionen (gleichzeitige und direkte E/A).  Darüber hinaus gibt es subtile Optimierungsüberlegungen bei der Verwendung von AIX 5.2 Dynamic LPAR.  DLPAR liegt jedoch außerhalb des Rahmens dieses Dokuments. Weitere Informationen erhalten Sie bei IBM Supportline.

 

Verwenden Sie nach Möglichkeit die Optimierungsempfehlungen Ihres Datenbankanbieters.  In Ermangelung dieser Informationen bietet dieses Dokument einen vernünftigen Ausgangspunkt.  Für die Ersteinrichtung ändere ich automatisch mehrere Speicher-, E/A-, JFS- und Netzwerkeinstellungen.  Ich verwende jedoch Standardeinstellungen für die CPU und JFS2, da diese Einstellungen Probleme verursachen können, wenn sie falsch eingestellt sind.  Die hier aufgeführten Einstellungen sind nicht vollständig und sollten überprüft werden, nachdem das System geladen wurde.

 

Obwohl Systemoptimierung eine Kundenverantwortung ist, kann IBM helfen.  IBM Supportline kann Bei Fragen zur Optimierung helfen, und IBM Global Services steht für eine eingehendere Untersuchung Ihres Systems zur Verfügung.

 

Tuning-Methodik

 

Das Tuning-Ziel besteht darin, die Service Level Agreement (SLA) zu erfüllen.  Die SLA ist eine Vereinbarung zwischen der IT und ihren Benutzern, die das Niveau der Dienstnutzer klar angibt. Die SLA ist am effektivsten, wenn die Ziele quantifiziert werden, z. B. Batch- oder Abfrageantwortzeiten.  Quantifizierte Ziele helfen, endlose Tuning-Loops zu vermeiden.

 

Meine Strategie ist es, die AIX-Tuning im "Ballpark" zu bekommen, und dann auf Datenbank-Tuning konzentrieren.  Die Datenbankoptimierung bietet oft eine Größenordnung mehr Nutzen als AIX-Tuning.  AIX muss jedoch zuerst abgestimmt werden, um eine solide Basis zu schaffen.  Die AIX-Einstellungen müssen sich nur im "Ballpark" befinden, um effektiv zu sein.

 

Systemoptimierung ist ein iterativer Prozess. Sobald Sie einen Engpass beseitigen, tritt ein anderer an seine Stelle. Jedoch, Es ist in der Regel nicht vorteilhaft zu versuchen, alle Engpässe zu beseitigen. Ich halte Die AIX-Tuning für erledigt, wenn:

 

1) Die SLA wird bei Spitzenlasten erfüllt, oder

2) Es gibt keine Systemengpässe

Eine.       CPU hat Leerlaufzeit (sar -P ALL)

  1. Speicher ist kein Paging (vmstat => pi/po-Spalte)
  2. I/O-Antwortzeiten durchschnittlich unter 10-15 ms (Filemon)
  3. Die Reaktionszeiten des Netzwerks liegen innerhalb akzeptabler Grenzen

3) Das System ist gesund

Eine.       Keine Hardwarefehler (errpt)

  1. Keine AIX-Probleme(http://www-1.ibm.com/servers/eserver/support/pseries/fixes/ oder ibm SupportLine anrufen.)

 

Zusammenfassend lässt sich sagen, dass die Entscheidungsmatrix für die Optimierung wie folgt lautet:

 

  SLA wird nicht erfüllt SLA wird erfüllt
Systemengpässe vorhanden Optimieren des Systems

 

 

 

fertig
Keine Systemengpässe Optimieren der Datenbank

 

 

 

fertig

 

Wenn nach der Abstimmung mit AIX weiterhin Engpässe bestehen, ist das System möglicherweise unterdimensioniert.  Erwägen Sie das Hinzufügen von Hardware (CPU, Arbeitsspeicher, Speicher). In einigen Fällen können schlecht geschriebene Abfragen oder Anwendungen die Engpässe verursachen. Die einzige Alternative ist, die Anwendung zu beheben.

 

Bruce Spencer

baspence@us.ibm.com

 

CPU/System-Einstellungen

 

Einstellung Befehl Standard Richtlinie Kommentare
Max. Anzahl der Benutzerprozesse smit chgsys 128 5000+  
Maximale Dateigröße /etc/security/limits 2 GB fsize=-1 Für die Datenbank-ID
I/O-Verlauf beibehalten smit chgsys Nein Ja Ein "nice to have" für die Überwachung der Festplattenaktivität

 

Die CPU erfordert fast keine anfängliche Abstimmung.

Speichereinstellungen

 

Einstellung AIX 5.1 Befehl AIX 5.2 Befehl Richtlinie Kommentare
Alle        
Paging-Raum smit pgsp smit pgsp 1-5 GB  
maxclient vmtune -t vmo: maxclient% =maxperm maxclient muss ≤ maxperm sein
minfree vmtune -f vmo: minfrei   Verwenden der Standardeinstellung
maxfree vmtune –F vmo: maxfree maxfree = minfrei +

 

 

maxpgahead

Siehe E/A-Einstellungen für maxpgahead.

 

 

 

Verwenden Sie den größeren der beiden:

JFS maxpgahead

Oder

JFS2 j2_max_Read_Ahead

         
Jfs        
minperm vmtune –p vmo: minperm% 15%  
maxperm vmtune -P vmo: maxperm% 30% Stellen Sie sicher, dass maxclient ≤ maxperm ist (siehe oben)
JFS2        
minperm vmtune -p vmo: minperm% Verwenden der Standardeinstellung  
maxperm vmtune -P vmo:

 

 

maxperm%

Verwenden der Standardeinstellung  

 

Seitenbereich: Seitenbereich kann relativ klein sein, vorausgesetzt, der Speicher ist richtig dimensioniert und es gibt keine Speicherverluste.  AIX 5 verwendet "Demand Paging", was bedeutet, dass Seitenbereich nur als "Spill over" verwendet wird, falls AIX nicht mehr funktioniert.  Wenn der Speicher jedoch unterdimensioniert ist oder ein Speicherverlust vorliegt, müssen Sie den Seitenbereich vergrößern, um das "Spillover" aufzunehmen.

 

Maxperm: maxperm beeinflusst das Paging-Verhalten.  Durch Paging wird Speicher frei, indem der "am wenigsten verwendete" Speicher für den temporären Speicher auf den Datenträger kopiert wird.  Optimieren Sie maxperm, um so viel wie möglich von der Datenbank im Speicher zu speichern, wenn die Systemseiten. Die Standardeinstellung ist normalerweise nicht optimal, wenn die Systemseiten das Auslagern der Datenbank zuerst begünstigen.

 

Die anfängliche maxperm-Einstellung hängt davon ab, ob sich das Datenbankdateisystem auf JFS oder JFS2 befindet. Für JFS ändere ich automatisch den Standardwert "maxperm/maxclient" wie oben.  Für JFS2 empfehle ich die Verwendung der Standardeinstellungen und die Optimierung auf das System, auf dem eine repräsentative Workload ausgeführt wird.   Der Grund dafür ist, dass AIX JFS- und JFS2-Speicher unterschiedlich klassifiziert.  JFS wird von "maxperm" gesteuert, was eine "weiche" Grenze ist und mehr verzeihend ist, wenn zu niedrig eingestellt.  JFS2 hingegen wird von "maxclient" gesteuert, was eine "harte" Grenze ist.  Bei falscher Einstellung kann die Leistung beeinträchtigt werden.  Siehe Abschnitt "maxclient" für JFS2.

 

Wenn das System unter Last ist, können Sie die Einstellung "maxperm" wie folgt optimieren.  Aber zuerst ein wenig Hintergrund.  AIX klassifiziert Speicher entweder als persistenten oder funktionierenden Speicher.  Persistenter Speicher umfasst Dateicache, ausführbare Dateien und Metadaten.  Arbeitsspeicher umfasst die Datenbank.  Die Zielspeichermenge für persistenten Speicher, wenn das System ausperformt wird, ist die Einstellung "maxperm".  (Beachten Sie, dass die maxperm-Einstellung größtenteils ignoriert wird, wenn das System nicht ausgeponen wird.)  Der Standardwert "maxperm" von 80 % begünstigt das Auspausstellen der Datenbank zuerst, wodurch die Leistung beeinträchtigt wird.   Darüber hinaus sind die tatsächlichen Anforderungen an den persistenten Speicher in der Regel viel niedriger (20-50%).

 

Die Optimierungsmethode umfasst die Suche nach dem tatsächlichen persistenten Speicher, der verwendet wird, wenn das System unter Last ist (numperm).  Legen Sie dann "maxperm" auf 5% unter diesem Wert fest.

 

maxperm = numperm% – 5%.

 

(Hinweis: Stellen Sie sicher, dass Sie maxclient=maxperm festlegen.  Weitere Informationen finden Sie unter "maxclient" weiter unten.)

 

Es gibt mehrere Befehle zum Anzeigen der Speichernutzung.  Hier sind zwei, die ich benutze.

 

AIX 5.1: "/usr/samples/kernel/vmtune | grep numperm"

AIX 5.2: "vmstat –v | grep numperm"

 

Wenn Sie keinen Root-Zugriff zum Ausführen von vmtune haben, können Sie einen anderen Ansatz verwenden.  Verwenden Sie die Spalte vmstat "avm", um die Größe des Arbeitsspeichers zu schätzen.  Berechnen Sie numperm% wie folgt:

 

numperm% = 100% – "Arbeitsspeicher%" = 100% – (avm *100 / Gesamtspeicher)

 

Hinweis "avm" ist in 4k-Seiten gemessen, so dass Sie diese Zahl in die gleichen Einheiten wie Gesamtspeicher konvertieren müssen.

 

maxclient: Eine Untergruppierung des persistenten Speichers.  Daher ist "maxclient" immer kleiner oder gleich "maxperm" (ich habe "maxclient=maxperm" festgelegt).

 

Der Wert "maxclient" legt die maximale Speichermenge fest, die von seinen Mitgliedern verwendet wird: JFS2, NFS, CDROM und Veritas-Dateisysteme. Der Wert "maxclient" ist ein "hartes" Limit, das immer erzwungen wird.

 

Wichtig ist, dass JFS2 eine "harte" Grenze hat, JFS jedoch nicht.  Es ist besser, das JFS2 als Standard zu belassen, bis das System während der Ausführung einer repräsentativen Last optimiert werden kann. Wenn Sie "maxclient" zu niedrig einstellen, kann die LEISTUNG von JFS2 beeinträchtigt werden.

 

Tune the"maxclient" mit dem System unter Last.  Verwenden Sie die "maxperm" Tuning-Prozedur für die Einstellung "maxclient", und setzen Sie "maxclient" gleich "maxperm".    Wenn Sie genauer sein möchten, können Sie den Befehl "svmon –G" verwenden, um die Menge an Arbeitsspeicher anzuzeigen, die vom Clientspeicher verwendet wird. Es wird unter der Spalte "clnt" ("in Use") angezeigt.

 

svmon -G

Größe inuse free pin virtuell

Speicher 131072 129422 1650 11704 50091

pg Platz 131072 4279

 

arbeit pers clnt lpage

Anstecker 11704 0 0 0

im Einsatz 47052 76146 6224 0

 

Der Befehl svmon zeigt auch den Arbeitsspeicher unter der Spalte "Arbeit" an.  Alles kommt wie folgt zusammen:

 

Gesamtspeicher = frei+"arbeiten"+"persistent"

= free+work+(pers+clnt)

= 1650+47052+(76146+6224) = 1331072

 

minfree: Paging beginnt, wenn der freie Speicher "minfree" erreicht.

 

maxfree: Gibt an, wann das Paging beendet werden soll.

 

maxfree = minfree + "MaxPageAhead"

 

Der Wert "MaxPageAhead" ist maxpgahead  für JFS und  j2_maxPageReadAhead für JFS2.

 

 

 

I/O-Einstellungen

 

Einstellung AIX 5.1 Befehl AIX 5.2 Befehl Richtlinie Kommentare
Alle        
Festplattenlayout smit lvm smit lvm Alle Daten auf ALLE physischen Datenträger verteilen  
Warteschlangentiefe für Fibre-Channel-Adapter smit fcsa smit fcsa   Siehe Kommentare
Asynch-E/A (AIX 5.1)

 

 

 

smit chgaio   Min: 1

 

 

Max: 1000

Req: 8192

 

Aktiviert

In AIX 5.1 ist AIO min/max eine Systemsumme.

 

 

 

Erfordert Einen Neustart

Asynch-E/A (AIX 5.2)

 

 

 

  smit chgaio Min: 1

 

 

Max: 1000/#CPUs

Req: 8192

Aktiviert

AIX 5.2 AIO min/max ist pro CPU

 

 

 

Erfordert Einen Neustart

Direkt & Gleichzeitige E/A N/A     Siehe Kommentare
Jfs        
Dateisystempuffer vmtune -b ioo: numfsbufs 500 Muss vor der Montage von Dateisystemen ausgeführt werden
minpgahead vmtune –r ioo: minpgahead 2  
maxpgahead vmtune –R ioo: maxpgahead 16  
JFS2        
Dateisystempuffer vmtune -Z ioo:

 

 

j2_nBufferPerPagerDevice

Standard=512 Muss vor der Montage von Dateisystemen ausgeführt werden
minpgahead vmtune –q ioo: j2_minPageRead

 

 

Vor

2  
maxpgahead vmtune –Q ioo: j2_maxPageRead

 

 

Vor

16  

 

Disk Layout: Der wichtigste E/A-Optimierungsschritt besteht darin, alle Daten auf alle physischen Laufwerke zu verteilen*.  Wenn Sie über ein SAN verfügen, arbeiten Sie eng mit dem SAN-Administrator zusammen, um das logische zu physische Datenträgerlayout zu verstehen. In einem SAN können sich zwei oder mehr hdisks auf demselben physischen Datenträger befinden.  (*-Die einzige Ausnahme ist, wenn Sie auf dem Datenträger sichern.  Stellen Sie sicher, dass sich die Sicherungsdatenträger auf einem separaten Speichersystem befinden, um einen einzelnen Fehlerpunkt zu vermeiden.)

 

Warteschlangentiefe für Fibre-Channel-Adapter: Diese Einstellung hängt vom Speicheranbieter ab.   Für IBM Shark-Speicher habe ich dies um 100 festgelegt.  Wenn Sie Nicht-IBM-Speicher verwenden, wenden Sie sich an Ihren Hersteller, um dessen Empfehlung für die Warteschlangentiefe zu erhalten.  Es ist bekannt, dass Einstellungen für die hohe Warteschlangentiefe datenbeschädigungen auf einigen Nicht-IBM-Speicher verursachen.  Wenn Sie sich nicht sicher sind, verwenden Sie den Standardwert.

 

Asynch-E/A: Verbessert die Schreibleistung für JFS- und JFS2-Dateisysteme.  Sie gilt nicht für unformatierte Partitionen.  AIO wird in AIX 5.1 und 5.2 unterschiedlich implementiert.  In 5.1 gelten die min/max AIO-Einstellungen für das gesamte System.  In 5.2 sind die AIO-Einstellungen pro CPU.

 

In AIX 5.1 habe ich den "max Server" auf 1000 gesetzt.  Dividieren Sie bei einem 5.2-System 1000 durch die Anzahl der CPUs.   Ich neige dazu, AIO zu überkonfigurieren, da ein Neustart erforderlich ist.  Bei der Konfiguration von "max server" werden keine zusätzlichen Ressourcen verwendet, da AIO-Server nur bei Bedarf erstellt werden. Der "max Server" legt nur das Maximum fest, nicht die tatsächlich verwendete Zahl.  Wenn Sie DLPAR verwenden und dynamisch CPUs hinzufügen möchten, wenden Sie sich an Supportline, um die Auswirkungen zu besprechen.

 

Direkte und gleichzeitigeE/A: Ich habe diese als Platzhalter aufgenommen, da sie vielversprechend aussehen.  Allerdings habe ich noch nicht die Erfahrung, sie zu empfehlen.  Weitere Informationen finden Sie unter

 

Direkte I/O: http://www-106.ibm.com/developerworks/eserver/articles/DirectIO.html

Gleichzeitige E/A:: http://www-1.ibm.com/servers/aix/whitepapers/db_perf_aix.pdf

 

Dateisystempuffer: Unzureichende Puffer beeinträchtigen die E/A-Leistung. Die Standardeinstellung AIX für diese Puffer ist für Datenbankserver in der Regel zu niedrig.  JFS/JFS2 werden separat abgestimmt.  JFS verwendet "vmtune –b", während JFS2 "vmtune –Z" verwendet.

 

Achten Sie darauf, den Wert nicht zu hoch festzulegen, wenn Sie einen 32-Bit-Kernel mit einer großen Anzahl von Dateisystemen (50+) ausführen.  Die Puffereinstellung ist pro Dateisystem, und Sie können nicht mehr über den Kernelspeicher verfügen, wenn dieser wert zu hoch eingestellt ist.   (Dies gilt nicht für den 64-Bit-Kernel, der größere Kernelspeichergrößen unterstützt.)

 

Optimieren Sie die Dateisystempuffer, wenn das System unter Spitzenlast steht.  Führen Sie den folgenden Befehl mehrmals aus:

 

AIX 5.1: /usr/samples/kernel/vmtune –a | grep fsbufwaitcnt

AIX 5.2: vmstat –v | grep "Dateisystem I/Os ohne fsbuf gesperrt"

 

Wenn der Wert mit der Zeit steigt, bedeutet dies, dass nicht genügend Puffer vorhanden sind.  (Der absolute Wert ist nicht wichtig….nur die Änderungsrate.).  Wenn dies der Zuspruch besteht, erhöhen Sie die Anzahl der Dateisystempuffer.  Das Dateisystem muss aufgehoben/gemountet werden, damit die neue Einstellung wirksam wird.

 

Netzwerkeinstellungen

 

Einstellung AIX 5.1 Befehl AIX 5.2 Befehl Richtlinie Kommentare
         
tcp_sendspace Nein smit TunNet 262144  
tcp_recvspace Nein " 262144  
rfc1323 Nein " 1  

 

 

Umsetzung

 

Die Tuning-Konzepte in AIX 5.1 und 5.2 sind die gleichen, aber die Implementierung ist anders.

 

In AIX 5.1 habe ich den Befehl vmtune in /etc/inittab gesetzt.  Ich finde es direkt über dem "/etc/rc"-Eintrag, da einige der Tuning-Befehle ausgeführt werden müssen, bevor /etc/rc die Fallsysteme montiert.  Sie können alle vmtune-Optionen mit demselben Befehl kombinieren.  Hier ist ein Beispiel für einen /etc/inittab-Eintrag für vmtune.

 

……..

vmtune:2:wait:/usr/samples/kernel/vmtune –R16 –b465 –p10% -P30%

rc:23456789:wait:/etc/rc…..

…………..

 

In AIX 5.2 wurde die vmtune in zwei Befehle aufgeteilt: vmo und ioo.  Es ist am besten, über "smit tuning" zu konfigurieren.

 

Verweise

 

"Datenbankleistungsoptimierung auf AIX",

https://www.redbooks.ibm.com/.  Suchen Sie nach Dokument SG24-5511.

 

"AIX Performance Tools Handbuch",

https://www.redbooks.ibm.com/ Suche nach Dokument SG24-6039

 

"Verstehen der IBM eServer pSeries-Leistung und -Größe"

https://www.redbooks.ibm.com/ Suchen nach SG24-4810

 

"Leistungsmanagement-Leitfaden"

http://publib16.boulder.ibm.com/pseries/en_US/infocenter/base/aix52.htm

 

 

 

Dieser Beitrag wurde unter AIX, UNIX veröffentlicht. Setze ein Lesezeichen auf den Permalink.