Uma definição para uma segunda CPU?

2

Estou totalmente por trás deste tópico.

Ontem eu estava fazendo o perfil de algum script no qual estou trabalhando, e a unidade de tempo gasto foi um ' CPU second '. Alguém pode me lembrar com a definição dele?

Por exemplo, para alguns perfis, obtive: 200.750 segundos de CPU . O que isso quer dizer? No outro caso e para o processo demorado eu tenho: -347.977 segundos da CPU , um número negativo!

Existe alguma maneira que eu possa converter esse tempo para a hora do calendário?

Felicidades,

    
por dude 05.05.2010 / 10:10

3 respostas

5

Um segundo de CPU é um segundo de tempo em uma CPU.

O tempo de execução do processo tem duas medições:

  • Tempo de CPU ou a quantidade de tempo que a CPU gastou ativamente executando o processo; e
  • Tempo da parede ou a quantidade de tempo que passa entre você iniciando o processo e o processo que termina.

Assumindo um único núcleo de CPU, eles estão relacionados da seguinte forma:

(Wall time) - (CPU time) = (time the CPU spent doing other things)

Portanto, em um exemplo simples, se você executar um processo e levar 10 segundos, mas obtiver uma medida de 7 segundos do processador, durante esses 10 segundos, o processador gastou 3 segundos fazendo outras coisas além de executar o processo.

O tempo de CPU é geralmente dividido em dois tipos:

  • tempo "sys" ou "kernel", ou tempo que o kernel gastou fazendo as coisas em seu nome - executando I / O, timers, mutex, o que for
  • tempo do "usuário" ou execução executada por um processo no espaço do usuário

Então, por exemplo:

$ time sleep 1

real    0m1.005s
user    0m0.000s
sys     0m0.002s

Nesse caso, estamos dormindo por um segundo. O sistema gastou 2/1000 segundos no espaço do kernel, provavelmente configurando temporizadores e interrupções para nós, sem tempo no espaço do usuário, e a coisa toda levou 1.005 segundos para ser executada, o que significa que durante esse período o computador gastou 0.003 segundos adicionais fazendo outras coisas além de lidar com nosso processo.

Em cima da minha cabeça eu não sei como ou porque você teria um número aparentemente negativo de tempo de CPU.

    
por 05.05.2010 / 15:29
1

Os segundos da CPU são, em termos UNIX, o tempo do usuário mais a hora do sistema do processo em si, ao contrário do tempo real (relógio de parede) e do tempo gasto pelos processos filhos.

Eu vi algo bizarro com tempos de CPU negativos há alguns anos sob os processadores AMD de núcleo duplo. Houve uma atualização do driver do processador que corrigiu o problema. Basicamente, o tempo entre os 2 processadores foi alterado e causou problemas como tempos de cpu negativos e tempos de ping negativos.

    
por 05.05.2010 / 16:13
0

Um "segundo CPU" é um segundo de ciclos de CPU que executam o processo ou o encadeamento. Você pode convertê-lo em tempo de parede dividindo-o pelo uso da CPU:

15 CPU seconds / 50% CPU usage = 30 wall seconds

Os tempos de CPU negativos são um problema no processo de medição, possivelmente um estouro.

    
por 05.05.2010 / 10:21