O desligamento leva 10 minutos quando a troca está ativada

1

Há mais de um ano, tenho um problema com o desligamento. Aqui estão as condições que precisam ser atendidas:

  • A troca está ativada
  • O swap é usado: tenho 8GB e quando começo a usar acima de 4 ~ 5GB, começo a ver coisas em swap. Geralmente acontece quando eu executo máquinas virtuais ou grandes jogos.

Nestes casos, quando desligo o PC, vejo o seguinte:

  • A maior parte do desligamento ocorre
  • Não faça nada por minutos, até 10 minutos ou mais
  • Finalmente, encerre

Claro, neste ponto eu uso Alt + SysRq para sincronizar, montar somente leitura e forçar o desligamento.

Com o swap desativado, eu não tenho esse problema, mas posso ficar sem memória (o que trava o Linux por um minuto antes do OOM decidir matar alguém, o que é outro problema).

Alguém sabe qual poderia ser o problema? Ou como posso depurar isso?

Eu tentei fazer o rastreamento de pilha com Alt + SysRq , mas durante o desligamento a resolução é baixa e com quatro núcleos, a maior parte do traço está fora da tela, então não consigo descobrir onde ele está travando.

P.S. Não tenho certeza se fui afetado por isso em 14.04, mas tenho certeza de que aconteceu antes do systemd e depois dele.

Editar:

Bobo, posso rolar para trás e ver os registros de desligamento. Se eu imprimir um rastreamento de pilha quando o desligamento ficar travado, três núcleos estarão em cupidle_enter_state() ou algo assim, e o encadeamento que imprime o rastreamento de pilha tem esse traço:

Editar:

Eupenseiemfazerumswapoffantesdodesligamento,paraquetalvezoproblemadesapareça.Issomostrouqueatrocaestádesativadaaumataxasuperlentade8MB/s.Podeserporissoqueodesligamentofoitãolento,talvezestivessefazendoumswapoff. swapoff sendo lento parece afetar muitas pessoas . Vou investigar mais e escrever uma resposta se conseguir algo conclusivo.

    
por Shahbaz 31.01.2016 / 16:27

0 respostas