Problemas de hibernação no laptop / PC durante alto uso de RAM

2

Durante vários dias / meses eu estava tentando encontrar a solução para a hibernação durante o uso de alta RAM no meu laptop - Toshiba Satellite L50-B-1K6. Estou enfrentando problemas semelhantes no meu PC desktop.

Minha configuração de hardware é:

$ inxi -Fx
Machine:   System: TOSHIBA (portable) product: SATELLITE L50-B v: PSKTCE-02G009Y4
           Mobo: Type2 - Board Vendor Name1 model: Type2 - Board Product Name1 v: Type2 - Board Version
           Bios: INSYDE v: 1.70 date: 08/14/2014
Battery    BAT1: charge: 7.2 Wh 29.5% condition: 24.2/30.0 Wh (81%) model: LGC PA5186U-1B status: Discharging
CPU:       Dual core Intel Core i5-4210U (-HT-MCP-) cache: 3072 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 9580
           clock speeds: max: 2700 MHz 1: 1697 MHz 2: 1615 MHz 3: 1279 MHz 4: 1700 MHz
Graphics:  Card-1: Intel Haswell-ULT Integrated Graphics Controller bus-ID: 00:02.0
           Card-2: Advanced Micro Devices [AMD/ATI] Jet PRO [Radeon R5 M230] bus-ID: 09:00.0
           Display Server: X.Org 1.17.4 driver: intel Resolution: [email protected]
           GLX Renderer: Mesa DRI Intel Haswell Mobile GLX Version: 3.0 Mesa 12.0.1 Direct Rendering: Yes
Audio:     Card-1 Intel 8 Series HD Audio Controller driver: snd_hda_intel bus-ID: 00:1b.0
           Card-2 Intel Haswell-ULT HD Audio Controller driver: snd_hda_intel bus-ID: 00:03.0
           Sound: Advanced Linux Sound Architecture v: k4.7.2-1-MANJARO
Network:   Card-1: Intel Wireless 3160 driver: iwlwifi bus-ID: 07:00.0
           IF: wlp7s0 state: up mac: 30:3a:64:ef:d2:29
           Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller port: 4000 bus-ID: 08:00.0
           IF: N/A state: N/A speed: N/A duplex: N/A mac: N/A
Drives:    HDD Total Size: 1000.2GB (3.8% used) ID-1: /dev/sda model: HGST_HTS541010A9 size: 1000.2GB
Partition: ID-1: / size: 19G used: 13G (69%) fs: ext4 dev: /dev/sda11
           ID-2: /home size: 29G used: 15G (54%) fs: ext4 dev: /dev/sda12
           ID-3: swap-1 size: 9.01GB used: 0.00GB (0%) fs: swap dev: /dev/sda1
Sensors:   System Temperatures: cpu: 46.0C mobo: N/A gpu: N/A
           Fan Speeds (in rpm): cpu: N/A

A memória RAM disponível é de 4 GB. A partição SWAP é de 9 GB.

A hibernação depende principalmente da sua configuração HW (meu erro foi comprar a Toshiba, é claro) e da versão do kernel.

Minha versão atual do kernel é:

4.7.2.1

Também tive problemas semelhantes com as versões mais antigas do kernel (4.1, 4.4, 4.6, ...).

Tentei vários métodos de hibernação sem sorte:

$ systemctl hibernate
$ sudo sh -c "echo disk > /sys/power/state"
$ pm-hibernate
$ s2disk
- TuxOnIce kernel

O problema é sempre similar - o hibernate é bem-sucedido quando meu uso de RAM é baixo, por exemplo, 500MB (12,5%).

Mas quando eu inicio o firefox (ou algum outro programa de uso de RAM alto - 50% da RAM) e quero hibernar, estou enfrentando o seguinte problema.

Durante o reinício (descongelamento), o espaço de troca é acumulado e a hibernação eventualmente falha - após 3-7 hibernações.

O sistema irá hibernar com sucesso, mas quando eu tento ligar o laptop ele reinicia em vez de continuar (descongelar).

Resumo: O uso de troca está aumentando a cada hibernação, sua máquina se torna lenta e a hibernação eventualmente falha - reinicie em vez de continuar.

Esse problema também pode ser encontrado em: link
link

Publicarei minha solução alternativa para esse problema e espero que você poste seus ajustes - como você conseguiu corrigir isso.

    
por nexayq 18.09.2016 / 11:25

1 resposta

0

Quando a troca se acumula, seu PC / laptop fica lento e a hibernação eventualmente falha, porque não há espaço suficiente para SWAP para hibernação.

Portanto, a solução é esvaziar manualmente a partição de swap após o retorno da hibernação ( link ) .

Adicionei a função no meu ~/.bashrc para lidar com isso:

function nk-hibernate() {
    sudo sh -c "echo disk > /sys/power/state"
    # setsid i3lock -c 117864 # lock screen with tool of your choice
    sudo swapoff -a
    sudo swapon -a
}

Aviso - swapoff pode ser muito lento! Como pode a troca ser tão lenta?

Quando quero hibernar, apenas abro o terminal e corro:

$ nk-hibernate

Depois de sair da hibernação, a troca é limpa (troca) e novamente ativada (swapon) para voltar a hibernar.

Se alguém souber de uma solução melhor, compartilhe.

EDITAR : Como o @sourcejedi mencionou, isso não resolve o problema completamente. Eu tive a situação onde o laptop reinicia após algum período (10 + hibernações). Isso apenas acelera a máquina após a retomada do modo de hibernação

    
por 18.09.2016 / 11:33