【IT168 服务器学院】4. 操作系统性能优化
操作系统的优化首先要做的是系统内核的优化,通常优化系统内核的侧重点是简化系统内核同时如果有必要还可以把一些系统功能外部实现添加到内核中。通过内核优化一方面减小了内核体积,另一方面通过内核的精简还可以提高系统的安全性。这里列出FREEBSD和OPENBSD的内核优化编译过程。
4.1 FREEBSD内核优化编译
在上文中系统代码树已经更新了,这里就不再重复了
# cd /usr/src/sys/i386/conf
# mv /home/upload/MYCONFIG ./ //这里是我做好的内核配置文件
# chmod 644 MYCONFIG
# chown root:wheel MYCONFIG
# config MYCONFIG
# cd /usr/src
# make cleandepend
# make buildkernel KERNCONF=MYCONFIG
# make installkernel KERNCONF=MYCONFIG
# reboot
4.2 OPENBSD内核优化编译
在上文中系统代码树已经更新了,这里就不再重复了
# cd /usr/src/sys/arch/i386/conf
# mv /home/upload/MYCONFIG ./ //这里是我做好的内核配置文件
# /usr/sbin/config MYCONFIG
# cd /usr/src/sys/arch/i386/compile/MYCONFIG
# make clean
# make depend
# make
# cp /bsd /bsd.old
# cp bsd /bsd
# reboot
如果编译的新核心启动失败,尝试启动旧内核
boot> bsd.old
操作系统的优化另一个方面要做的工作是提高系统的网络性能,毕竟操作系统是通过网络向外提供服务的,下面列出我现在使用的网络优化参数。 4.3 FREEBSD网络优化
# vi /etc/sysctl.conf
=========+===========+===========+============
net.inet.ip.check_interface=1
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
kern.ipc.somaxconn=32768
kern.ipc.maxsockbuf=2097152
net.inet.ip.redirect=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=1
net.inet.tcp.delayed_ack=1
net.inet.udp.maxdgram=65535
net.local.stream.sendspace=65535
net.local.stream.recvspace=65535
kern.maxfiles=65536
kern.maxfilesperproc=65536
net.inet.udp.checksum=1
net.inet.tcp.msl=7500
net.inet.tcp.syncookies=1
kern.securelevel=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
=========+===========+===========+============
# vi /boot/loader.conf
=========+===========+===========+============
kern.maxdsiz="536870912" //这参数在你的内存小于512M时没必要设置
kern.ipc.maxsockets="4008"
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="65535"
kern.ipc.nsfbufs="2496"
net.inet.tcp.tcbhashsize="2048"
=========+===========+===========+============
4.3 OPENBSD网络优化
# vi /etc/sysctl.conf
=========+===========+===========+============
kern.maxproc=65535
kern.maxfiles=65535
kern.somaxconn=2048
kern.maxclusters=32768
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.sendspace=32768
=========+===========+===========+============
上面各个参数的含义参看这里,这里就不写了:
http://fanqiang.chinaunix.net/system/bsd/2005-04-06/3101.shtml