無標題的文章

張貼日期:2012/2/6 上午 08:10:14

CPU

超頻是唯一提升CPU速度的方法。但它存在一定危險性,不建議盲目使用。通常在BIOS中設置超頻(有些CPU可能禁止超頻),本文不再敘述。

從另一方面看,通過優化CPU資源分配,也可以「提升」CPU性能。

用戶可以使用優化的Linux內核,它們針對特定用途做了優化。Con Kolivas的內核補丁集針對桌面應用做了優化;用Brain Fuck Scheduler(BFS)代替默認的Completely Fair Scheduler(CFS),可以優化系統資源調度。

AUR中提供了打補丁內核的PKGBUILD,可以很方便的編譯安裝。比較著名的有:打了CK補丁包和BFS補丁的kernel26-ck ,打了BFS補丁的kernel26-bfs,打了pf補丁集的kernel26-pf

Note: BFS/CK適用於桌面機、筆記本,不適用於服務器。少於16個CPU時,這些補丁能起到比較好的效果。此外,Con Kolivas建議把HZ(時鐘中斷週期)設置為1000。參見:BFS FAQck patches

Verynice(軟件包:verynice)服務通過調整進程nice(優先級)動態分配CPU資源。/etc/verynice.conf是配置文件,Verynice會分給其中goodexe(比如X、多媒體軟件)更多的CPU資源,badexe反之。

Ulatencyd(軟件包:ulatencyd)服務同樣通過動態分配CPU資源緩解系統負載。但它使用更先進的cgroup功能(需要內核支持)。該功能把進程分組,並對不同的組使用不同的系統資源分配策略。

內存和虛擬內存

Swappiness

swappiness數值決定內核使用交換空間和物理內存大小的比率。如果設置成較小的值,CPU會儘量完全使用內存,從而加速系統性能(物理內存比虛擬內存快得多)。該值在/etc/sysctl.conf中設定(如果沒有相似內容,請自行添加):

vm.swappiness=20 vm.vfs_cache_pressure=50

此文介紹了這種優化的原理。

Compcache

Compcache(軟件包:compcache),也就是ramzswap內核模塊,在內存中建立壓縮的交換空間文件系統。通俗來講,就是設置一部分內存可以壓縮數據,從而容納更多數據。這種優化對內存緊張的用戶很有幫助。

使用Compcache後,仍然可以(且推薦)使用硬盤交換空間作為補充。不要在/etc/fstab設置備用交換空間,Compcache有專門的配置文件。

該方法有利於減少由於交換空間造成的固態硬盤讀寫。

/tmp 使用內存空間

如果內存很充足,使用內存文件系統作為/tmp儲存臨時文件能小幅改善系統性能(同樣,能減少磁盤讀寫)。犯法是在/etc/fstab中添加:

tmpfs /tmp tmpfs defaults,noatime,nodev,nosuid,mode=1777 0 0

使用顯存

這聽起來很奇特,如果顯存過剩,還可以把顯存作為交換空間。參見:Swap on video ram

預讀

通過預讀程序、庫到內存中,能有效加快程序加載速度。預讀通常用於常用的程序,如瀏覽器。

Go-preload

Go-preload是來自gentoo的一個預讀服務。安裝後,通過下列命令採集預讀信息:

# gopreload-prepare program

運行需要預讀的程序,收集結束後按回車鍵。

然後會生成一個預讀列表:/usr/share/gopreload/enabled。在/etc/rc.conf設置開機啟動gopreload,Go-preload就會在每次開機時預讀列表中的程序。要禁止預讀某個程序,只需從/usr/share/gopreload/enabled刪除項目,或者移入/usr/share/gopreload/disabled。

Preload

比起Go-preload,Preload更自動化(儘管有違KISS):只需要在/etc/rc.conf添加服務就完事了。

Readahead

Readahead提供文件預讀,從而加速程序加載。

系統啟動

參見:加速系統啟動

待機

想要加快系統啟動,最好的方法就是不要關電腦,而選擇待機。當然,為了可持續發展(至少是電費),不用電腦時還是關了吧。

內核啟動參數

使用fastboot參數可以節約一兩秒開機時間。如果開機時總是顯示「Waiting 8s for device XXX」之類的信息,可以使用rootdelay=1參數減少等待時間。通過編輯/boot/grub/grub.cfg(Grub)、/boot/grub/menu.lst(Grub)或/etc/lilo.conf(Lilo)應用參數。

自己編譯內核

自己編譯內核,刪除不需要的模塊,可以減少引導時間和內存佔用。但通常這是個耗時、枯燥甚至令人厭煩的事情,你可能面臨各種錯誤——甚至最終節約的開機時間還不如你浪費的時間多。但通過自己編譯內核,可以學習到不少知識。參見:here

針對特定程序的優化技巧

Firefox

Firefox (簡體中文)一文提供了不少技巧。常用的有:禁用 pango清理sqlite數據庫,使用firefox-pgo。另見:Speed-up Firefox using tmpfs關閉反釣魚功能

Gcc/Makepkg

參見:Ccache

LibreOffice

參見:LibreOffice#Speed up LibreOffice

Pacman

參見:Improve Pacman Performance

SSH

參見:Speed up SSH