Linux Analyse der Ausführungszeit mit time

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

Unter Linux kann das time Kommando verwendet werden, um die Ausführungszeit für ein Kommandozeilenprogramm zu messen. Dieser Artikel zeigt dies am Beispiel des updatedb Programms.

Aufruf

Das time Kommando wird einfach vor dem auszuführende Programm beim Aufruf angeführt:

[root@tpw ~]# time updatedb

real	1m5.682s
user	0m0.543s
sys	0m2.823s
[root@tpw ~]# 

Das Programm updatedb ist hier ein schönes Beispiel. Es durchsucht nämlich das gesamte Filesystem nach allen Dateien und schreibt die Informationen dazu in eine kleine Datenbank. Mit Hilfe dieser Datenbank kann man mit dem locate Befehle dann später sehr rasch nach Dateien suchen. Diese Suche ist weitaus schneller als eine normale Suche mit dem find Kommando. Allerdings spiegelt das Ergebnis auch nicht den aktuellen Stand, sondern den Stand der Datenbank (letztes Aufrufen des updatedb Kommandos) wider.

Da udpatedb das gesamte Filesystem durchsucht, und somit sehr zufällige I/O Zugriffe entstehen, wartet beim Ausführen von updatedb die CPU die meiste Zeit auf den I/O.

Analyse

Die einzelnen Werte haben dabei die folgende Bedeutung:

Die restliche Zeit verbringt die CPU entweder mit anderen Programmen oder mit Warten auf I/O. Dies zeigt auch ein parallel ausgeführtes vmstat (siehe dazu auch Linux Performance Messungen mit vmstat#Beispiel: CPU wartet auf IO:

[user@tpw ~]$ vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  1   3276  17544 109672 869900    0    0    62   180  812 1340 17  6 75  2  0	
 1  1   3276  17000 110144 869900    0    0   464    76  815 1594 17  5  0 78  0	
 2  1   3276  16556 110552 869892    0    0   408    20  670 1415  2  5  0 93  0	
 0  1   3276  15980 111060 869936    0    0   508     0  844 1775  9  6  0 85  0	
 1  1   3276  15408 111524 869944    0    0   464     0  717 1592  5  4  0 91  0	
 0  1   3276  15000 111904 869976    0    0   372    12  627 1461  2  5  0 93  0	
 0  1   3276  15700 112788 869956    0    0   876    40  960 2177  5  7  0 88  0	
 0  1   3276  14420 113968 870136    0    0  1180    28  850 2020  5 11  0 84  0	
 0  1   3276  14628 115560 868288    0    0  1600     0 1281 2602  3 17  0 80  0	
 0  1   3276  14744 116996 866704    0    0  1696     0 1426 2806  7 19  0 74  0	
[user@tpw ~]$

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