免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1056 | 回复: 0
打印 上一主题 下一主题

搭建一个大型网站架构的实验环境(FreeBSD系统优化篇) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-04 11:51 |只看该作者 |倒序浏览

四、FreeBSD系统的优化
升级完了ports和src后,基础搭建就算完成了,现在我们就开始编译内核吧。
进入内核配置文件目录
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/IM.RD.BJ
# ln -s /root/kernels/IM.RD.BJ
IM.RD.BJ为你新内核配置文件的名字 ,可以自己取个合适的。
编译内核
# cd /usr/src
# make buildkernel KERNCONF=IM.RD.BJ
安装内核
# make installkernel KERNCONF=IM.RD.BJ
编译内核之前可以配置自己的内核文件 IM.RD.BJ ,使她符合自己的要求。
具体的内核说明可以参考:
http://docs.freebsd.org/doc/6.2-RELEASE/usr/share/doc/zh_CN.GB2312/books/handbook/kernelconfig-config.html
具体的内核配置文件可以参照我的另外一篇文章《
Freebsd6.2 编译安装内核
》。
编译完成以后,我们现在的工作就是对系统一些参数进行优化调整。
# ee /boot/loader.conf
加入:
kern.ipc.maxsockets=65535
kern.maxusers=256
kern.ipc.nmbclusters=32768
kern.ipc.nsfbufs=2496
# ee /etc/sysctl.conf
加入:
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.tcp.drop_synfin=1
kern.maxvnodes=8446
kern.maxfiles=65536
kern.maxfilesperproc=32768
kern.ipc.somaxconn=32768
kern.ipc.shmmax=67108864 # 64MB
kern.ipc.shmall=32768
kern.ipc.shm_allow_removed=0
kern.coredump=1
net.inet.ip.portrange.last=65535
net.inet.tcp.msl=2500
net.inet.udp.blackhole=1
net.inet.udp.log_in_vain=1
net.inet.tcp.always_keepalive=1
net.inet.udp.blackhole=1
net.inet.raw.maxdgram=65536
net.inet.raw.recvspace=65536
net.inet.tcp.blackhole=2
net.inet.tcp.delayed_ack=1
net.inet.tcp.inflight.enable=1
net.inet.tcp.inflight.debug=0
net.inet.tcp.inflight.rttthresh=10
net.inet.tcp.inflight.min=6144
net.inet.tcp.inflight.max=1073725440
net.inet.tcp.inflight.stab=20
net.local.stream.sendspace=65536
net.local.stream.recvspace=65536
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=65536
net.inet.udp.maxdgram=24576
net.inet.udp.recvspace=49152
net.inet.ip.rtexpire=3600
net.inet.ip.rtminexpire=2
net.inet.ip.random_id=1
net.inet.icmp.icmplim=100
net.inet.icmp.icmplim_output=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.tcp.keepidle=600000
net.inet.ip.redirect=0
net.isr.direct=1
net.inet.ip.intr_queue_maxlen=4096
kern.ipc.shm_use_phys=1
net.inet.ip.fastforwarding=1
vfs.hirunningspace=4194304
vfs.ufs.dirhash_maxmem=33554432 # 32MB
vfs.write_behind=0
security.bsd.see_other_uids=1
security.bsd.see_other_gids=1
设置完成以后reboot机器。
如果要不重启机器加载改动的参数还可以使用:
# /etc/rc.d/sysctl reload
参数设置的具体说明可以参考《
中国最完整的sysctl.conf优化方案
》,很详细,在此感谢剑心通明的分享。
好了,参数优化好了以后,我们现在还要考虑到以后要用ports方式安装软件,这些软件都是以源码形式安装的, 所以我们这里得做两方面的优化工作,第一是优化编译器,也就是GCC的编译指令,这样可以提高软件的效率,第二就是为ports下载软件加加速了。
系统安装完成之后,默认是没有make.conf文件的,我们自己新建一个就可以了。(自力更生,丰衣足食,哈!)
首先我们调整一下GCC的编译参数。
# touch /etc/make.conf
# ee /etc/make.conf
加入:
CFLAGS= -march=pentium-m -O2 -pipe -msse2 -mmmx -mfpmath=sse
CXXFLAGS= ${CFLAGS}
其中-march是指你机器的CPU,不知道CPU型号可以用下面的方法来查,我的是IBMT43,结果如下:
# sysctl hw.model
hw.model: Intel(R) Pentium(R) M processor 1.86GHz
以下是对照表,按照你的CPU型号改就OK了(这里只提供了CPU的对照,没有加上参数,网上有很多加好参数的,其实未必适合,所以大家看看这篇文章,自己加吧,这样放心,错了也知道原因。参考金步国的《
GCC编译优化指南
》)。
i386 (Intel)
CFLAGS= -march=i386
CXXFLAGS+= -march=i386
i486 (Intel)
CFLAGS= -march=i486
CXXFLAGS+= -march=i486
Pentium 1 (Intel)
CFLAGS= -march=pentium
CXXFLAGS+= -march=pentium
Pentium MMX (Intel)
CFLAGS= -march=pentium-mmx
CXXFLAGS+= -march=pentium-mmx
Pentium PRO (Intel)
CFLAGS= -march=pentiumpro
CXXFLAGS+= -march=pentiumpro
Pentium II (Intel)
CFLAGS= -march=pentium2
CXXFLAGS+= -march=pentium2
Celeron (Mendocino), aka Celeron1 (Intel)
CFLAGS= -march=pentium2
CXXFLAGS+= -march=pentium2
Pentium III (Intel)
CFLAGS= -march=pentium3
CXXFLAGS+= -march=pentium3
Celeron (Coppermine) aka Celeron2 (Intel)
CFLAGS= -march=pentium3
CXXFLAGS+= -march=pentium3
Celeron (Willamette?) (Intel)
CFLAGS= -march=pentium4
CXXFLAGS+= -march=pentium4
Pentium 4 (Intel)
CFLAGS= -march=pentium4
CXXFLAGS+= -march=pentium4
Eden C3/Ezra (Via)
CFLAGS= -march=i586 -m3dnow
CXXFLAGS+= -march=i586 -m3dnow
K6 (AMD)
CFLAGS= -march=k6
CXXFLAGS+= -march=k6
K6-2 (AMD)
CFLAGS= -march=k6-2
CXXFLAGS+= -march=k6-2
K6-3 (AMD)
CFLAGS= -march=k6-3
CXXFLAGS+= -march=k6-3
Athlon (AMD)
CFLAGS= -march=athlon
CXXFLAGS+= -march=athlon
Athlon-tbird, aka K7 (AMD)
CFLAGS= -march=athlon-tbird
CXXFLAGS+= -march=athlon-tbird
Athlon-tbird XP (AMD)
CFLAGS= -march=athlon-xp
CXXFLAGS+= -march=athlon-xp
Athlon 4(AMD)
CFLAGS= -march=athlon-4
CXXFLAGS+= -march=athlon-4
Athlon XP (AMD)
CFLAGS= -march=athlon-xp
CXXFLAGS+= -march=athlon-xp
Athlon MP (AMD)
CFLAGS= -march=athlon-mp
CXXFLAGS+= -march=athlon-mp
接着我们来调整ports的下载,这几个网站比较快,也是大多数网友推荐的:
MASTER_SITE_OVERRIDE?=\
http://ports.hshh.org/${ DIST_SUBDIR }/\
http://ports.cn.freebsd.org/${ DIST_SUBDIR }/\
ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${ DIST_SUBDIR }/
MASTER_SITE_OVERRIDE?=${ MASTER_SITE_BACKUP }
最后我们的ports也来玩玩多线程下载,有请axel出场了! 咚咚咚...
不知道axel在ports的那个位置,可以用下面指令找找:
# cd /usr/ports
# make search key=axel
Port:   axel-1.0b
Path:   /usr/ports/ftp/axel
Info:   A download accelerator
Maint: ports@FreeBSD.org
B-deps: gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2
R-deps: gettext-0.14.5_2 libiconv-1.9.2_2
WWW:    http://wilmer.gaast.net/main.php/axel.html
其实还有一个更方便的方法就是whereis
# whereis axel
axel: /usr/ports/ftp/axel
现在我们知道位置在那了,就去找她吧,小样,你藏的再深,俺也能把你找出来,我搜搜搜,查查查...
# cd /usr/ports/ftp/axel
# make install clean
等待她安装完成吧,因为她还要安装一些依赖包,可能会慢一点,耐心等待吧,或出去咪根烟也行(抽烟不好,在这还是不推荐了,还是站起来活动一下,看看绿色,这样环保又健康。毛爷爷告诉我们:“身体是革命的本钱”,对于IT从业者更是如此呀,感慨!!!)
安装完成以后,我们得设置一下,她才能为我们工作,还是到make.conf进行设置。
# ee /etc/make.conf
加入:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
好了,到现在为止,我们的系统环境就安装和配置好了。因为我们要配置4台服务器,为了简单方便,我们复制3份虚拟机,分别进行相关应用软件的安装。留这个作为备份,以便系统被破坏了,可以替换,省得重新安装。这样方便,虚拟机就是好!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/30815/showart_456432.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP