Por que a continuação da hibernação leva 10 minutos e como evitar isso?

1

Estou executando o XUbuntu 16.04 com kernel 4.4.0-116-generic (mas o mesmo vale para versões anteriores) e 16 GB de RAM. Estou usando um disco rígido "tradicional" (sem SSD) e meu swappiness é 0 (RAM raramente está cheio).

Eu tenho experimentado o seguinte com a hibernação: a hibernação propriamente dita leva menos de 2 minutos, mas a retomada demora muito mais tempo até que os aplicativos sejam responsivos (hoje demorou mais de 10 minutos para chegar ao compartimento de luz) prompt).

Eu não acho que isso seja utilizável (leva mais tempo para sair da hibernação do que iniciar uma nova sessão e reabrir os programas).

Como posso melhorar o desempenho? Eu sou o único que está passando por esses problemas?

Verdade, o uso de memória agora é de 8,8 GB, mas o que me incomoda é a discrepância entre os tempos de hibernação e retomada. Eu entendo de outras questões que pode ser porque durante a hibernação, o kernel congela todos os processos e despeja a RAM em bloco para trocar, enquanto em continuação, permite que os processos solicitem suas páginas em swap.

Esta é uma explicação válida? Em caso afirmativo, por que isso é feito, pois a leitura de blocos grandes de um disco rígido é mais rápida que acessos aleatórios? Posso configurar a hibernação para não prosseguir dessa maneira? A pergunta "Restaurando na memória / página trocada estado no currículo da hibernação " parece relacionado, mas eu não sei o suficiente de páginas para realmente entender se o que eles fazem (" tome nota das tags que rotulam quais páginas estão no disco e na RAM, então restaure exatamente estado no currículo ") é útil e eu também não sei como fazê-lo.

    
por ysalmon 13.03.2018 / 09:21

1 resposta

0

Eu acho que suas experiências são muito comuns para o hibernação aka. suspender para o disco , especialmente ao usar um disco giratório.

De a documentação do kernel , há uma solução alternativa mencionada que parece estar relacionada ao idéia do link que você postou. Se eu acertasse, isso apenas esvaziaria a troca de uma só vez, em vez de passo a passo no currículo. Mas ainda tem que ler todo o swap usado e pode levar algum tempo.

Q: After resuming, system is paging heavily, leading to very bad interactivity.

A: Try running

cat /proc/[0-9]/maps | grep / | sed 's:. /:/:' | sort -u | while read file do test -f "$file" && cat "$file" > /dev/null done

after resume. swapoff -a; swapon -a may also be useful.

O que você pode querer testar é suspend-to-ram ou suspend-to-both que é muito bom explicado no Arch Wiki . Basicamente:

  • suspend-to-ram não desliga o computador, mas o coloca em modo de economia de energia. Se a bateria estiver esgotada, o estado é perdido e pode levar a problemas
  • suspend-to-both é semelhante a suspend-to-ram , mas também salva o estado em swap, o que torna possível retomar após o esgotamento da bateria

Dependendo do seu ambiente, como o método de suspensão / hibernação é iniciado, você pode configurar isso, por exemplo, no XFCE com a GUI xfce4-power-manager .

    
por 13.03.2018 / 14:13