在几天/几个月的时间里,我一直试图在我的笔记本电脑 - 东芝卫星 L50-B-1K6 上找到高内存使用期间的休眠解决方案。我在台式电脑上也遇到类似的问题。
我的硬件配置是:
$ 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
可用 RAM 内存为 4 GB。 SWAP 分区为 9 GB。
休眠主要取决于您的硬件配置(当然我的错误是购买东芝)和内核版本。
我当前的内核版本是:
4.7.2.1
我对旧内核版本(4.1、4.4、4.6,...)也有类似的问题。
尝试了各种休眠方法均无效:
$ systemctl hibernate
$ sudo sh -c "echo disk > /sys/power/state"
$ pm-hibernate
$ s2disk
- TuxOnIce kernel
问题总是相似的 - 当我的 RAM 使用率较低时,例如 500MB (12.5 %),休眠会成功。
但是当我启动 Firefox(或其他一些高 RAM 使用率程序 - RAM 的 50%)并想要休眠时,我面临以下问题。
在恢复(解冻)期间,交换空间会累积,休眠最终会失败 - 经过 3-7 次休眠后。
系统将成功休眠,但是当我尝试打开笔记本电脑时,它会重新启动而不是恢复(解冻)。
摘要: 交换空间的使用量会随着每次休眠而增加,您的计算机会变慢并且休眠最终会失败 - 重新启动而不是恢复。
此问题还可以在以下位置找到:
https://ubuntuforums.org/showthread.php?t=1796851
https://www.kubuntuforums.net/showthread.php?59209-swap-gradually-filling-after-hibernate-resume
我将发布此问题的解决方法,并希望您发布您的调整 - 您如何设法解决此问题。
答案1
当交换累积时,您的 PC/笔记本电脑会变得缓慢,并且休眠最终会失败,因为没有足够的交换空间用于休眠。
所以解决方案是从休眠返回后手动清空交换分区(https://ubuntuforums.org/showthread.php?t=1796851&p=11011907#post11011907)。
我在 my 中添加了函数~/.bashrc
来处理这个问题:
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
}
警告 -swapoff
可能会非常慢!
swapoff 怎么这么慢?
当我想休眠时,我只需打开终端并运行:
$ nk-hibernate
从休眠恢复后,交换区被清理(swapoff),然后再次激活(swapon)以便再次休眠。
如果有人知道更好的解决方案请分享。
编辑:正如@sourcejedi 提到的,这并不能完全解决问题。我遇到过笔记本电脑在一段时间(10 次以上休眠)后重新启动的情况。这只会加快从休眠状态恢复后的机器速度