Ubuntu 進階優化和調校
出自Ubuntu 正體中文 Wiki
小 (→Ubuntu Tweak 個人化設定調校工具) |
(→Grub Profile) |
||
(2個中途的修訂版本沒有顯示。) | |||
第62行: | 第62行: | ||
會將一些基本的開機動作給"歸檔",之後開機速度會稍微加快,適合在大量移除、新增套件、以及更新kernel之後執行一次: | 會將一些基本的開機動作給"歸檔",之後開機速度會稍微加快,適合在大量移除、新增套件、以及更新kernel之後執行一次: | ||
- | 重開機, > 按ESC > | + | 重開機, > 按ESC > 進入[[GRUB]]選單, Ubuntu開機那行按E編輯 > |
[[圖片:Grubbootmenu.gif]] | [[圖片:Grubbootmenu.gif]] | ||
第74行: | 第74行: | ||
Enter, ESC退出,同一行按"b"繼續開機,'''這次開機會很花時間''',以後就不需要再做一次 (除非 之後有大量移除、新增套件、服務、以及更新kernel) | Enter, ESC退出,同一行按"b"繼續開機,'''這次開機會很花時間''',以後就不需要再做一次 (除非 之後有大量移除、新增套件、服務、以及更新kernel) | ||
- | |||
- | |||
==使用localepurge清除不需要的語言檔== | ==使用localepurge清除不需要的語言檔== | ||
第415行: | 第413行: | ||
- | + | [[Category:配置管理]] | |
- | + | [[Category:歷史文件]] | |
- | [[Category: | + |
當前修訂版本
目錄 |
前言
Ubuntu 作為一個使用者親和力高的作業系統,在設計上就是希望"越少手動調校越好",因此需要考慮到系統的泛用性,必須以"最廣大的使用者群"作為優先考量,其中有些功能都需要較多的硬體資源。
實際上,根據國外Benchmark評測的結果,預設的Ubuntu效能已經不差,以今日的電腦配備來執行它已是綽綽有餘,所以不需要再特別做調整,但如果有需要的人,仍然可以嘗試對它做進階的優化、加速。
因本文提及的優化動作會牽涉到系統變更,也有可能造成系統無法正常工作,因此請在動作執行前,備份重要檔案。
更改置換檔(swap)使用率設定:
swap使用率設定的設定介於0~100 (%) 預設是60, 如果數值越高, (最多100)則在swap工作量會越多,也就越操硬碟。
筆記型電腦的話, 可以考慮將Swapiness設成 20 (考慮到休眠模式), 擁有足夠的記憶體 (1GB +) 的一般桌上型電腦可以考慮設成 10
先備份:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
編輯:
sudo gedit /etc/sysctl.conf
捲到該文件最底部, 加這行:
vm.swappiness=10
儲存離開
重啟sysctl讓設定生效:
sudo sysctl -p
關掉ipv6
sudo gedit /etc/modprobe.d/bad_list
把下面這行貼進去然後儲存關閉:
alias net-pf-10 off
使用readahead
在一兩年前,Linux 核心尚缺乏一個好的的硬碟預讀機制時,桌面系統的使用者若要加速開機的速度,通常得先解決磁碟存取速度的瓶頸問題。 現在有 readahead 這樣的工具可以來預先載入想讀入的檔案,以便提高系統載入的速度。
詳見: http://people.debian.org.tw/~chihchun/2008/09/09/readahead-on-eeepc/
安裝:
sudo apt-get install readahead
不用設定,但Grub需要做Profile,請依照下列步驟:
Grub Profile
會將一些基本的開機動作給"歸檔",之後開機速度會稍微加快,適合在大量移除、新增套件、以及更新kernel之後執行一次:
重開機, > 按ESC > 進入GRUB選單, Ubuntu開機那行按E編輯 >
第一行再按E編輯 >
第一行(kernel)那行最後面加入:
<空格>profile
Enter, ESC退出,同一行按"b"繼續開機,這次開機會很花時間,以後就不需要再做一次 (除非 之後有大量移除、新增套件、服務、以及更新kernel)
使用localepurge清除不需要的語言檔
功能說明:一般人通常都會固定使用一種語文..在 i18n 的架構下 , 各國的語文都會有自己一套 locale data , 這當中最明顯的資料就是軟體翻譯檔案 , 有些軟體會提供多國語文的支援,因此當您安裝完一套軟體之後..該軟體可能也順便加裝了好幾國語文的 locale data 對於使用固定語文的人來說..其他沒用到的 locale data 就佔了硬碟空間,千萬別小看這些翻譯檔案..將很多軟體的各國 locale data 加起來也是很大的... 所以這時候我們就需要 locale data 的清道伕 - localepurge .
安裝:
sudo apt-get install localepurge
裝好會跳出這個畫面:
可用鍵盤上的方向鍵或滑鼠滾輪捲動項目,並以空白鍵選取
只選擇EN_US和zh_TW, zh_TW.EUC-TW, zh_TW.UTF-8
按<TAB> 、<確定>
使用PCMAN trans-purge
trans-purge 顧名思義,這是用來移除系統上無用的多國語言翻譯, 很多人都知道 localepurge,但是系統上可以 purge 的其實還有很多地方
我們只用英文和 zh_TW,但是這些檔案內卻常包含十幾國翻譯, 因此會造成系統載入速度的拖慢,也浪費磁碟空間
desktop-purge 就是用來自動掃瞄系統上的 *.desktop 檔, 然後把其中用不到的翻譯全部刪掉,再存檔回去, 使用方式: 以 root 權限直接執行 desktop-purge, 主要會加速的是 gnome-panel 一類,需要產生選單的程式, 效果很明顯。 我系統上需要載入的設定檔從 2 MB 減為 2xx KB。
mime-purge 是從 mime-database 裡面拿掉用不到的檔案敘述, 主要能加速的對象是檔案管理程式 (對 PCManFM 有效), 使用方式: 以 root 權限直接執行 mime-purge
gconf-purge 會從 gconf 的 schema 檔裡面抽掉無用翻譯,可以從系統上從原本的 20 MB 清除完剩下 1.5 MB,相當可觀, 使用方式: 以 root 權限直接執行 gconf-purge
所有用不到的翻譯會被清除掉 (無法復原), 保留下來的語言是英文以及「目前使用中的 locale」
1. 必要編譯的套件
sudo apt-get install build-essential
OR
sudo apt-get install libglib2.0-dev
下載原始碼:
- http://pcman.sayya.org/desktop-purge.c
- http://pcman.sayya.org/mime-purge.c
- http://pcman.sayya.org/gconf-purge.c
2. 編譯程序:
gcc `pkg-config glib-2.0 --cflags --libs` -o desktop-purge desktop-purge.c
gcc `pkg-config glib-2.0 --cflags --libs` -o mime-purge mime-purge.c
gcc `pkg-config glib-2.0 --cflags --libs` -o gconf-purge gconf-purge.c
3. 安裝程序:
sudo cp desktop-purge /usr/bin/ sudo cp mime-purge /usr/bin/ sudo cp gconf-purge /usr/bin/
4a. 手動清理:
- 注意 Ubuntu 8.10的使用者請勿使用mime-purge! 否則Ubuntu整個檔案關聯都會跑掉 ******
1. 建議優先把家目錄下的.gconf (隱藏的資料夾) 先備份起來
2.把 /usr/share/mime 備份起來
3. 把 家目錄下的".local"(隱藏的資料夾) 備份起來
4. .desktop檔案就不用管了,不會有事的。
開始執行清理:
sudo desktop-purge sudo mime-purge sudo gconf-purge
如果MIME不幸損壞,可以參考以下修複方式:
sudo apt-get install --reinstall shared-mime-info sudo update-mime-database /usr/share/mime 重新登入系統
4b. 自動清理:
讓每次 apt-get 安裝軟件後自動進行清理。建立這個檔案
sudo gedit /etc/apt/apt.conf.d/99-transpurge
貼上以下內容並儲存:
DPkg { Post-Invoke {"if [ $(ps w -p "$PPID" | grep -c remove) != 1 ]; then /usr/bin/desktop-purge > /dev/null; /usr/bin/mime-purge >/dev/null ; /usr/bin/gconf-purge > /dev/null; else exit 0; fi";}; };
警告:無用翻譯在清除後無法還原,若使用後造成系統損壞,作者並不負責。
使用Preload
Preload可以在背景監控你最常用哪些程式,然後事先把那些程式載入快取,這樣當你要執行這些程式時,就可以快速啟動。 ("感覺上"應用程式啟動速度會增快)
安裝
sudo apt-get install preload
不用設定
使用Prelink
prelink 是加快 ELF shared libraries/executables 的載入速度,不算是檔案快取,可以提升應用程式的啟動速度:
安裝
sudo apt-get install prelink
此外在debian及ubuntu下都已有設定檔可定時執行,
sudo gedit /etc/default/prelink
加入
PRELINKING=yes
已有/etc/cron.daily/prelink,如此便會由cron自動執行,除了第一次時間很長外,
後續應該速度都很快,除非你upgrade整個系統所有檔案。
在硬體配備較差的機器上,Prelink所有檔案並不是個好主意,因此可以用手動處理prelink,只針對某些應用做Prelink
可以下如此參數
sudo prelink -avmR
其中參數代表
a 對/etc/prelink.conf 中所紀錄的全部位址進行prelink v 顯示正在處理的內容 m 節省記憶體,他可以讓兩個不會被同時使用的函式庫共用同樣的虛擬位址 R 分配亂數位址,能減輕緩存溢位攻擊的狀況
範例: 只針對 Firefox做prelink
sudo prelink -Rm /usr/lib/firefox-3.0.3
範例: 加入開機自動執行:
sudo gedit /etc/init.d/prelink-fx.sh
加入:
#!/bin/sh sudo prelink -Rm /usr/lib/firefox-3.0.3
儲存、退出 ......
加入開機指令稿,讓他開機時自動prelink
sudo update-rc.d prelink-fx.sh defaults
關閉不需要的Gnome作業階段
登入時取消不必要執行的程式可加快進入桌面的速度。
系統 => 偏好設定 => 作業階段 =>
將不需要的程式取消勾選,例如沒有藍牙的可以取消"藍牙管理員",不用tracker (搜尋索引)可以取消"Tracker",還有"視覺輔助"等等....
關閉不必要的系統服務(Service)
去掉不必要的服務可以減輕系統負載和加快開機速度:
系統=> 管理=> 服務 => 解除鎖定 =>
特別注意: 有些服務關閉會造成開機問題:
以下請不要隨便關閉:
- powernowd
- portmap
- dbus
- gdm
- acpid
- winbind
- acpid
使用sysv-rc-conf關閉更多系統服務(Service)
特別注意: 有些服務關閉會造成系統異常,如果您不熟悉這些服務是什麼,請勿動他,上網查詢明白後再決定是否關閉它:
安裝:
sudo apt-get install sysv-rc-conf
在我們開始搞亂它們之前,我要在這裡引入一些運行等級知識 ....全部開機進程執行順序如下:
- 運行等級 S:開機進程中的第一個運行等級。/etc/init.d/rcS腳本將被調用到開啟並且/etc/rcS.d目錄下的所有進程將被執行。
- 運行等級 1:單用戶模式。/etc/rc1.d目錄下的所有進程將被執行。
- 運行等級 2,3,4,5:在debian系統裡是多用戶環境,可能不包含圖形用戶界面。同樣的,在相應目錄下的進程將被運行。
- 注意** 這和RedHat,SuSE, 以及其它基於RPM的系統不同。
運行等級 0:關閉計算機
運行等級 6:重起計算機
執行:
sudo sysv-rc-conf
上下鍵可以選擇要變更的服務,<SPACE>鍵可以勾選或取消勾選服務,<q>鍵退出
服務說明可以參考:
- http://ubuntuforums.org/showpost.php?p=487138&postcount=1 (英)
- http://kongjian.baidu.com/lonlywalker/blog/item/b4ef4408809c0b950b7b82ed.html (中文簡體)
微調關機和重新啟動速度
以管理員身份開啟檔案總管:
gksu nautilus
瀏覽到 :
/etc/rc0.d /etc/rc6.d
按下"搜尋"鈕,找: "K"
將所有列出來K開頭的 "K0xxxx" 的大寫"K", 全部改名改成小寫"k"
加速EXT3檔案系統
- 注意1: 使用writeback模式要注意,如果系統運行中電源突然關閉 (或reset),有很大的機率丟失硬碟資料
- 注意2: 此設定只適合ext3格式的磁碟分割
- 注意3: 此設定牽涉到修改開機檔和裝置掛載設定檔,因此有無法開機的風險,不適合新手操作,除非使用者知道怎麼用Live CD登入並回覆備份。
EXT3檔案系統有三種日誌模式
- data=journal
- data=orderd
- data=writeback
Ubuntu預設是: "data=orderd",是最保險穩定的日誌模式,但是"data=writeback"模式會較有效率 (但沒有"ordered"那麼萬無一失),如果不介這點的話,可以依照下列方式考慮將預設日誌改為"writeback"
1. 因為將更動到Grub開機選單,所以請備份你的menus.list :
cp /boot/grub/menu.lst /boot/grub/menu.lst.backup
如果無法開機,可以用Live CD進入,掛載/boot,進入/boot/grub,把舊檔拷背回去
2. 編輯menus.list
sudo gedit /boot/grub/menu.lst
- 找到第一行kernel描述
- 後面加入:
<空格> rootflags=data=writeback
最後看起來會類似:
儲存、離開。
3. 修改fstab (開機自動掛載設定檔) :
首先備份fstab
sudo cp /etc/fstab /etc/fstab.backup
編輯fstab
sudo gedit /etc/fstab
現在要加入《data=writeback,noatime》至你的硬碟掛載設定:
Control + F : 找到 《,errors=remount-ro》
然後在"ro"後方加入:
《,data=writeback,noatime》
最後看起來像是:
存檔、離開
4. 執行tune2fs 讓設定生效:
sudo tune2fs -o journal_data_writeback /dev/*ext3硬碟分割代號*
代號可以用以下指令確認:
df -h
檢查看看有沒有套用成功:
sudo tune2fs -l /dev/ext3硬碟分割區代號
重新啟動系統。
sudo reboot now
移除tracker索引
Ubuntu 7.10 之後預裝的tracker索引是類似Google Desktop Search那樣的桌面搜尋工具,它會在閒置時依設定快取檔名、文件內容、網頁/Email內容等等... 可以在瞬間找到想要的文件,但製作文件索引也會消耗系統資源、拖慢速度,如果您不是很需要索引功能,建議可以移除掉它:
終端機輸入:
sudo apt-get remove tracker
以後如果需要,再裝回來:
sudo apt-get install tracker