suche 36x36

Ermitteln der Cache-Statistik bei mehreren Bufferpools

Existieren in einer Instanz Bufferpools unterschiedlicher Größen, so ist es ein Problem, die Effizenz der einzelnen Bufferpools zu ermitteln. Das Kommando onstat -p (Profile-Informationen) gibt nur eine allgemeine Cache-Rate für Lese- und Schreiboperationen aus.

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 14 days 21:53:50 -- 858168 Kbytes
Profile
dskreads   pagreads   bufreads   %cached dskwrits   pagwrits   bufwrits   %cached
178991     187416     122085412  99.85   134052     287522     1454924    90.79
....

Was ist aber, wenn die Cache-Raten optimiert werden müssen?

 

 

In diesem Fall müssen die Zahlen für jeden einzelnen Bufferpool bestimmt werden. Leider gibt es keinen onstat-Befehl für diese Ausgabe. Die einzige per onstat zu ermittelnde Zahl ist die Anzahl der Lese- und Schreiboperationen auf den einzelnen Chunks, die sich mittels onstat -g iof ermitteln läßt. Den Chunks ist die Page-Size direkt zuordenbar und damit entspricht die Summe der reads/kaio_reads bzw. write/kaio_writes aller Chunks mit der gleichen Page-Size den diskreads bzw. diskwrites aus der onstat -p - Ausgabe.

Zum Berechnen der Cache-Raten fehlen aber die bufreads bzw. bufwrites. Mit onstat kommt man an dieser Stelle nicht weiter.

Die Lösung des Problems versteckt sich in der sysmaster-Datenbank in der Tabelle sysbufprofile. Hier gibt es für jede auf dem System mögliche Page-Size eine Anzahl von Sätzen mit jeweils 2 Spalten.

 

name                            value
dskreads_8K                      1893
pagreads_8K                      7576
bufreads_8K                   1416494
dskwrites_8K                     8485
pagwrites_8K                    33940
bufwrites_8K                   101512
bufwaits_8K                         0
flushes_8K                         23
fgwrites_8K                         0
lruwrites_8K                        0
chunkwrites_8K                   8485

Im Beispiel sieht man die Werte für die 8k Page-Size.

 

Für jede belegte Page-Size berechnet man jetzt die Cache-Rate nach der Formel:

 

Cache-Rate = 100 - ( dskreads * 100 / bufreads )

 

Das ergibt im Beispiel:

 

Cache-Rate = 100 - ( 1893 * 100 / 1416494 ) = 99.84%

 

Berechnet man diesen Wert für jede benutzte Page-Size, für den Lese- und analog für den Schreibcache, so kann man gut beurteilen, wie die Effizenz der angelegten Bufferpools ist und welcher Bufferpool vergrößert oder verkleinert werden sollte.

Der Inhalt der Tabelle sysbufprofile kann auch über das Open-Admin-Tool abgefragt werden. Im Menüpunkt Perfomance Analysis -> Performance-History kann man in den 'Profiled Fields' unter Disk und Buffer diese Werte für die einzelnen Page-Sizes ermitteln. OAT zeigt auch noch eine Historie der Werte an. So kann man auch noch Messwerte ermitteln nachdem die aktuellen Werte der Tabelle mit onstat -z auf 0 gesetzt wurden.

 

News ÜbersichtNews Übersicht
News Übersicht
Informix NewsInformix News
Informix News
Scout NewsblogScout Newsblog
Scout Newsblog
NewsletterNewsletter
Newsletter
News ArchivNews Archiv
News Archiv