第一部分 僅有一張硬盤的電腦安裝Linux
我在論壇上的優化初步一文中提過,Linux也是有磁盤碎片的,所以為了減少碎片,應將內容經常改變的目錄放在單獨的分區。一個優化的分區策略,可以很好地改進Linux系統的性能,減少磁盤碎片,提高磁盤I/O能力。從方便備份數據的角度考慮,因為很多備份工具對整個分區進行備份的效率很高,所以我們應將Linux系統的幾個主要的目錄作為單獨的文件系統,為它們各自分配一個區。
這裡簡單介紹下,幾個重要的目錄,這幾個目錄在ubuntu安裝的硬盤分區時,可選擇性的特別分區,進行掛載。
/usr 文件系統中一般不改變的文件,如庫,程序。
/var 文件系統包含會改變的文件。
/home 文件系統包含用戶家目錄,即系統上的所有實際數據。
/tmp 臨時文件。
/usr/local 這是提供給一般用戶的/usr目錄,在這安裝軟件最適合。
/srv 一些服務起動以後,需要的數據放在這裡。
/opt 一些大型程序,安裝在這裡,方便管理。
/ 根目錄,沒啥說的。
我的建議是以上所有目錄都單獨在硬盤上分區,如果要問為什麼,我可以舉個例子。
比如LumaQQ,這個軟件,我們可以把他安裝在/opt下面,這樣我們如果需要重新安裝系統的話,可以選擇不格式化/opt,並且把~/.lumaqq 這個文件夾備份下,這樣當我們重新裝好系統,再次把/opt掛載好,只需要把.lumaQQ這個文件夾放在~下,配置好Java,運行一個命令:
代碼:
sudo ln -s /opt/LumaQQ/lumaqq /usr/bin/lumaQQ
就可以再次使用lumaqq了,而且聊天記錄等一系列lumaQQ相關的設置都不會消失,避免了下載的麻煩,也少了安裝的麻煩。
從磁盤碎片的角度上來講,/tmp、/var和/home都是活動最頻繁的分區了,如果我們把它們直接放在根目錄下必然引起處理的麻煩,到時候有了磁盤碎片影響整個磁盤的性能。
因此,我推薦把以上的目錄全部單獨分區,單獨掛載。
在分區的時候也是有一定的機巧的,根據磁盤的特點,我們知道越是靠磁盤外部的柱面,旋轉越快,而且每次旋轉時,磁盤讀寫頭可以覆蓋較多的區域,也就意味著靠外部的柱面可以得到較好的性能。所以在分區時,我們應該考慮將訪問頻率高的,對系統性能影響相對較大的分區置於磁盤的靠外部分。最好的方案從外到內應該是:
/boot->swap->/home->/var->/tmp->/srv->/opt->/usr->/usr/local->/
當然,也完全沒必要死守這個規則而對硬盤進行大規模的修改,可以根據目前已有的分區進行調整。
另外要說的是,分完以上的區後,千萬別把所有空間都用上,應該留下幾個空的分區作為備份用,比如本人的硬盤最後的分區是一個高達30g的備份分區,上面儲存了我上網下載的各種文件,自己作的某些東西,而且除了這個分區以外,我還有一個10g大的分區,並沒有儲存任何東西,僅僅是為了整理磁盤碎片用。
第二部分 有多張硬盤的電腦安裝Linux
這裡我們主要采取的方法就是RAID。
首先最好的情況下是使用硬件RAID,性能最強,而且也沒有任何復雜的部分,只要在主板的biOS上設置好了,那麼一切ok。
在不得已而求其次的狀況下,我們使用軟件RAID,那麼我們最好有兩個或者更多一樣大的硬盤分區,硬盤的轉速、緩存等性能也最好相同,這樣的話,我們就可以得到軟件RAID的最佳性能。
具體的方法,這裡只介紹安裝時的部分,在硬盤分區的時候劃分兩個或多個一樣大的分區,文件格式選擇為RAID。然後選擇軟件RAID設置,創建MD設備,然後在創建好的MD設備上進行新的分區,原則同第一部分。
當然在現實中,很可能我們的硬件並沒有提供我們可以施展RAID的環境,這個時候我們還有最後的方法,就是swap這個分區,我們知道虛擬內存是很重要的,因此我們可以在兩塊硬盤上分別劃出swap區,然後使用讓他們優先級相同的技巧增強系統性能。
在/etc/fstab這個文件中,寫有swap分區的那一行,options的部分這樣寫:
代碼:
sw,pri=5
這樣可以使兩個swap同時運行,對系統性能應當有所補益。
第三部分 對於IDE硬盤的安裝後優化
這裡主要談談談關於hdparm的使用,hdparm的某些功能可以通過編譯內核來完成,在論壇上jaquar00是這樣說的,當然我覺得使用這個軟件更加方便,具體的使用方法如下:
首先進行測試:
代碼:
sudo hdparm -tT 設備(一般是/dev/hda如果有兩塊硬盤第二塊就是/dev/hdab)
然後進行設置:
代碼:
sudo hdparm [-icdmXTt]
-i 這個參數 提供一些信息是由系統的驅動程序判斷出硬盤的性能而得出的
它不一定准確,但是能為我們提供一點幫助。
-c 設定 32-bit 存取模式。這個 32-bit 存取模式指的是在硬件於pc界面 之間的傳輸模式,而影碟本是依照 16-bit 在運轉
-d 設定是否啟用DMA模式 -d1 啟動 -d0 關閉
-m 設定同步讀取多個 sector 的模式。一般來說,設定此模式,可降低因為 讀取磁碟而損失的效能,16/32為最佳化,具體數字請根據 -i 得出的 信息中MaxMultSect來設定。
-X 設定 UtraDMA 的模式。一般來說,UDMA 的模式值加64就可以了。但是現 在的電腦普遍性能強勁,在這裡請參考自己的電腦配置。
33 MHz DMA mode 0~2 (X64~X66)
66 MHz DMA mode 3~4 (X67~X68)
100 MHz DMA mode 5 (X69)
如果你的硬盤上面顯示的UATA 100以上的,那麼 X69 也許不錯
-T 測試暫存區的存取效能。
-t 測試影碟實際的存取效能。
看清以上參數後,設置的具體方法我用例子說明,在我的電腦上我是這樣作的:
代碼:
sudo hdparm -X69 -d1 -u1 -m16 -c3 /dev/hda
完成後,再次測試。最後如果效果有所提升,那麼就使用一下命令進行保存:
代碼:
sudo hdparm -k1 設備
論壇上的jaquar00朋友,幫我補充了用
代碼:
lspci -v | grep 'IDE'
這條命令查詢你的硬盤支持那種方式,但是非常奇怪,該命令在我的電腦上什麼都看不出來,全是unknow,不過也許對其他朋友能有所幫助。
第四部分 對於磁盤碎片的處理方法
關於磁盤碎片的問題,我已經查找了很多資料,可以確定的是,Linux的文件系統非常優秀,碎片化問題很小,而且Linux內核本身具備了相應的預防措施,即空間足夠大的情況下,對已有文件塊不再進行寫操作等,這使Linux產生了越用越整齊的說法,但是無法得知這樣的說法究竟是否屬實,所以我這裡介紹另外一種比較麻煩的方法,即格式化重寫法。
在使用這樣的方法時,必須要有一個空間足夠容納要整理的硬盤的文件的空閒分區,
在需要格式化的時候,將所有要整理硬盤的文件移到這個分區,然後將原有硬盤格式化,再把所有文件移回去,這種方法看似瘋狂,但是連續的寫可以避免磁盤碎片,也許某天一些朋友會考慮使用這種方法。
第五部分 對於不同處理器的優化
intel處理器請使用i686內核
代碼:
sudo apt-get install Linux-i686
amd處理器請使用k7內核
代碼:
sudo apt-get install Linux-k7
Linux的各大發行版,都有些不必要的服務被默認開啟了,針對ubuntu,我們可以采用選擇性關閉的方法加速起動,提高系統性能。
這裡我們安裝一個軟件:
代碼:
sudo apt-get install sysv-rc-conf
然後這樣起動:
代碼:
sudo sysv-rc-conf
在這個軟件裡,可以用鍵盤的方向鍵移動,用空格選取,也可以直接用鼠標選取,最後用q保存退出,一下列出服務的名稱和基本的解釋。
代碼:
acpi-support 這個是關於電源支持的默認是1,2,3,4,5下啟動,我認為你可以把它調整到s級別。
acpid acpi的守護程序,默認是2-5開啟,我認為可以不用管。
alsa alsa聲音子系統,應該不用開啟它。
alsa-utils 這個服務似乎取代了alsa,所以開啟這個就可以了,我在S級別開啟它。
anacron 這是一個用於執行到時間沒有執行的程序的服務,我認為它無所謂,所以關了它,這個可以隨便。
apmd 也是一種電源管理,我認為電腦如果不是很老,它就沒有開啟的必要了。
atd 和anacron類似,我把它關了。
bluez-utiles 傳說中的藍牙服務,然後遺憾我沒有,所以關了。
bootlogd 似乎使用來寫log的,安全期間開著他也許比較好。
cron 指定時間運行程序的服務,所以開著比較好的。
cupsys 打印機服務,所以如果你有,就開啟吧。
dbus 消息總線系統,非常重要,一定要開。
dns-clean 撥號連接用的,如果不用,就關了它。
evms 企業卷管理系統,由於我並不明白什麼叫做企業卷,所以我關了它。
fetchmail 用於郵件守護,我關了它。
gdm gnome桌面管理器,我關了它,然後用startx啟動gnome。
halt 關機用的,不要更改
hdparm 這個我剛才有講,如果沒有ide硬盤也就不用開啟它了。
hotkey-setup 這個是給某些品牌筆記本設計的熱鍵映射,台式機用戶請關了它
hotplug 這個是用於熱插拔的,我已經測試過了,在某些電腦上關閉它會使聲卡無效,請在S級別開啟它。
hplip hp打印機專用的,應該可以關了它。
ifrename 網絡接口重命名,好像沒用,關了。
ifupdown 這個使用來打開網絡的,開著它。
ifupdown-clean 同上。
klogd Linux守護程序,接受來自內核和發送信息到syslogd的記錄,並記錄為一個文件,所以請開著它。
Linux-restricted-modules-common 這個使用來使用受限制的模塊的,你可以從/lib/Linux-restricted-modules下查看,如果沒有什麼,你可以關掉它。
lvm 邏輯卷管理器,如果你沒有請關了它。
makedev 用來創建設備到/dev/請不要動他。
mdamd 管理raid用,如果你沒有請關閉它。
module-init-tools 從/etc/modules 加在擴展模塊的,這個一般開著。
networking 增加網絡接口和配置dns用,將它開啟。
ntp-server 與ubuntu時間服務器進行同步的,關了。
pcmcia 激活pcmica設備,遺憾我有生以來都沒有見過這樣的設備,關了它。
powernowd 用於管理cpu的客戶端程序,如果有變頻功能,比如amd的quite' cool 那麼就開啟它吧。
ppp 撥號用的,我關了它。
ppp-dns 一樣,也關了。
readahead 預加載服務,讓我想起了win的預讀,當然他們不同,它會使啟動變慢3-4妙,所以我關了它。
reboot 重啟用的,不要動。
rmnologin 如果發現nologin,就去除它,在筆記本上不用開啟。
rsync rsync協議守護,請視情況而定。
screen-cleanup 一個清除開機屏幕的腳本,隨便。
sendsigs 重啟和關機時向所有進程發送消息。所以不要管它。
single 激活但用戶模式,不用管它。
stop-bootlogd 從2,3,4,5級別停止bootlogd,不用管它。
sudo 這個不用說吧,不用管它。
sysklogd 用於記錄系統日志信息,不用管它。
udev 用戶空間dev文件系統,不用管它。
udev-mab 同上。
umountfs 用來卸載文件卷的,不用管它。
urandom 生成隨即數的,不知道怎麼用,不用管它。
usplash 那個漂亮的啟動畫面,但是我關了它,它也存在,所以想關他需要把內核起動參數中的splash一句刪掉。
vbesave 顯卡biOS配置工具,不用管它。
xorg-common 設置x服務ice socket。不用管它。
第六部分 對於桌面環境的優化
在上次的文章中,我把gnome叫做wm,這顯然是一個錯誤,謝謝jaquar00的提醒,那麼這次我稱它為桌面環境,它是影響性能的大戶,某些朋友的電腦不夠強勁,也許需要對它作出調整。
首先推薦使用輕量級的桌面環境xfce4,或者一些wm,比如fvwm、iceWM。關於這三個軟件的使用論壇其他桌面版面有置頂貼詳細說明請參考:
xfce4:http://forum.ubuntu.org.cn/vIEwtopic.PHP?t=1160
fvmw: http://forum.ubuntu.org.cn/vIEwtopic.PHP?t=1662
iceWM:http://forum.ubuntu.org.cn/vIEwtopic.PHP?t=1159
然後對於想使用gnome,而對美化要求比較低的朋友,我又一些建議:
1 不使用屏幕保護程序
無論有沒有使用,屏幕保護程序都會耗費cpu資源,因為後台的計時器會一直檢查系統是否空閒,並對屏幕保護程序激活的時間進行倒計時。如果要暫時離開座位,請使用鎖住屏幕。
2 降低顏色設定
出於健康的目的,分辨率請達到1024*768,刷新率如果不是LCD顯示器,請務必使用85Hz,而顏色如果沒有太高的要求,請使用16位增強色。
3 去除牆紙
如果對美化沒有任何要求,完全可以這樣作。
4 清理桌面
清理桌面圖表可以減少屏幕需要不斷刷新的顏色。把不需要的圖表刪除,一些常用鏈接全部移動到自己創建的某個文件夾裡。
5 關閉gnome的預覽行為
在文件管理首選裡,預覽的默認行為是僅本地,如果認為沒有必要請關掉它。
6 關於主題
前不久我自己編譯安裝了新的gtk和cairo,它非常漂亮,但同時非常慢,所以各位朋友要小心利用。
第七部分 結語
本文是在論壇上發表的新手優化ubuntu基本教程整理後所得的,我想要聲明的是一切的優化行為在不能良好運用的情況下,都是有風險的,zxshen朋友就因為在上篇文章的引誘下,設置出錯無法出聲,請各位朋友三思而後行,錯誤之處請務必指出,我一定誠心接受批評。