Eu tenho vários PCs/laptops executando um Ubuntu 20.04 atualizado com atualmente um kernel 5.4.0-74-genérico de 64 bits, conforme fornecido pelos repositórios padrão do Ubuntu. Um deles, um PC bastante comum com CPU Intel i3, leva um pouco mais de 2 minutos para hibernar desde que atualizei de 18.04 para 20.04.
Vários recursos que encontrei sobre a depuração da hibernação cobrem principalmente a ativação ou a falha completa na suspensão, mas não uma suspensão no disco que leva muito tempo. O despertar funciona bem e leva apenas alguns segundos. Como posso descobrir por que demora tanto para hibernar? Existe algo como systemd-analyze blame
hibernação?
Até agora adicionei initcall_debug no_console_suspend
e ele GRUB_CMDLINE_LINUX_DEFAULT
mostra /etc/default/grub
o console, porém, nada é mostrado que explique o longo tempo. Ele mostra "Detected Hardware Unit Hang" para a interface de rede. Mas isso aparece logo no início da hibernação e acho que é um comportamento esperado.
Eu uso systemctl hibernate
para iniciá-lo. Demora 2 minutos até desligar, mesmo quando executado como root no console sem outros usuários logados ou processos de usuário.
Responder1
Meu conselho:
Decidirfaça uma pergunta em askubuntu.come leve isso a sério
;)
Colete dados, reproduza problemas com configurações mínimas e seja específico.Certifique-se de que haja espaço de troca suficiente.O comando
free
fornece a quantidade de RAM ("Mem") e Swap. O total de swap deve ser maior que o total de RAM. Percebi que havia adicionado RAM em algum momento, mas não aumentei o tamanho da minha partição swap.Editar (07/06/2021):A diferença de tamanho foi de aproximadamente 1 GB. Depois de aumentar o tamanho, a hibernação ficou repetidamente mais rápida, mas ainda acho que isso foi um artefato causado por uma mudança na velocidade de gravação do SSD que contém a partição swap. (Veja também o próximo ponto.)Quão rápida deve ser a hibernação?Essencialmente, durante a suspensão no disco, toda a RAM é gravada no disco. A quantidade de RAM e a velocidade de gravação do disco determinam o tempo necessário. Procurei minha partição swap e verifiquei quanto tempo leva para zerá-la usando
dd if=/dev/zero
.dd
relatou uma velocidade de 108 MB/s. Escrever 7 GB levou cerca de 65s. Meu PC tem 8 GB. Portanto, devo esperar que a hibernação demore pelo menos um minuto.Tentedepurar removendo peçasdo sistema: Desconecte o hardware que não é necessário. Hiberne logo após uma nova inicialização, com ou sem login primeiro.
Adicionar
initcall_debug no_console_suspend
para a linha de comando do kernel conforme descrito na pergunta.
Por enquanto, acho que os motivos para minha hibernação lenta são: adicionei RAM (então a hibernação demora mais), esqueci de aumentar o espaço de troca para corresponder à RAM adicionada (eu tinha 7G de troca, mas 8G de RAM) e a velocidade de gravação de o SSD degradou-se com o tempo (pelo menos por um fator de 2).
Leitura adicional e recomendada: