博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于FreeBSD 5优化的补充(转)
阅读量:2497 次
发布时间:2019-05-11

本文共 6453 字,大约阅读时间需要 21 分钟。

关于FreeBSD 5优化的补充(转)[@more@]

  Neo-Match

  还记得上一次看到关于FreeBSD 5优化的文章是1年前,也是我刚刚起步学UNIX的时候。时间飞驶,在这一年里我学到了很多FreeBSD和UNIX的知识,我对FreeBSD如何性能最大化更是感兴趣。如今FreeBSD已经替代了我的Windows2000,成为我电脑里唯一个OS。经验秘笈不敢独享,在此愿跟所有FreeBSD发烧友切磋,如有不当之处,欢迎指出批评。

  ·本文假设读者已经阅读过FreeBSD安装手册。

  ·阅读本文时,请务必参考安装优化文章。

  ·本文遵循GPL协议。

  ·本文遵循BSDL协议。

  ·欢迎其他作者结合本文内容写出各种FreeBSD优化文章。

  一、安装(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?

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-944345/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-944345/

你可能感兴趣的文章
设计模式14_组合结构
查看>>
设计模式15_模板
查看>>
海龟交易法则01_玩风险的交易者
查看>>
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>