ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 内核研究 >

关于FreeBSD 5优化的补充

日期:2006-11-28 作者:Neo-Match 来自:cnfug


还记得上一次看到关于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?

原文链接:http://cnfug.org/journal/systems/2004/000076.html

本文被浏览



 相关新闻

FreeBSD Web Server架设实例过程2006-11-27 16:21:58
RSYNC ON FreeBSD 5.2 HOWTO V1.02006-11-27 14:19:28
FreeBSD5.4 + pf + oops实现透明代理2006-11-16 15:41:04
FreeBsd5.4+pf+squid反向代理实战笔记2006-11-16 15:22:51
开发者发行版:FreeBSD 6.2-BETA32006-11-02 09:38:17
简析Linux与FreeBSD的syscall2006-10-17 13:43:52
FreeBSD6.1桌面安装指南2006-09-06 18:14:21
FreeBSD下安装apache2+mysql5+php52006-08-30 17:42:55
Sun公司文件系统ZFS被移植到FreeBSD平台2006-08-23 10:25:24
从Linux迁移到FreeBSD2006-07-12 10:56:27
FreeBSD 6.0已经正式发布2005-11-07 10:13:52
用Linux(FreeBSD)当Windows的Fax Server2001-04-16 14:14:48


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号