Linux CPU Performance Messungen mit mpstat – Thomas-Krenn-Wiki (2024)

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

  • 1 Grundlagen von mpstat
    • 1.1 Bedeutung der einzelnen Werte
  • 2 Analyse
    • 2.1 Auslastung der einzelnen CPUs bzw. Cores
    • 2.2 Analysezeitraum

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:

wfischer@ubuntu-1204:~$ sudo mpstat -P ALLLinux 3.2.0-93-generic (ubuntu-1204) 11/11/2015 _x86_64_(4 CPU)09:38:16 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle09:38:16 AM all 1.94 0.09 0.57 6.95 0.00 0.04 0.00 0.00 90.4209:38:16 AM 0 1.01 0.20 0.69 3.77 0.00 0.08 0.00 0.00 94.2709:38:16 AM 1 3.70 0.08 0.67 10.18 0.00 0.07 0.00 0.00 85.3009:38:16 AM 2 1.72 0.05 0.50 10.28 0.00 0.00 0.00 0.00 87.4509:38:16 AM 3 1.32 0.04 0.41 3.57 0.00 0.00 0.00 0.00 94.66wfischer@ubuntu-1204:~$

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:

wfischer@ubuntu-1204:~$ sudo mpstat -P ALL 1 60 > mpstatanalyse20151111-1.txtwfischer@ubuntu-1204:~$

Hier ein Auszug aus dieser Datei:

Linux 3.2.0-93-generic (ubuntu-1204) 11/11/2015 _x86_64_ (4 CPU)09:35:57 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle09:35:58 AM all 0.00 0.00 0.00 15.19 0.00 0.00 0.00 0.00 84.8109:35:58 AM 0 0.00 0.00 0.00 18.37 0.00 0.00 0.00 0.00 81.6309:35:58 AM 1 0.00 0.00 0.99 29.70 0.00 0.99 0.00 0.00 68.3209:35:58 AM 2 0.00 0.00 1.00 11.00 0.00 0.00 0.00 0.00 88.0009:35:58 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00[...]09:36:56 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle09:36:57 AM all 3.26 0.00 1.50 0.75 0.00 0.00 0.00 0.00 94.4909:36:57 AM 0 6.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 93.9409:36:57 AM 1 0.00 0.00 0.00 2.00 0.00 0.00 0.00 0.00 98.0009:36:57 AM 2 4.95 0.00 5.94 1.98 0.00 0.00 0.00 0.00 87.1309:36:57 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idleAverage: all 0.48 0.00 0.70 15.71 0.00 0.04 0.00 0.00 83.07Average: 0 0.66 0.00 1.19 16.44 0.00 0.12 0.00 0.00 81.60Average: 1 0.29 0.00 0.44 28.94 0.00 0.07 0.00 0.00 70.27Average: 2 0.53 0.00 0.65 15.27 0.00 0.00 0.00 0.00 83.54Average: 3 0.42 0.00 0.50 2.27 0.00 0.00 0.00 0.00 96.81

Bedeutung der einzelnen Werte

(Quelle man mpstat):

  • CPU: Processor number. The keyword all indicates that statistics are calculated as averages among all processors.
  • %usr: Show the percentage of CPU utilization that occurred while executing at the user level (application).
  • %nice: Show the percentage of CPU utilization that occurred while executing at the user level with nice priority.
  • %sys: Show the percentage of CPU utilization that occurred while executing at the system level (kernel). Note that this does not include time spent servicing hardware and software interrupts.
  • %iowait: Show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.
  • %irq: Show the percentage of time spent by the CPU or CPUs to service hardware interrupts.
  • %soft: Show the percentage of time spent by the CPU or CPUs to service software interrupts.
  • %steal: Show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor.
  • %guest: Show the percentage of time spent by the CPU or CPUs to run a virtual processor.
  • %idle: Show the percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.

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.

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.

Das könnte Sie auch interessieren

Dm-crypt Performance optimieren

Zum Artikel

DMI Hardwareinfos via sysfs auslesen

Zum Artikel

Linux Analyse der Ausführungszeit mit time

Zum Artikel

Linux CPU Performance Messungen mit mpstat – Thomas-Krenn-Wiki (2024)

References

Top Articles
Latest Posts
Article information

Author: Edmund Hettinger DC

Last Updated:

Views: 5875

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Edmund Hettinger DC

Birthday: 1994-08-17

Address: 2033 Gerhold Pine, Port Jocelyn, VA 12101-5654

Phone: +8524399971620

Job: Central Manufacturing Supervisor

Hobby: Jogging, Metalworking, Tai chi, Shopping, Puzzles, Rock climbing, Crocheting

Introduction: My name is Edmund Hettinger DC, I am a adventurous, colorful, gifted, determined, precious, open, colorful person who loves writing and wants to share my knowledge and understanding with you.