【IT168 服务器学院】一、安装(sysinstall)
1、Distribution中,仅选择minimal后,选择Customization。添加man,出现问题时可以查看命令参数;添加src,之后cvsup可以加快速度,不必读取重复的文件。
2、Users中,添加用户后,把用户路径中的/home/abc改为/usr/abc。因为/usr的容量大。或者还可以通过增大/home的容量,不过比较麻烦。然后,要把shell改为csh,为了使用方便(也为了本文第七部分的设置)。
二、编译优化(make.conf)
注意:要屏蔽某个boolean选项,并不是标记no或false!而是整行删掉!
1、编译器选项
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的浮点运算,加快速度。 ## -mfpmath=pni: Pentium4 Prescott兼容的CPU可以打开-mfpmath=pni来代替传统i387的浮点运算,加快速度。 ## -mmmx: 打开mmx指令来增加代码性能。适用于PentiumMMX兼容CPU。 ## -msse: 打开sse指令来增加代码性能。适用于PentiumIII兼容CPU。 ## -msse2: 打开sse2指令来增加代码性能。适用于Pentium4兼容CPU。 ## -mpni: 打开pni指令来增加代码性能。适用于Pentium4 Prescott兼容CPU。 ## -m3dnow: 打开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了。