getrusage / stime a utime
Dracula 007
dracula007 na atlas.cz
Úterý Červen 20 21:09:07 CEST 2006
Ahoj,
potreboval bych vedet jak konkretne souvisi realny cas behu programu
a slozky 'ru_utime' a 'ru_stime' ktere dostanu ve strukture pri zavolani
funkce getrusage(). Manualovou stranku jsem cetl a neco jsem si nasel na
netu, ale moudry z toho nejsem.
Totiz situace je takova - mame PHP aplikace na linuxovem serveru (Apache
+ PHP) a radi bychom nejak nahrubo sledovali nejake vyrazne zmeny v
jejich "efektivite" apod., takze mame prepend a append skripty ktere na
konci skriptu automaticky ulozi (mimo jine)
1) cas potrebny na vyhodnoceni skriptu (realny cas mereny pomoci
microtime() jako rozdil hodnot na konci a na zacatku skriptu)
2) utime a stime
Ted delam jakousi prvni analyzu vystupu, ale mate mne ze hodnoty utime
jsou nekolikanasobne vyssi nez 'realne trvani skriptu'. Mel jsem (zrejme
nespravny) dojem ze
stime + utime <= time
ale evidentne je nekde chyba v uvaze a ja netusim kde. Zejmena kdyz
aplikace dost pouziva databazi (postgres) takze rizeni se v jistou
chvili predava jinemu procesu (postmaster) ktery vyhodnocuje SQL dotazy,
a ten cas by se mel podle meho nazoru jeste vice promitnout do prevahy
'time' nad stime + utime.
Chapal bych ze je potreba urcity cas na inicializaci (naparsovani PHP
skriptu apod.), coz "zevnitr" PHP zmerit nemuzu (ale do vysledku
getrusage se to projevi), ale zejmena mezi 'time' a 'utime' jsou ty
rozdily v nasobcich ...
Priklad dat (jen relevantni sloupce)
time | utime | stime
-------------+-----------+-----------
0.442416 | 1.00067 | 0.00015
0.001827 | 1.00048 | 0.00024
0.195682 | 12.00083 | 1.00014
0.417999 | 0.0007 | 0.00012
0.231019 | 0.00061 | 8e-05
0.35971 | 3.00086 | 0.00037
0.289654 | 13.00056 | 1.00025
0.18025 | 3.00082 | 0.00033
0.319696 | 4.00043 | 0.00042
0.218467 | 1.00078 | 0.00015
0.147207 | 1.00035 | 9e-05
0.265336 | 12.00091 | 1.00014
0.494357 | 3.00086 | 0.00033
0.284913 | 0.00078 | 0.00013
0.135468 | 0.00069 | 9e-05
0.248762 | 4.00007 | 0.00036
0.174559 | 13.00066 | 1.00025
0.335333 | 1.0009 | 0.00019
0.355882 | 12.00093 | 1.00014
0.259244 | 3.00093 | 0.00035
0.265011 | 3.00067 | 0.0004
0.17322 | 0.00078 | 0.0001
0.301812 | 0.00091 | 0.00015
0.214412 | 1.00058 | 0.00025
1.605475 | 13.00081 | 1.00025
t.v.
Další informace o konferenci Linux