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