Man lernt nie aus. Als Reaktion auf meinen letzten Blogeintrag bekam ich den Hinweis, bei prstat doch die Option "-m" zu verwenden, um mich von den traegen und unzuverlaessigen Durchschnittswerten zu befreien. Was dahinter steckt, wollte ich natuerlich genauer wissen, und wurde bei Eric Schrock fuendig. Hier eine kurze Zusammenfassung:


Die herkoemmliche Ausgabe von prstat (und einigen anderen Kommandos) gibt Durchschnittswerte aus, die auf regelmaessigen Stichproben beruhen. Je hoeher der CPU-Takt, desto hoeher ist auch die Wahrscheinlichkeit, dass einige Ereignisse selbst bei langen Messintervallen von keiner Stichprobe erfasst werden - die Ergebnisse werden immer unpraezieser, je hoeher der CPU-Takt und je kuerze die Ereignisse. Bei Microstate-Accounting werden die Ereignisse direkt "am Objekt" erfasst. Durch einige Aenderungen in der Implementierung wurde dies in Solaris 10 ausreichend effizient, um staendig aktiv sein zu koennen. Verwendet man nun bspw. bei prstat diese praezieseren Werte, erscheint ein CPU-Fresser tatsaechlich sofort mit 100%. Damit eruebrigt sich die Umrechnung der CPU-Anzahl in Auslastungs-Anteile. Ein von der Singlethread-Leistung begrenzter Prozess wird so viel schneller und einfacher sichtbar.


Auch die Praesentation habe ich natuerlich entsprechend angepasst.



Vielen Dank fuer den Hinweis! An solchen Dingen merke ich, dass ich Kommandos wie prstat schon viel zu lange (und durchaus erfolgreich) verwende. Dieses neue Feature ging, aehnlich wie in dem Eintrag von Eric erwaehnt, auch bei mir wegen ZFS, Containern, SMF etc. unter.






Read More about [prstat und microstate accounting...