Como solucionar problemas de carga alta, quando não há processos óbvios [duplicados]

12

Estou executando o Ubuntu 13.10 em um laptop. Recentemente, depois de acordar do sono, notei que o computador estava bem quente, chequei o topo e descobri uma média de carga de 1,00. Eu desliguei o Chrome, vários daemons, sem efeito.

Eu reiniciei e liguei um terminal e verifiquei o topo novamente, e observei a carga aumentar rapidamente para 1,75, e lentamente estabilizar para cerca de 1,0 a 1,2:

top - 09:49:17 up 36 min,  2 users,  load average: 1.01, 1.10, 1.01
Tasks: 267 total,   1 running, 266 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.9 us,  0.4 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8069288 total,  2885572 used,  5183716 free,   123652 buffers
KiB Swap:  7711332 total,        0 used,  7711332 free,  1661816 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                                                        
 1420 root      20   0  589m 144m 131m S   3.4  1.8   0:36.49 Xorg                                                                                                                                           
 6233 user1    20   0  986m  83m  31m S   2.7  1.1   0:19.89 chrome                                                                                                                                         
 3708 user1    20   0  749m  19m  12m S   1.8  0.3   0:06.58 gnome-terminal                                                                                                                                 
 3526 user1    20   0 1350m  67m  28m S   1.4  0.9   0:26.19 compiz                                                                                                                                         
 4014 user1    20   0 1022m 126m  52m S   1.1  1.6   0:44.34 chrome                                                                                                                                         

Eu verifiquei / proc / loadavg manualmente, mesma história:

sudo cat /proc/loadavg
1.20 1.16 0.99 3/614 6254

ps auxwwwf não mostra nenhum processo consumindo mais de 6.0% da CPU.

iostat:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.63    0.00    0.13    0.00    0.00   99.25

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

free -m:

             total       used       free     shared    buffers     cached
Mem:          7880       2841       5039          0        120       1651
-/+ buffers/cache:       1068       6811
Swap:         7530          0       7530

É evidente que algum processo está saturando a CPU, mas parece não aparecer na lista de processos. Algum tipo de verificador de sistema de arquivos Linux oculto? Rootkit? Alguma idéia de como encontrar o processo em questão?

    
por Allyl Isocyanate 19.05.2014 / 15:54

2 respostas

13

A média de carga não significa o que você acha que significa. Não se trata de uso instantâneo da CPU, mas de quantos processos estão aguardando para serem executados. Geralmente é por causa de muitas coisas que querem CPU, mas nem sempre. Um culpado comum é um processo aguardando um disco de E / S ou uma rede.

Tente executar ps -e v e procurando por sinalizadores de estado do processo.

state    The state is given by a sequence of characters, for example, "RWNA". The      first character indicates the run state of the process:
D    Marks a process in disk (or other short term, uninterruptible) wait.
I    Marks a process that is idle (sleeping for longer than about 20 seconds).  
L    Marks a process that is waiting to acquire a lock.
R    Marks a runnable process.
S    Marks a process that is sleeping for less than about 20 seconds.
T    Marks a stopped process.
W    Marks an idle interrupt thread.
Z    Marks a dead process (a "zombie").

Isso é da% man_de% manpage, portanto você pode encontrar mais detalhes - ps e R processos são provavelmente de interesse particular.

    
por 19.05.2014 / 16:38
2

A menos que estejamos falando de um computador há 20 anos, uma carga de 1.0 não está saturando seu laptop.

  • Primeiro, leia sobre as médias de carga novamente. 1.0 significaria que você tem uma única tarefa em sua fila de execução aguardando recursos.
  • Agora cat /proc/cpuinfo . Veja o número de CPUs listadas lá? Essa é a carga total que você precisa atingir para atingir a saturação de carga baseada na CPU.

O que importa mais é quanta energia sua CPU (e outros dispositivos) estão consumindo. Os laptops conservam a energia, desligando dispositivos desnecessários ou consumindo menos energia quando não são necessários, especialmente no caso de uma CPU.

    
por 19.05.2014 / 16:17

Tags