• 关于FreeBSD 5优化的补充


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

  • 相关阅读:
    SSM实现mysql数据库账号密码加密连接
    获取系统相关信息 (CPU使用率 内存使用率 系统磁盘大小)
    JavaWeb(一) / /* /**的区别
    IDEA(一) 使用IDEA搭建SSM框架项目
    Mysql连接数据库异常汇总【必收藏】
    Java代理模式及动态代理详解
    SpringBoot集成Thymeleaf
    设计师,程序员,当心字体侵权
    Java开发神器Lombok使用详解
    日期格式化跨年bug,是否与你不期而遇?
  • 原文地址:https://www.cnblogs.com/wenus/p/226622.html
Copyright © 2020-2023  润新知