GNU/Linux >> Znalost Linux >  >> Linux

Jaká je časová jednotka, kterou strace používá při zobrazování času stráveného v systémových voláních?

Ze zdrojového kódu:

if (Tflag) {
    ts_sub(ts, ts, &tcp->etime);
    tprintf(" <%ld.%06ld>",
        (long) ts->tv_sec, (long) ts->tv_nsec / 1000);
}

To znamená, že čas je zobrazen v sekundách s mikrosekundami (vypočteno z hodnoty nanosekund) za desetinnou čárkou.


Pokud spustíte

strace -T  sleep 2

uvidíte

nanosleep({tv_sec=2, tv_nsec=0}, NULL)  = 0 <2.000230>

takže to vypadá, že strávený čas je v sekundách.


Pokud spustíte příkaz strace pomocí "flag -c" vám ukáže tabulku a čas je hlášen v sekundách :

strace -c -p 3569 # 3569 is PID
strace: Process 3569 attached
^Cstrace: Process 3569 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
99.73    0.016000           8      1971           poll
0.16    0.000025           0       509        75 futex
0.06    0.000010           0      1985      1966 recvmsg
0.06    0.000009           0      2336           mprotect
0.00    0.000000           0       478           read
0.00    0.000000           0        13           write
0.00    0.000000           0        29           mmap
0.00    0.000000           0         9           munmap
0.00    0.000000           0        18           writev
0.00    0.000000           0       351           madvise
0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.016044                  7700      2041 total

od Stracova muže

-c

Počítejte čas, volání a chyby pro každé systémové volání a nahlaste shrnutí při ukončení programu. V Linuxu se to pokouší zobrazit systémový čas (čas CPU strávený v jádře) nezávisle na času nástěnných hodin. Pokud je -c použito s -f nebo -F (níže), jsou zachovány pouze agregované součty pro všechny sledované procesy.


Linux
  1. Kdy byla chyba The Shellshock (cve-2014-6271/7169) představena a jaká je oprava, která ji plně opravuje?

  2. Linux – jaké souborové systémy v systému Linux ukládají dobu vytvoření?

  3. Co se stane, když spustím příkaz Cat /proc/cpuinfo?

  1. Co se přesně stane, když spustím soubor v prostředí Shell?

  2. Jaká jsou legitimní použití příkazu `touch`?

  3. Linux – Jak změřit čas, kdy dorazí paket?

  1. Tune2fs:V jakém časovém pásmu je datum vytvořeno a je možné jej změnit?

  2. Jak zjistit, kdy byl soubor Spfile vytvořen na serveru Linux

  3. Jaký je celkový součet na prvním řádku po ls -l?