常有人建議「現在安裝Ubuntu時,因為電腦的記憶體夠大,所以可以不用設定swap了」(省一點空間?但現在硬碟空間更大了呀!)
自從有人幫忙組裝一台迷你主機(長寬各約15cm,高約5cm),安裝Ubuntu 16.04以後,因為該迷你主機是陽春型,按「暫停」時,只有螢幕關閉,主機風扇等還在運轉,又耗電又吵人(小風扇頻率高),只好想辦法讓Ubuntu「休眠」了。
到網路上查了一下,說Ubuntu要休眠要有夠大的swap(應該大於或等於記憶體),這樣才能容下全部留在記憶體的「東西」吧!---好啦,那前面的建議就有問題了---不能讓PC休眠睡覺去!
幸好,在安裝Ubuntu 16.04時,就留下了3G的空間(老習慣了😆),實際PC上的記憶體是8G---有問題要解決!
檢查和釋放記憶體的方法:(Ctrl+Alt+T 開啟終端機)
- 檢查記憶體:free -m
- 釋放記憶體:
sudo su
echo 3 > /proc/sys/vm/drop_caches - 先檢查 →釋放 →再檢查
首先到網路上查查「休眠」這兩個字跑到哪裡去了,找到了好幾篇,都是一樣,其中這篇「Ubuntu 16.04 開啟休眠功能」說:
因為休眠功能在部分計算機無法正常工作,所以Ubuntu默認是不開啟休眠功能。
要想開啟休眠功能先進行如下測試:
- 先檢查是否有交換分區(swap),如果有確認交換分區至少和實際可用記憶體一樣大。
- 按Ctrl+Alt+T開啟終端
- 輸入 sudo pm-hibernate,↵,測試能否休眠。
- 如果休眠測試無法正常工作,就說明你的計算機無法進行休眠。
- 如果休眠測試可以正常工作,用文字文件新建文件:
/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla添加以下內容後儲存
===========
[ Re-enable hibernate by default in upower ]
Identity = unix-user:*
Action = org.freedesktop.upower.hibernate
ResultActive = yes
[ Re-enable hibernate by default in logind ]
Identity = unix-user:*
Action =org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes
============ - 關閉所有程序,重啟PC。
- 重啟後,右上角電源符號右鍵就有「休眠」選項了。
做了以上工作後,果然可以讓PC休眠了。當然啦,使用電腦一段時間後3G的記憶體是不足的,結果無法休眠(用sudo pm-hibernate試了也一樣),開始的解決方法就是「登出」再登入,再休眠。
再到網上找找有沒有增加swap的方法,整理如下:
- 首先用命令free查看系統內Swap 分區大小:
free -m - 創建一個Swap 文件:
找一個空間足夠的目錄用來存放swap文件:
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
(=增加2.0 GB swap)
把生成的文件轉換成Swap文件:
sudo mkswap -f swapfile - 激活Swap文件:
sudo swapon swapfile
再次查看free -m的結果--應該成功了。
※※※※※※ - 如果要一直保持這個swap(當然要啊!) ,可以把它寫入/etc/fstab文件。
/swap/swapfile /swap swap defaults 0 0 - 如果要卸載這個swap文件,可以進入建立的swap文件目錄。執行下列命令。
sudo swapoff swapfile
- ★這兩天要登出再登入時,發現登出後就卡住了,不能再登入😡,所以增加了swap文件只能休眠,但不能登出,真是有一好沒兩好啊!只能再找看看有沒有其他方法!
所以呢,下次有機會安裝Ubuntu時,記得留下至少記憶體一半(4G)的swap。