關於FreeBSD 5最佳化的補充

來源:互聯網
上載者:User

一、安裝(sysinstall)

1、Distribution中,僅選擇minimal後,選擇Customization。添加man,出現問題時可以查看命令參數;添加src,之後cvsup可以加快速度,不必讀取重複的檔案。

2、Users中,添加使用者後,把使用者路徑中的/home/abc改為/usr/abc。因為/usr的容量大。或者還可以通過增大/home的容量,不過比較麻煩。
然後,要把shell改為csh,為了使用方便(也為了本文第七部分的設定)。

二、編譯最佳化(make.conf)

注意:要屏蔽某個boolean選項,並不是標記no或false!而是整行刪掉!

1、編譯器選項

CPUTYPE=athlon-xp
##本人使用AthlonXP 2500+,不同的CPU請參考man make.conf

CFLAGS+= -mfpmath=sse -mmmx -msse -m3dnow -maccumulate-outgoing-args
-minline-all-stringops
##
不建議使用O2、O3、Os的最佳化,因為不是全部應用程式可以穩定工作於O2、O3、Os。況且最多僅獲得7%的額外效能。
## CFLAGS的預設為"-O1 -pipe",不需要覆蓋,所以使用+=。
## 不建議使用-f...系列最佳化,因為不是全部應用程式可以對此穩定工作。

## -mfpmath=sse:
PentiumIII相容的CPU可以開啟-mfpmath=sse來代替傳統i387的浮點運算,加快速度。參閱CPU產品手冊來確定CPU是否含有SSE功能。
## -mfpmath=pni: Pentium4
Prescott相容的CPU可以開啟-mfpmath=pni來代替傳統i387的浮點運算,加快速度。參閱CPU產品手冊來確定CPU是否含有PNI功能。
## -mmmx:
開啟mmx指令來增加代碼效能。參閱CPU產品手冊來確定CPU是否含有MMX功能。適用於PentiumMMX相容CPU。
## -msse:
開啟sse指令來增加代碼效能。參閱CPU產品手冊來確定CPU是否含有SSE功能。適用於PentiumIII相容CPU。
## -msse2:
開啟sse2指令來增加代碼效能。參閱CPU產品手冊來確定CPU是否含有SSE2功能。適用於Pentium4相容CPU。
## -mpni:
開啟pni指令來增加代碼效能。參閱CPU產品手冊來確定CPU是否含有PNI功能。適用於Pentium4
Prescott相容CPU。
## -m3dnow:
開啟3DNow!指令來增加代碼效能。參閱CPU產品手冊來確定CPU是否含有3DNow!功能。適用於K6、Athlon相容CPU。

## -maccumulate-outgoing-args -minline-all-stringops
通過減少某些動作來實現加速,經作者實驗,比較穩定。

CXXFLAGS+= -fmemoize-lookups -fsave-memoized
## make.conf提到的C++代碼最佳化。

2、系統編譯選項
KERNCONF=(FILENAME)
## 核心設定檔名,將(FILENAME)更改為自己的核心檔案名稱。

NOINET6=true
## 盡量不使用用IPV6協議。

NOATM=true
## 盡量不使用ATM,本選項僅適用於非ADSL使用者。

NO_SENDMAIL=true
## 盡量不使用SENDMAIL。

NOGAMES=true
## 不安裝所有遊戲

NO_I4B=true
## 盡量不使用ISDN For BSD。

NO_IPFILTER=true
## 盡量不使用IP Filter。

BATCH=yes
## 安靜編譯,編譯時間跳過所有提問。適用於某些隔夜一次性編譯器的使用者。

3、X-Window編譯選項
XFREE86_VERSION=4
## 盡量使用4.3版本的X-Window

WITH_SETUID_LUIT=yes
## 不使用本項的話,運行xterm會出現luit錯誤的問題.

WITH_GTK2=yes
## 盡量使用GTK2為gtk應用程式的運行庫

USE_MMX_ASM=yes
## 編譯Xfree86時,盡量使用MMX代碼,僅適用於PentiumMMX相容CPU.

USE_3DNOW_ASM=yes
## 編譯Xfree86時,盡量使用3DNOW代碼,僅適用於K6、Athlon相容CPU.

WITHOUT_KDE_MENUS=yes
## 使用GNOME時,不添加KDE程式在菜單上。

4、多媒體編碼選項

WITH_CDPARANOIA=yes
WITH_AALIB=yes
WITH_ESOUND=yes
WITH_FAAD=yes
WITH_FLAC=yes
WITH_FREETYPE=yes
WITH_GDKPIXBUF=yes
WITH_GSM=yes
WITH_HERMES=yes
WITH_JPEG=yes
WITH_LADSPA=yes
WITH_LAME=yes
WITH_LIBA52=yes
WITH_LIBAUDIOFILE=yes
WITH_LIBCACA=yes
WITH_LIBFAME=yes
WITH_LIBMIKMOD=yes
WITH_LIBMPEG2=yes
WITH_LIBMUSICBRAINZ=yes
WITH_LIBSHOUT=yes
WITH_LIBSIDPLAY=yes
WITH_LIBSNDFILE=yes
WITH_LIBTHEORA=yes
WITH_MAD=yes
WITH_NAS=yes
WITH_PANGO=yes
WITH_PNG=yes
WITH_SDL=yes
WITH_SMOOTHWAVE=yes
WITH_SPEEX=yes
WITH_SWFDEC=yes
WITH_VORBIS=yes
WITH_VORBISIDEC=yes
WITH_XINE=yes
WITH_XVID=yes

## 以上所有多媒體選項僅在應用程式支援時開啟。

