Eu tenho uma ferramenta de linha de comando que eu executo no Ubuntu 12.04.5 LTS. Eu preciso calcular o tempo de CPU para este programa. Eu tenho verificado a função / usr / bin / time.
Comando: /usr/bin/time -v -a -o timelog.dat command args
Eu corro o mesmo comando no mesmo hardware duas vezes. Os resultados de 2 corridas estão abaixo:
1ª corrida:
User time (seconds): 4085.50
System time (seconds): 4.75
Percent of CPU this job got: 54%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:04:19
Maximum resident set size (kbytes): 5093280
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 384474
Voluntary context switches: 436
Involuntary context switches: 628160
Swaps: 0
File system inputs: 24
File system outputs: 102936
2ª corrida:
User time (seconds): 2694.91
System time (seconds): 2.51
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 45:18.91
Maximum resident set size (kbytes): 5093280
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 384483
Voluntary context switches: 223
Involuntary context switches: 4321
Swaps: 0
File system inputs: 9288
File system outputs: 100136
Especificações da CPU do servidor: Clock speed: 2.4 GHz, Turbo Speed: 2.7 GHz, 8 physical cores, 16 threads
Então, na primeira execução, o servidor estava em carga total, eu tinha mais de 16 processos. Na segunda execução, eu tinha 7 processos. Como posso ter certeza sobre as informações de tempo que recebo? Podemos fazer uma comparação entre essas duas execuções quando a porcentagem de uso da CPU é de 99% em ambas? Existe outro método para medir o tempo exato gasto em um processo? Por que obtenho resultados totalmente diferentes mesmo que a função /usr/bin/time
calcule o tempo de CPU.
Qualquer ajuda seria muito apreciada
Obrigado antecipadamente, Serhat
Tags performance time linux ubuntu