Solução para INFO: task blocked for more than 120 seconds

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #12802
    Luis FatorBinario
    Luis FatorBinario
    Administrador

    Ao analisar os logs de sistema você acaba deparando-se com a mensagem de aviso INFO: task <process>:<pid> blocked for more than 120 seconds. Isso pode começar a aparecer mesmo em sistemas que nunca apresentaram o problema.

    Por padrão o Linux usa 40% da memória disponível para cache de sistema, gravando este cache em disco assim que liberado pelos processos. Mas o que pode acontecer é haver muitas requisições, seja por alguma falha nos processos ou até mesmo de hardware, floodando essa reserva e fazendo com que o sistema tente descarregar o caching de maneira quase instantaneamente, gerando problemas de I/O (gravação em disco).

    Para descarregar o cache o sistema tem um tempo limite default de 120 segundos, e caso não consiga grava o erro nos logs. Se nada for feito para sanar a questão o sistema começa a enfileirar as requisições de gravação tornando tudo lento e agravando ainda mais o problema.

    Então nós temos a seguinte situação: A memória flooda com requisições problemáticas e tenta descarregar no disco, mas este processo também trava por causa da quantidade de requisições. O que podemos fazer neste caso é limitar o percentual permitido de cache memória para gravar esse tipo de requisição.

    Digite os seguintes comandos:

    > sysctl -w vm.dirty_ratio=10

    > sysctl -w vm.dirty_background_ratio=5

    > sysctl -p

    Note que os avisos deverão cessar.

     

    O fix acima é provisório, e na próxima vez que o sistema for reiniciado perderá os valores retornando ao original. Para torná-lo permanente edite o arquivo: /etc/sysctl.conf e adicione as linhas abaixo ao final.

    vm.dirty_ratio = 10
    
    vm.dirty_background_ratio = 5

    Salve e pronto.

Visualizando 1 post (de 1 do total)

Você deve fazer login para responder a este tópico.