4、應用程式編譯選項
WANT_HUGE_STACK_SIZE=yes
## 為Python代碼的應用程式提供巨大的Stack。

WITH_GDM=yes
## 為某些視窗管理器提供GDM連結。

WITHOUT_MAILNEWS=yes
## 取消Mozilla的郵件新聞功能,加快編譯時間。

WITHOUT_COMPOSER=yes
## 取消Mozilla的網頁編輯功能,加快編譯時間。

WITHOUT_LDAP=yes
## 取消Mozilla的LDAP功能,加快編譯時間。

WITHOUT_CHATZILLA=yes
## 取消Mozilla的IRC聊天功能,加快編譯時間。

WITHOUT_XMLTERM=yes
## 取消Mozilla的XML終端功能,加快編譯時間。

#WITH_RTC=yes
## 為某些應用程式提供系統時鐘支援,但可能會造成某些多媒體程式不穩定。

WITH_GLX=yes
## 為某些應用程式提供GLX加速繪圖支援。

WITH_TTF_BYTECODE_ENABLED=yes
## 為某些應用程式提供雙位元組支援。

WITH_OPTIMIZED_CFLAGS=yes
WITH_OPTIMIZED_CXXFLAGS=yes
WITH_OPTIMIZE=yes
## 盡量使用更進階編譯最佳化

三、核心最佳化(make kernel)

options PQ_HUGECACHE
## 為1024k二級緩衝的CPU提供支援

options PQ_LARGECACHE
## 為512k二級緩衝的CPU提供支援

options PQ_MEDIUMCACHE
## 為256k二級緩衝的CPU提供支援

options PQ_SMALLCACHE
## 為128k二級緩衝的CPU提供支援

options CPU_ATHLON_SSE_HACK
options CPU_ENABLE_SSE
## 為Athlon系列CPU提供SSE支援

options CPU_SUSP_HLT
## 開啟CPU空閑節能。

options CPU_UPGRADE_HW_CACHE
options CPU_WT_ALLOC
options NO_MEMORY_HOLE
## AMD系列CPU最佳化

##
某些顯卡可以開啟DRM支援來加快顯示速度,請參考/usr/src/sys/conf/NOTES和/usr/src/sys/i386/conf/NOTES,本文省略。

四、啟動最佳化(loader.conf)

autoboot_delay="2"
## 設定啟動等待時間為2秒。

hw.ata.atapi_dma=1
## 開啟ATA33以上介面的硬碟的DMA傳輸,加快存取速度。

kern.ipc.maxsockets="16384"
## 增大線程間套接數量

net.inet.tcp.tcbhashsize="2048"
## 增大TCP控制塊數量

beastie_disable="YES"
## 關閉小惡魔映像啟動菜單

五、系統喜好設定(rc.conf)

background_dhclient="YES"
## 不等待DHCP執行完畢,加快啟動速度。

keyrate="fast"
## 最大化鍵盤速率

sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
## 關閉SENDMAIL

clear_tmp_enable="YES"
## 按時清除/var/tmp檔案

tcp_extensions="YES"
## 擴充TCP

六、系統資源最佳化(sysctl.conf)

security.bsd.see_other_uids=0
## 不允許使用者看到所有系統進程

kern.ipc.maxsockbuf=8388608
## 線程通訊端緩衝區

kern.ipc.shm_use_phys=1
## 僅為線程提供實體記憶體支援,需要256兆以上記憶體。

kern.ipc.shmmax=67108864
## 線程可使用的最大共用記憶體

kern.ipc.shmall=32768
## 最大線程數量

kern.coredump=0
## 程式崩潰時不記錄

net.local.stream.sendspace=65536
net.local.stream.recvspace=65536
## 本機資料流接收和發送空間

net.local.dgram.maxdgram=16384
## 本機資料包最大數量

net.local.dgram.recvspace=65536
## 本機資料包接收空間

net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1
## 某些加快網路效能的協議,請參考RFC文章。

net.inet.tcp.mssdflt=1460
## 資料包資料區段大小,ADSL為1452。

net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=1048576
## 網路資料接收和發送空間

net.inet.tcp.inflight_enable=1
## 為網路資料連線時提供緩衝

net.inet.tcp.minmss=1460
## 資料包資料區段最小值,ADSL為1452。

net.inet.raw.maxdgram=65536
## 本機資料最大數量

net.inet.raw.recvspace=65536
## 本機資料流接收空間

七、環境設定(.cshrc)
alias ls ls -GF
## 彩色化ls

setenv EDITOR ee
## 預設編輯器為ee

setenv PAGER less
## 預設分頁器為less,比more要方便。

set nobeep
set prompt = '%n@%/%# '
set filec
set autolist
##
這幾行設定我先不解釋,不過我相信你肯定喜歡,自己去研究那是什麼吧。特別是最後一行。

八、編譯的緩衝(ccache)
CCACHE是為程式編譯提供緩衝,通過減少重複代碼編譯次數,加快編譯時間。

安裝過程:

su
cd /usr/ports/devel/ccache/
make install clean
cd /usr/
mkdir ccache
cd /usr/sbin
ln -s /usr/local/bin/ccache gcc
ln -s /usr/local/bin/ccache cc
ln -s /usr/local/bin/ccache c++
ln -s /usr/local/bin/ccache g++
ln -s /usr/local/bin/ccache cpp
echo "setenv CCACHE_DIR /usr/ccache" >> /root/.cshrc
rehash
exit

最後可以通過運行ccache -s來觀看當前編譯狀況。
好了,現在就可以cvsup系統代碼和ports tree了。還不趕快開始編譯你的FreeBSD 5?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.