Linux CPU Performance Messungen mit mpstat

Aus Wiki Thomas-Krenn.AG
Wechseln zu: Navigation, Suche

Das Linux Tool mpstat liefert Informationen zur Auslastung der einzelnen CPUs eines Systems. Bei Multicore-CPUs wird jeder Core als CPU angezeigt. Bei CPUs mit Hyperthreading werden pro physischer CPU bzw. physischem Core zwei CPUs angezeigt. mpstat ist bei Linux Distributionen meistens im Paket sysstat enthalten (siehe z.B. bei Debian http://packages.debian.org/sysstat).

Inhaltsverzeichnis

Grundlagen von mpstat

mpstat wird typischerweise mit der Option mpstat -P ALL aufgerufen. Dadurch werden alle CPUs einzeln aufgelistet. Ein Aufruf von mpstat -P ALL zeigt die Durchschnittswerte seit dem letzten Booten:

[root@centos4 ~]# mpstat -P ALL
Linux 2.6.9-023stab048.6-smp (centos4.thomas-krenn.com) 	04/08/09

16:16:08     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
16:16:08     all    6.48    0.00    0.87    0.15    0.00    0.14   92.36   1130.51
16:16:08       0    6.38    0.00    0.88    0.15    0.00    0.14   92.44    141.31
16:16:08       1    6.29    0.00    0.85    0.14    0.00    0.14   90.99    141.31
16:16:08       2    6.60    0.00    0.87    0.15    0.00    0.14   91.81    141.31
16:16:08       3    6.81    0.00    0.87    0.14    0.00    0.14   90.47    141.31
16:16:08       4    6.48    0.00    0.86    0.15    0.00    0.14   92.36    141.31
16:16:08       5    6.23    0.00    0.85    0.15    0.00    0.13   91.04    141.31
16:16:08       6    6.37    0.00    0.87    0.15    0.00    0.14   92.03    141.31
16:16:08       7    6.21    0.00    0.84    0.14    0.00    0.13   91.08    141.31
[root@centos4 ~]# 

Zur Analyse über einen gewissen Zeitraum können zwei weitere Parameter angegeben werden. Bei mpstat -P ALL 1 60 wird jede Sekunde der aktuelle Wert ausgelesen (und dies 60 Mal - d.h. 1 Minute lang). Der letzte Eintrag zeigt dann die Durchschnittswerte über den Messzeitraum. Man kann die Ausgabe von mpstat -P ALL 1 60 bequem in eine Datei schreiben:

[root@centos4 ~]# mpstat -P ALL 1 60 > /root/mpstatanalyse20090408-1.txt
[root@centos4 ~]#

Hier ein Auszug aus dieser Datei:

Linux 2.6.9-023stab048.6-smp (centos4.thomas-krenn.com)   04/08/09

15:55:53     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
15:55:54     all   22.88    0.00    1.29    0.00    0.00    0.26   75.58   1590.82
15:55:54       0   34.69    0.00    6.12    0.00    0.00    0.00   59.18    198.98
15:55:54       1   17.35    0.00    0.00    0.00    0.00    0.00   80.61    198.98
15:55:54       2    9.18    0.00    1.02    0.00    0.00    0.00   91.84    198.98
15:55:54       3   13.27    0.00    1.02    0.00    0.00    1.02   81.63    198.98
15:55:54       4   31.63    0.00    2.04    0.00    0.00    0.00   67.35    198.98
15:55:54       5    4.08    0.00    0.00    0.00    0.00    0.00   93.88    197.96
15:55:54       6   71.43    0.00    0.00    0.00    0.00    1.02   29.59    198.98
15:55:54       7    0.00    0.00    0.00    0.00    0.00    0.00   96.94    198.98

[...]

15:56:52     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
15:56:53     all   25.26    0.00    1.41    0.77    0.00    0.26   72.31   1237.50
15:56:53       0   12.50    0.00    0.00    0.00    0.00    0.00   87.50    155.21
15:56:53       1   40.62    0.00    2.08    0.00    0.00    1.04   60.42    155.21
15:56:53       2    1.04    0.00    1.04    0.00    0.00    1.04  100.00    155.21
15:56:53       3   35.42    0.00    0.00    0.00    0.00    1.04   65.62    154.17
15:56:53       4    8.33    0.00    2.08    0.00    0.00    0.00   90.62    155.21
15:56:53       5   35.42    0.00    3.12    7.29    0.00    0.00   56.25    155.21
15:56:53       6   63.54    0.00    1.04    0.00    0.00    1.04   36.46    154.17
15:56:53       7    8.33    0.00    1.04    0.00    0.00    0.00   90.62    154.17

Average:     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
Average:     all   21.58    0.00    1.83    0.59    0.00    0.34   75.66   1417.71
Average:       0   21.87    0.00    2.07    0.32    0.00    0.36   75.38    177.21
Average:       1   20.97    0.00    1.50    0.82    0.00    0.29   75.28    177.21
Average:       2   19.76    0.00    1.68    0.07    0.02    0.34   78.03    177.23
Average:       3   23.98    0.00    1.95    0.05    0.00    0.37   72.49    177.21
Average:       4   23.02    0.00    1.63    0.53    0.00    0.32   74.49    177.21
Average:       5   20.29    0.00    1.65    1.53    0.00    0.36   75.02    177.21
Average:       6   25.95    0.00    2.21    0.08    0.00    0.34   71.27    177.21
Average:       7   15.75    0.00    1.80    1.31    0.00    0.31   79.63    177.21

Bedeutung der einzelnen Werte

(Quelle man mpstat):

Analyse

Auslastung der einzelnen CPUs bzw. Cores

Bei einem System mit mehreren CPUs oder mehreren Cores ist es sinnvoll diese nach Möglichkeit gleichmäßig auszulasten. Zeigen die Durchschnittswerte von mpstat -P ALL eine CPU mit sehr hohem %user Anteil, andere CPUs aber mit sehr niedrigem %user Anteil kann durch eine Optimierung der Konfiguration der Anwendungen die Gesamtperformance des Systems womöglich erhöht werden. Eine Datenbank, die nur einen einzelnen Thread bzw. Prozess nutzt kann auch nur einen Core auslasten.

Analysezeitraum

Da ein mpstat -P ALL die Durchschnittswerte seit dem letzten Bootvorgang liefert (und somit auch Zeiten mit niedriger Last - etwa Nachts und das Wochenende - beinhaltet), kann z.B. eine zehn Minuten dauernde Messung zu Spitzenzeiten mittels mpstat -P ALL 1 600 > /root/mpstatanalyse.txt durchgeführt werden. Damit erhält man auch Durchschnittswerte für diese zehn Minuten am Ende der Ausgabe.


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge