Alta carga de CPU no Linux embarcado do meu roteador

2

Espero que, desde que essa questão se refira ao Linux, possa ser respondida aqui:

Eu tenho um roteador DSL da Observa Telecom, modelo BHS-RTA :

Modem Name :    BHS_RTA
Serial Number : D861940E5088
Time and Date : 2015-12-13 01:30:37
HardwareVersion :   BHS_RTA_R1A
SoftwareVersion :   BHS_RTA_ES_050
Firmware Version :  1.1.3

Este dispositivo apresenta um Linux incorporado , por isso estou verificando o uso da CPU para detectar possíveis sobrecargas:

~ $ top
Mem: 19360K used, 4544K free, 0K shrd, 1444K buff, 5240K cached
Load average: 2.04 2.18 2.18

Se eu entendi corretamente o significado do conceito Usuage da CPU (load average), a menos que meu roteador tenha uma CPU de 2 núcleos, um valor de 2 ou acima indica algum tipo de sobrecarga no sistema. Mas a varredura foi realizada em baixa velocidade de internet (sem downloads / uploads pesados).

Eu repeti o teste com outro roteador cujo modelo é ZXHN_H108N firmware versão 2.1.1 com baixa velocidade de internet (sem downloads / uploads pesados):

~ $ top
Mem: 19036K used, 37504K free, 0K shrd, 1560K buff, 5616K cached
Load average: 2.04 2.17 1.83

E este é o teste com um D-Link DSL-2640B Versão do firmware: EU_2.04 router sob carga pesada (uTorrent na velocidade máxima de download):

# top
Mem: 30248K used, 30716K free, 0K shrd, 3200K buff, 10828K cached
Load average: 0.48, 0.35, 0.29    (State: S=sleeping R=running, W=waiting)

Minha pergunta, desde que eu não acredito que um roteador tão simples tenha uma CPU multi-core, é:

  • De acordo com o relatório da ferramenta top , posso dizer que o valor médio da carga de 2 indica que há alguma sobrecarga em meus roteadores?
  • Existe alguma coisa que eu possa configurar para resolver isso? Talvez algum processo de matança de solução temporal a cada reinicialização?
  • Quais poderiam ser as conseqüências do software dessa sobrecarga? Talvez o dispositivo desligue?

Mais detalhes:

  • Sempre que eu repito os testes top nos roteadores DSL aparentemente sobrecarregados (o primeiro e o segundo exemplos acima), os valores não são muito diferentes: 1.90, 2.05, 2.15 ... etc.
  • Todos os testes foram realizados com apenas 1 computador (PC de mesa) conectado aos roteadores DSL.
  • Não estou usando serviços de VPN ou VLAN com esses roteadores. Apenas algum encaminhamento de porta trivial.
  • Parece que todos os firmwares estão em sua versão mais recente .

% da CPU permanece baixa (perto de 0%). O único processo que usa para subir um pouco é logic . Exemplo:

Mem: 21956K used, 1948K free, 0K shrd, 1096K buff, 6088K cached
Load average: 2.34 2.29 2.29
  PID USER     STATUS   VSZ  PPID %CPU %MEM COMMAND
  584 root     RW      4660   583 22.9 19.4 logic
 3284 root     RW      1908  1927  0.5  7.9 top
 1774 root     SW      1908   581  0.1  7.9 telnetd
  619 root     DW      1504     1  0.1  6.2 adslstart
 2644 root     SW       848   583  0.1  3.5 radvd
  596 root     SW      2672     1  0.0 11.1 mini_httpd
  581 root     SW      1916     1  0.0  7.9 inetd
    1 root     SW      1908     0  0.0  7.9 init
 1926 root     SW      1908  1775  0.0  7.9 sh
  610 root     SW      1908     1  0.0  7.9 sh
 1927 root     SW      1908  1926  0.0  7.9 sh
  582 root     SW      1900     1  0.0  7.9 dropbear
  583 root     SW      1856     1  0.0  7.7 pc
 1775 root     SW      1848  1774  0.0  7.7 cmd
 2487 root     SW      1596   583  0.0  6.6 pppd
  587 root     SW      1512   583  0.0  6.3 ip6aac
  586 root     SW      1504   583  0.0  6.2 ramon
  585 root     SW      1504   583  0.0  6.2 ip6mon
  622 root     DW      1504     1  0.0  6.2 adslstart
 2645 root     SW      1480   583  0.0  6.1 dhcp6s
^C966 root     SW      1288  1911  0.0  5.3 3g-mngr
    
por Sopalajo de Arrierez 13.12.2015 / 02:20

1 resposta

2

Na sua última listagem top , você vê dois adslstart com D estado do processo - esse é o seu culpado. Por algum motivo, ele fica dentro do modo kernel, e é por isso que o kernel aumenta o Load Average em seus roteadores. É um sinal de buggy firmware e, na verdade, provavelmente, um driver de dispositivo de fornecedor buggy ou algo parecido, a menos que seus roteadores fazem um disco rígido / IO de armazenamento flash (o que é improvável). A carga real da CPU (e calor desperdiçado) está próxima de zero se você não vir mais nenhum processo em execução.

Talvez o adslstart fale de fato com o dispositivo, mas ainda não é uma coisa certa. O kernel é inteligente o suficiente para dizer quanto tempo um processo está no modo kernel: se você constantemente ver o Load Average não cair abaixo de 2.00, então esses dois processos provavelmente ficarão para sempre.

Se você não puder / desejar não substituir o firmware por algo mais razoável, ou se não houver firmware alternativo para seus dispositivos, isso não poderá ser corrigido, a menos que você chame o fabricante e explique-os detalhadamente como eles o estragaram.

Mas se um dispositivo não funcionar mal com este firmware (não redefine, trava ou nega o serviço ao usuário), então é seguro executá-lo e simplesmente esquecer.

    
por 13.12.2015 / 04:32