有人看到Linux 最佳化指南這個標題的時候,心裡一定在嘀咕“linux需要最佳化嗎?”。在回答這個問題之前,我先問個問題“何謂Linux 最佳化?”,我的理念是,沒有最優的,合適自己的才是更優的,把案頭背景調成自己喜歡的顏色,算不算最佳化呢?
我想上面兩個問題都不用回答,如果你有興趣,可以接著看下去。這裡要說的最佳化,主要指效能上的。最佳化是針對自己硬體,針對自己需求來做的,因此不存在適合所有人的最佳化方法。以我的機器為例,結合Ubuntu講述。
CPU: AMD AM2 Athlon64 X2 3600+
RAM: DDRII 800 512M * 2
DISK: SATA2 250G 8M
§加快啟動速度
如果你常常使用大量的外設,比如說紅外、藍芽、印表機、掃描器等,這部分可以跳過,因為這裡將去掉這些東西在引導系統時的載入,以提高啟動速度。
Ubuntu和其它多數發行版一樣,在引導的時候,預設會載入大量的你不需要的東西,HP印表機,LVM,RAID,甚至是盲人使用的特性。這些東西一般都可以去掉,即使你偶爾需要使用,可以通過手動的方式啟動,不會影響你的使用,這就類似於windows的自啟動程式,Ubuntu的自啟動程式數量是的驚人的。
雖然可以通過命令列直接控制服務的一切,但對於新手來說,這不夠直觀,也沒那麼安全,因此藉助第3方的工具來實現,不過請放心,那個工具是免費的。
安裝這個工具 並且運行
$ sudo apt-get install sysv-rc-conf
$ sudo sysv-rc-conf
哪些是需要的 哪些是不需要的 可以一個個的去用google搜尋,這裡給出一些大部分人可以考慮去掉的例子。
evms,cron,anacron,apmd,atd,mdamd,lvm 如果不知道是什麼,可以放心去掉
bluez-utiles 藍芽,如果你每次開機都要用,那麼留著也無妨。
bootlogd 如果你有查看日誌的愛好 那麼留著吧
cupsys 如果你常用印表機,就留著
dns-clean 如果是撥接的,留著
fetchmail 如果不知道是幹嘛的 也可以去掉
hdparm 如果都是SATA硬碟 去掉吧
hotkey-setup 只有筆記本可能需要,你可以嘗試去掉,有副作用就改回來
hotplug 大多數人可以去掉,有些硬體可能需要,比如品種罕見的音效卡
hplip 你有惠普印表機的話 就留著
klogd 去掉也無妨
networking 在交大宿舍上網的可以放心去掉
ntp-server 時間同步,一般可以去掉
pcmcia 傳說中的裝置 我沒見過,因此去掉了
powernowd 如果CPU支援變頻,可以留著省電,去掉也無妨
ppp 撥接用的 不撥號的就關掉
ppp-dns 同上
readahead 關掉
rmnologin 去掉
rsync 如果不知道幹嘛的 去掉
screen-cleanup 去掉
stop-bootlogd 去掉
sysklogd 去掉也無妨 隨你
urandom 去掉也無妨
usplash那個黃色的啟動畫面 去掉吧
bittorrent 去掉
其餘的服務,不妨自己琢磨琢磨
使用並發載入 有的單核的機器上反而會變慢,建議雙核使用者使用
sudo vi /etc/init.d/rc
找到 CONCURRENCY=none
修改為 CONCURRENCY=shell
儲存後退出
§使用適合自己的核心
從kernel.org下載源碼自己編譯核心,調整參數,使之適合自己。
核心時鐘頻率 有100 250 333 1000等選項 選擇適合自己的
驅動,將磁碟控制卡,檔案系統的編譯進核心,其餘的編譯成模組,不需要的就
去掉不編譯
CPU類型,選擇跟自己型號一致的
記憶體大小,大於等於1G記憶體的,開啟大於1G記憶體支援
可以斟酌的地方很多,這裡不再贅述,我的核心精簡到了1.2M,這個大小你可以
參考一下。
§合理使用記憶體
Linux的記憶體管理機制跟windows不同,縱然你有64G的記憶體,使用一段時間之後,
剩餘的實體記憶體仍然會相當的少,記憶體不是看的,是拿來用的,所以不要覺得奇怪。
這裡需要調整的一個參數是vm.swappiness,Ubuntu預設是60。這個參數是決定核心將程式swap到swap裡,還是釋放掉部分cache。0表示釋盡量放掉部分cache,100表示盡量使用swap,可以在0到100之間調節。我個人調整成了0。
sudo echo 'vm.swappiness = 0' >> /etc/sysctl.conf
如果要不重啟就生效,可以再修改一下 /proc/sys/vm/swappiness
§資源限制
編輯 /etc/security/limits.conf
hardcore0
enjoy hardnofile 128
enjoy hardfsize 1024000
enjoy hardrss 102400
enjoy hardstack 102400
enjoy hardcpu 10
enjoy hardnproc 20
enjoy hardmaxlogins 10
enjoy harddata102400
sagahardnproc 200
sagahardnofile 4096
enjoy和saga都是使用者名稱,限制的具體內容看 這個檔案的注釋。
如果不作這個限制,可能一行代碼就讓你很慘了,甚至需要你重啟一下。
你可以把下面這行代碼複製粘貼到終端裡執行測試一下是否需要限制
:(){ :|:; }; :
§裁減系統體積
如果硬碟空間吃緊,刪除不需要的應用軟體,這個對於新手同樣是存在風險的,
慎行。
§其他最佳化
如果你不需要使用ipv6
sudo vi /etc/modprobe.d/aliases
找到alias net-pf-10 ipv6
改為alias net-pf-10 off #ipv6
禁用pango
sudo echo 'MOZ_DISABLE_PANGO="1"' >> /etc/environment
硬碟最佳化(SATA的可以不做)
sudo hdparm -t -T /dev/hda //測試硬碟效能
sudo hdparm -c 1 /dev/hda //使用32bit傳輸模式
sudo hdparm -d 1 /dev/hda //使用DMA
sudo hdparm -t -T /dev/hda //再次測試
sudo hdparm -k 1 /dev/hda //儲存結果
這裡的/dev/hda換成你自己的對應的裝置
§常用軟體的設定
OpenOffice裡有個Java的選項,一般可以禁用掉。
Firefox地址欄輸入 about:config 斷行符號
browser.sessionhistory.max_entries 設定為5
browser.sessionhistory.max_total_viewers 設定為1
network.http.max-connections-per-server 設定為10
network.http.pipelining.maxrequests 設定為10
network.dns.disableIPv6 設定為true
network.dnsCacheEntries 設定為9999
network.dnsCacheExpiration 設定為9999
browser.cache.disk.capacity 設定為512000
browser.cache.memory.capacity 設定為102400(記憶體小的人可以設定小一些)
具體的含義 自己查看mozilla的官方網站線上文檔 設定為合適自己的,Linux 最佳化介紹完畢了。
- 關於敘述Ubuntu 8.10常用軟體,設定,配置一)
- 關於敘述Ubuntu 8.10常用軟體,設定,配置二)
- Ubuntu Compiz常 用快速鍵3)
- 簡單介紹Ubuntu作業系統中的“哞~”
- 簡單教大家 Fedora 12完美安裝nvidia官方驅動