2019年8月25日 星期日

談一下 Ubuntu 16.04中swap的設定及電腦休眠


  常有人建議「現在安裝Ubuntu時,因為電腦的記憶體夠大,所以可以不用設定swap了」(省一點空間?但現在硬碟空間更大了呀!)
 
  自從有人幫忙組裝一台迷你主機(長寬各約15cm,高約5cm),安裝Ubuntu 16.04以後,因為該迷你主機是陽春型,按「暫停」時,只有螢幕關閉,主機風扇等還在運轉,又耗電又吵人(小風扇頻率高),只好想辦法讓Ubuntu「休眠」了。
 
  到網路上查了一下,說Ubuntu要休眠要有夠大的swap(應該大於或等於記憶體),這樣才能容下全部留在記憶體的「東西」吧!---好啦,那前面的建議就有問題了---不能讓PC休眠睡覺去!
 
  幸好,在安裝Ubuntu 16.04時,就留下了3G的空間(老習慣了😆),實際PC上的記憶體是8G---有問題要解決
 
  檢查和釋放記憶體的方法:(Ctrl+Alt+T 開啟終端機)

  1. 檢查記憶體:free -m
  2. 釋放記憶體:
    sudo su
    echo 3 > /proc/sys/vm/drop_caches
  3. 先檢查 →釋放 →再檢查

 
  首先到網路上查查「休眠」這兩個字跑到哪裡去了,找到了好幾篇,都是一樣,其中這篇「Ubuntu 16.04 開啟休眠功能」說:


因為休眠功能在部分計算機無法正常工作,所以Ubuntu默認是不開啟休眠功能。 要想開啟休眠功能先進行如下測試:

  1. 先檢查是否有交換分區(swap),如果有確認交換分區至少和實際可用記憶體一樣大。
  2. 按Ctrl+Alt+T開啟終端
  3. 輸入 sudo pm-hibernate,↵,測試能否休眠。
  4. 如果休眠測試無法正常工作,就說明你的計算機無法進行休眠。
  5. 如果休眠測試可以正常工作,用文字文件新建文件:
    /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
    ============
  6. 關閉所有程序,重啟PC。
  7. 重啟後,右上角電源符號右鍵就有「休眠」選項了。

  做了以上工作後,果然可以讓PC休眠了。當然啦,使用電腦一段時間後3G的記憶體是不足的,結果無法休眠(用sudo pm-hibernate試了也一樣),開始的解決方法就是「登出」再登入,再休眠。
 
  再到網上找找有沒有增加swap的方法,整理如下:

  1. 首先用命令free查看系統內Swap 分區大小:
    free -m
  2. 創建一個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
  3. 激活Swap文件:
     sudo swapon swapfile
    再次查看free -m的結果--應該成功了。
    ※※※※※※
  4. 如果要一直保持這個swap(當然要啊!) ,可以把它寫入/etc/fstab文件。
    /swap/swapfile /swap swap defaults 0 0
  5. 如果要卸載這個swap文件,可以進入建立的swap文件目錄。執行下列命令。
    sudo swapoff swapfile
  • 這兩天要登出再登入時,發現登出後就卡住了,不能再登入😡,所以增加了swap文件只能休眠,但不能登出,真是有一好沒兩好啊!只能再找看看有沒有其他方法!

  所以呢,下次有機會安裝Ubuntu時,記得留下至少記憶體一半(4G)的swap。

沒有留言:

張貼留言