|
Written by Ludwig Weidinger
|
|
Sunday, 21 October 2007 |
|
Neuer Tuning-Parameter lru_file_repage Der Parameter ist mit AIX 5L V5.2 ML5 und AIX 5L V5.3 ML2 verfügbar und kann mit # vmo -o lru_file_repage=<wert> oder # smit TunVmo gesetzt werden. Mögliche Werte sind 0 oder 1.
Alle Seiten im (real) Memory werden von AIX entweder als computational memory oder file memory klassifiziert. Computational memory sind Seiten des Kernels, Seiten von Programmen (Text, Daten und Stack), Shared Library und Shared Memory. file memory sind Seiten von Dateien, egal ob JFS, JFS2, NFS oder auch DVD/CD. Solange noch genügend freie Seiten im Memory sind, ist diese Unterscheidung völlig bedeutungslos. Erst wenn aus AIX Sicht die Seiten im Memory knapp werden, wird der lrud daemon aktiviert, dessen Aufgabe es ist "geeignete" Seiten aus dem Memory zu entfernen. Der lrud daemon wird von den vmo-Parametern minperm, maxperm, minfree, maxfree, lru_file_repage und der Anzahl der aktuell vorhandenen Seiten im file memory (numperm) gesteuert. Der Wert von numperm ist z.B. mit vmstat -v ersichtlich. Wenn weniger als minfree Seiten frei sind, wird der lrud daemon aktiviert und wenn er ausreichend (=maxfree) freie Seiten beschafft hat, stellt er die Arbeit ein. Für die System-Performance ist es meist günstiger Seiten aus dem file memory zu entfernen und computational memory möglichst lange im Memory zu belassen. AIX geht dabei wie folgt vor: Sind viele Seiten aus dem file memory im Memory (d.h. numperm > maxperm) werden ausschließlich Seiten aus dem file memory entfernt. Sind nur wenige Seiten aus dem file memory im Memory (d.h numperm < minperm) wird keine Unterscheidung zwischen computational memory und file memory durchgeführt. Das Verhalten im Bereich dazwischen (d.h. minperm < numperm < maxperm) ist abhängig von lru_file_repage. Beim default-Wert von lru_file_repage=1 werden solange Seiten aus dem file memory entfernt, bis die sogenannten repage-Raten für file memory und computational memory gleich sind. Bei lru_file_repage=0 verhält sich der lrud daemon genauso wie für numperm > maxperm. Das bedeutet, dass für numperm > minperm nur Seiten aus dem file memory entfernt werden und für numperm < minperm keine Unterscheidung zwischen Seiten aus dem file memory und computational memory getroffen wird. Wichtig ist, dass der von lru_file_repage beeinflusste Bereich mit den voreingestellten Werten von minperm=20% und maxperm=80% der weitaus größte Bereich ist. Beim AIX Tuning für Datenbanken kann sich die Einstellung lru_file_repage=0 positiv auswirken und ist - soweit uns bekant ist - auch schon einigen Kunden von der IBM offiziell empfohlen worden. Zuletzt noch eine Warnung: Spielen Sie nicht mit den Tuning-Parametern auf produktiven Systemen! Mehr Details und Hintergrundwissen zu diesem Themenbereich liefern Ihnen unsere Kurse AIX 30: AIX Admin III: Performance & Tuning und AIX35: AIX Internals.
|