Por que um comando CP no Linux consome CPU?

4

Eu apenas executo um comando de cópia para dois diretórios grandes com um pequeno número de arquivos enormes e vejo que meu processo de CP está consumindo cerca de meio núcleo na parte superior:

51116 root      20   0  110m  876  688 D 43.9  0.0   3:23.83 cp -i -r 165 178 temp       

Por que o processo cp consome alguma CPU? Eu imagino que passa a maior parte do tempo esperando no disco ...

Thx, Boaz

    
por Boaz 28.12.2011 / 19:39

2 respostas

6

se você verificar as porcentagens, na parte superior da tela, verá que é principalmente em %wa (espera) e %id (ocioso) e muito pouco (se houver) em %us ( userspace).

mas na linha de processo, todo o tempo gasto à espera de um determinado processo é cobrado nesse processo. se outro processo pesado da CPU estivesse em execução ao mesmo tempo, seria necessária a maior parte da CPU sem afetar a tarefa de cópia, porque usaria %id e %wa time.

    
por 28.12.2011 / 19:47
3

Está gerenciando o movimento. Isso inclui encontrar os arquivos, criar novos arquivos e copiá-los. Tudo isso leva algum tempo de CPU. Devido à forma como os arquivos são armazenados em buffer, pode ser possível fazê-lo rapidamente, com as gravações de arquivos ocorrendo de forma assíncrona na operação de cópia. Se os arquivos não estiverem em buffer, a utilização da CPU poderá ser bastante baixa enquanto os arquivos forem acessados.

    
por 28.12.2011 / 19:46