CPU Utilização de um processo multithread

1

Antecedentes: Eu tenho toda uma confusão de sistemas rodando o kernel 2.6.20 e 2.6.22 no que começou como uma instalação do Fedora Core 2 vários anos atrás. Estes sistemas têm 8 cpus, conforme relatado por cat /proc/cpuinfo .

A minha pergunta é, quando um processo em execução que usa multi-threading, 99,99% de uso da CPU como relatado por top significam 99,99% de cada CPU ou 99,99% no total se você adicionar o uso em cada CPU juntos? Em outras palavras, a porcentagem máxima deve ser 800% ou 100%?

Parece que quando um desses processos está em 99,99%, se você observar cada CPU individualmente, eles dirão 25% de utilização (em vez de 100%).

Qualquer ajuda é apreciada. Se eu não estava claro ou confuso, me avise e tentarei esclarecer.

UPDATE Parece que talvez tenhamos visto a baixa utilização devido a um problema com o modelo de encadeamento usado pelos programadores. Eles estão usando encadeamentos de usuários em vez de encadeamentos do kernel e estão vendo limitações no que os encadeamentos de usuários podem fazer.

    
por Justin Bennett 17.06.2009 / 16:42

2 respostas

3

99% do uso da CPU significa quase total utilização do single core.

se o seu sistema estiver totalmente carregado [alguns threads ocupam uma cpu] - você verá 400% de uso em quad core ou 800% de uso em dois quad-core.

processos / threads são reatribuídos entre CPUs - é por isso que você vê 25% de utilização em cada núcleo. mas você pode definir afinidade para eles .. então eles ' Vou ficar com os processadores / núcleos selecionados.

    
por 17.06.2009 / 16:45
0

Mostra carga por núcleo. Não se esqueça de um ótimo substituto "top" chamado htop. Ele irá chamar você de carga de cpus / núcleos individuais.

    
por 17.06.2009 / 17:13