Acabei de instalar screenlets para obter algumas informações na tela sobre o meu sistema. Estou tentando o screenlet RingSensors para monitorar a carga da CPU, mas há mais sensores disponíveis para monitorar do que eu esperava.
Quando vou às configurações para selecionar qual cpu (core) o anel deve monitorar, recebo 5 cpus diferentes para escolher:
Meu processador é um QuadCore, então eu esperaria 4 monitores de CPU, não 5. Se eu verificar / proc / cpuinfo, recebo a contagem esperada:
$ cat /proc/cpuinfo | grep ^processor
processor : 0
processor : 1
processor : 2
processor : 3
Todos os monitores recebem algum tipo de leitura, pois apresentam um valor sempre atualizado:
Tanto o htop quanto o RingSensors têm algum intervalo de atualização, então mesmo que eu tenha os dois medidores na tela simultaneamente quando fiz o screencap, não estou surpreso que o htop e o ringsensors tenham valores diferentes.
Alguém pode me explicar o medidor de CPU extra?
Um dos medidores é a carga média de todos os núcleos ou algo do tipo?
Existe alguma maneira de tentar maximizar um núcleo de cada vez para ver como isso afeta os valores de carga reportados?
EDITAR:
Usando o comando taskset combinado com o comando stress eu consegui enfatizar um núcleo de cada vez e daí eu poderia deduzir que o CPU1-4 representa os núcleos individuais e CPU0 é outra coisa, a agregação de metade dos núcleos ou algo assim.
$ stress -c 1&
[1] 18829
$ taskset -p -c 0 18830
pid 18830's current affinity list: 0-3
pid 18830's new affinity list: 0
$ taskset -p -c 1 18830
pid 18830's current affinity list: 0
pid 18830's new affinity list: 1
$ taskset -p -c 2 18830
pid 18830's current affinity list: 1
pid 18830's new affinity list: 2
$ taskset -p -c 3 18830
pid 18830's current affinity list: 2
pid 18830's new affinity list: 3
Como você pode ver o estresse gerou um processo filho, é por isso que devo definir a afinidade do pid 18830 em vez do 18829.
Por último, se eu exceder dois (ou mais) núcleos simultaneamente, eu também recebo o máximo de CPU0: