Ubuntu 進階優化和調校
出自Ubuntu 正體中文 Wiki
(新頁面: ==前言== Ubuntu 作為一個使用者親和力高的作業系統,在設計上就是希望"越少手動調校越好",因此需要考慮到系統的泛用性,必須以"最廣大的...) |
|||
第6行: | 第6行: | ||
'''因本文提及的優化動作會牽涉到系統變更,也有可能造成系統無法正常工作,因此請在動作執行前,備份重要檔案。''' | '''因本文提及的優化動作會牽涉到系統變更,也有可能造成系統無法正常工作,因此請在動作執行前,備份重要檔案。''' | ||
+ | |||
==加速EXT3檔案系統== | ==加速EXT3檔案系統== | ||
第72行: | 第73行: | ||
重新啟動系統。 | 重新啟動系統。 | ||
sudo reboot now | sudo reboot now | ||
+ | |||
第97行: | 第99行: | ||
sudo sysctl -p | sudo sysctl -p | ||
+ | |||
+ | |||
==關掉ipv6== | ==關掉ipv6== | ||
第107行: | 第111行: | ||
[[圖片:Bad list ipv6.png]] | [[圖片:Bad list ipv6.png]] | ||
+ | |||
+ | |||
+ | ==使用readahead== | ||
+ | |||
+ | 在一兩年前,Linux 核心尚缺乏一個好的的硬碟預讀機制時,桌面系統的使用者若要加速開機的速度,通常得先解決磁碟存取速度的瓶頸問題。於是得依賴如 readahead 這樣的工具來預先載入想讀入的檔案,以便提高系統載入的速度。 | ||
+ | |||
+ | 詳見: http://people.debian.org.tw/~chihchun/2008/09/09/readahead-on-eeepc/ | ||
+ | |||
+ | 安裝: | ||
+ | |||
+ | sudo apt-get install readahead | ||
+ | |||
+ | 不用設定,但Grub需要做Profile,請依照下列步驟: | ||
+ | |||
==Grub Profile== | ==Grub Profile== | ||
第124行: | 第142行: | ||
Enter, ESC退出,同一行按"b"繼續開機,'''這次開機會很花時間''',以後就不需要再做一次 (除非 之後有大量移除、新增套件、服務、以及更新kernel) | Enter, ESC退出,同一行按"b"繼續開機,'''這次開機會很花時間''',以後就不需要再做一次 (除非 之後有大量移除、新增套件、服務、以及更新kernel) | ||
+ | |||
+ | |||
==使用localepurge清除不需要的語言檔== | ==使用localepurge清除不需要的語言檔== | ||
第209行: | 第229行: | ||
'''警告:無用翻譯在清除後無法還原,若使用後造成系統損壞,作者並不負責。''' | '''警告:無用翻譯在清除後無法還原,若使用後造成系統損壞,作者並不負責。''' | ||
+ | |||
+ | |||
+ | == 使用Preload == | ||
+ | |||
+ | Preload可以在背景監控你最常用哪些程式,然後事先把那些程式載入快取,這樣當你要執行這些程式時,就可以快速啟動。 ("感覺上"應用程式啟動速度會增快) | ||
+ | |||
+ | 安裝 | ||
+ | sudo apt-get install preload | ||
+ | |||
+ | 不用設定 | ||
+ | |||
+ | |||
+ | == 使用Prelink == | ||
+ | |||
+ | prelink 是加快 ELF shared libraries/executables 的載入速度,不算是檔案快取,可以提升應用程式的啟動速度: | ||
+ | |||
+ | 安裝 | ||
+ | sudo apt-get install prelink | ||
+ | |||
+ | |||
+ | 其中參數代表 | ||
+ | |||
+ | a 對/etc/prelink.conf 中所紀錄的全部位址進行prelink | ||
+ | v 顯示正在處理的內容 | ||
+ | m 節省記憶體,他可以讓兩個不會被同時使用的函式庫共用同樣的虛擬位址 | ||
+ | R 分配亂數位址,能減輕緩存溢位攻擊的狀況 | ||
+ | |||
+ | 此外在debian及ubuntu下都已有設定檔可定時執行, | ||
+ | |||
+ | sudo gedit /etc/default/prelink | ||
+ | 加入 | ||
+ | PRELINKING=yes | ||
+ | |||
+ | 已有/etc/cron.daily/prelink,如此便會由cron自動執行,除了第一次時間很長外, | ||
+ | |||
+ | 後續應該速度都很快,除非你upgrade整個系統所有檔案。 | ||
+ | |||
+ | 在硬體配備較差的機器上,Prelink所有檔案並不是個好主意,因此可以用手動處理prelink,只針對某些應用做Prelink | ||
+ | |||
+ | 可以下如此參數 | ||
+ | |||
+ | sudo prelink -avmR | ||
+ | |||
+ | 範例: 只針對 Firefox做prelink | ||
+ | |||
+ | sudo prelink -Rm /usr/lib/firefox-3.0.3 | ||
+ | |||
+ | 範例: 加入開機自動執行: | ||
+ | |||
+ | sudo gedit /etc/init.d/prelinkfx.sh | ||
+ | |||
+ | 加入: | ||
+ | |||
+ | #!/bin/sh | ||
+ | sudo prelink -Rm /usr/lib/firefox-3.0.3 | ||
+ | |||
+ | 加入開機指令稿 | ||
+ | |||
+ | sudo update-rc.d prelinkfx.sh defaults |
在2008年11月7日 (五) 14:51所做的修訂版本
目錄 |
前言
Ubuntu 作為一個使用者親和力高的作業系統,在設計上就是希望"越少手動調校越好",因此需要考慮到系統的泛用性,必須以"最廣大的使用者群"作為優先考量,其中有些功能都需要較多的硬體資源。
實際上,根據國外Benchmark評測的結果,預設的Ubuntu效能已經不差,以今日的電腦配備來執行它已是綽綽有餘,所以不需要再特別做調整,但如果有需要的人,仍然可以嘗試對它做進階的優化、加速。
因本文提及的優化動作會牽涉到系統變更,也有可能造成系統無法正常工作,因此請在動作執行前,備份重要檔案。
加速EXT3檔案系統
- 注意1: 此設定只適合ext3格式的磁碟分割
- 注意2: 此設定牽涉到修改開機檔和裝置掛載設定檔,因此有無法開機的風險,不適合新手操作,除非使用者知道怎麼用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
更改置換檔(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.Big5, zh_TW.Big5.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. 手動清理:
sudo desktop-purge sudo mime-purge sudo gconf-purge
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
其中參數代表
a 對/etc/prelink.conf 中所紀錄的全部位址進行prelink v 顯示正在處理的內容 m 節省記憶體,他可以讓兩個不會被同時使用的函式庫共用同樣的虛擬位址 R 分配亂數位址,能減輕緩存溢位攻擊的狀況
此外在debian及ubuntu下都已有設定檔可定時執行,
sudo gedit /etc/default/prelink
加入
PRELINKING=yes
已有/etc/cron.daily/prelink,如此便會由cron自動執行,除了第一次時間很長外,
後續應該速度都很快,除非你upgrade整個系統所有檔案。
在硬體配備較差的機器上,Prelink所有檔案並不是個好主意,因此可以用手動處理prelink,只針對某些應用做Prelink
可以下如此參數
sudo prelink -avmR
範例: 只針對 Firefox做prelink
sudo prelink -Rm /usr/lib/firefox-3.0.3
範例: 加入開機自動執行:
sudo gedit /etc/init.d/prelinkfx.sh
加入:
#!/bin/sh sudo prelink -Rm /usr/lib/firefox-3.0.3
加入開機指令稿
sudo update-rc.d prelinkfx.sh defaults