占位图像 用户ID: 密码: 验证码: 登录 注册     占位图像
 
教育168搜索

a
频道信息
学前教育 基础教育
小学 初中
高中 高等教育
心理学 机械工程
园林 IT教育
办公软件 Director
Authorware 图形图象
FIREWORKS CORELDRAW
Maya PhotoShop
AutoCAD 3D
操作系统 Windows xp
Windows Vista Linux
Windows 2003 Windows 2000
FreeBSD 注册表
网站制作 FLASH
Dreamweaver CSS教程
装修设计 LightScape
装修风水 方案设计
英语 商务外语
素质教育 法制教育
企业培训
最新更新
·教你制作可以随身携带的Fre
·FreeBSD5.3与Apa
·FreeBSD5.3 Apa
·初学者入门:FreeBSD系
·FREEBSD下搭建支持JS
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSD下Apache
·FreeBSDhandboo
·FreeBSD4.7 Qma
·FREEBSD升级及优化全攻

点击排行
·FreeBSD网站平台建设全
·初学者入门:FreeBSD系
·教你制作可以随身携带的Fre
·FreeBSD5.3 Apa
·FreeBSD5.3与Apa
·FreeBSDhandboo
·porttree更新
·FreeBSD命令lastc
·FreeBSDkernel编
·在FreeBSD5.0上配置
·FreeBSDhandboo
·FreeBSD命令lastc
·FreeBSD上的软件安装方
·FreeBSD中文化全攻略
·利用FreeBSD组建安全的
·FreeBSDhandboo
·在FreeBSD上运行Win
·FreeBSD与Linux的

FreeBSDhandbook中文版6配置与调整
发布日期:2005-3-28  浏览:435次
关键字:
目录
6配置与调整
6.1概要
6.2初步配置
6.3核心配置
6.4应用程序配置
6.5启动服务
6.6虚拟主机
6.7配置文件
6.8用sysctl调整
6.9调整磁盘
6.10调整内核限制
=============================================================

(翻译中出现的任何问题或错误,请广大读者及时反馈给我:FreeBSDhandbook@163.com)
6.1概要
FreeBSD系统管理配置的情况。这章也会描述一些用来调整FreeBSD系统性能的参数。
.
.
.
.
.
.
.
.
.
6.2初步配置
6.2.1分区设计
6.2.1.1基础分区
磁道传输数据要比从内磁道传输数据来得快,这一点很重要。记住这点,你可以把比较小的,
FreeBSD使用手册
II.系统管理
第6章配置与调整
正确地配置系统能充分地减少以后维护和升级系统所需的工作量。这章将描述一些
读完这章你将了解到这些:
为什么和如何在你的硬盘上分配空间,规划和放置文件系统和交换分区。
rc.conf配置文件和/usr/local/etc/rc.d启动系统的基础。
如何在你网络设备上分配虚拟主机。
如何在/etc上使用不同的配置。
如何使用sysctl变量调节FreeBSD。
如何调整磁盘的性能和修改内核的限制。
在阅读这章之前你应当:
了解UNIX和FreeBSD的基础知识(第3章)。
熟悉如何与FreeBSD的源文件保持同步。
内核配置和编译的基础(第9章)。
当使用disklabel或sysinstall命令划分你的文件系统时,需要记住硬盘驱动器从外
第1页FreeBSD使用手册
经常访问的如root和swap放在靠近外磁道的地方。可以把比较大的分区如/usr放在内磁
道上。这样做,按照相同的顺序创建分区:root,swap,/var,/usr。
你的/var分区的大小能反映你机器的使用状况。/var主要用来存放:邮箱,打印spool和
日志文件。邮箱和日志文件可能会达到一个无法预料的数量,这主要取决于在你的系统上有
多少用户和你的日志文件可以保存多长时间。如果你想要运行一个邮件服务器,一个超过G
数量级的/var分区是必要的。另外,/var/tmp要足够大,以便于能够包含足够的你可能会
添加的packages。
/usr分区保存了支持系统所需的文件和一个叫做/usr/local的用来保存从ports安装
文件的子目录。如果你不使用ports也不希望把系统源代码保存在机器上,你可以节省超过
1G的/usr分区。如果你安装许多ports,我们建议至少要为/usr保留2G的空间,如果你也
想把系统源代码保存在你的机器上,我们建议为/usr保留3G的空间。不要低估了这个分区
所需要的空间的大小,它可能会不断增加,让你非常吃惊!当你调整分区的大小时,记住你
的系统可能会不断增加对空间的需求。
注意:一些使用sysinstall的自动默认分区的用户会发现,一段时间以后他们的root
或/var分区会变得很小。建议尽可能把分区分的大一些。
6.2.1.2Swap分区
通常你的交换分区应当是主内存的两倍。例如,如果机器有128M的内存,交换分区应
当是256MB。带有比较少内存的机器可以通过增加交换分区来提高机器的性能。我们并不建
议你配置少于256MB的SWAP分区,你应当记住将来随着内存的扩充,你的swap分区也要相
应地扩大。当swap分区至少是主内存的两倍时,内核的VM页面调度程序将被用来调节系统
到最佳状态。如果你给你的机器添加更多的内存,配置太少的swap,会导致在VM页面扫描
代码时变得效率低下。
最后,在配置有很多SCSI(或IDE)磁盘的较大系统中,我们强烈建议你给每一个硬盘
都创建一个SWAP。Swap分区应当拥有同样的大小。内核可能会处理成任意大小,但内部数
据结构则是最大swap分区的4倍。保持swap分区同样的大小,可以允许内核最佳地调度
swap空间来访问磁盘。不要为此过分担心,交换空间正是UNIX系统的长处。
6.2.1.3为什么要分区?
第2页FreeBSD使用手册
为什么要分区?为什么不创建一个大的根分区?我并不介意大小问题!有很多原因证实
这不是一个好主意。首先,每个分区有不同的操作特性,把它们分开可以允许文件系统去自
动调节自己以适应那些特性。例如,根和/usr分区通常是读得比较频繁,写得比较少,而
象/var和/var/tmp则读写都比较频繁。
6.3核心配置
负责系统配置信息的主要是/etc/rc.conf。这个文件包含了配置文件很宽的范围。在系
统启动时主要被用来配置系统。它的名字直接表明了这点;配置信息一般是rc*这样类型的
文件。一个系统管理员应当在rc.conf文件中建立一个记录来修改/etc/defaults/rc.conf
的默认配置。默认文件不应当被逐字地拷到/etc。所有系统的任何变化将被记录在rc.conf
文件中。由于rc.conf可以被sh命令打开阅读,所以完成这点很简单。例如:
rc.conf:
·rc.conf.site
·hostname=”node15.webcompany.com”
·network_interfaces=”fxp0lo0”
·ifconfig_fxp0=”inet10.1.1.1”
rc.conf.site:
·defaultrouter=”10.1.1.254”
·saver=”daemon”
·blanktime=”100”
Rc.conf.site文件会被分发给每一个使用eg.rsync的系统,而rc.conf文件仍保持独立。
通过使用sysinstall或makeworld来升级系统不会覆盖rc.conf文件,所以系统配置信
息不会被丢失。
第3页FreeBSD使用手册
6.4应用程序配置
典型的,已安装的应用程序有它自己的配置文件,有它自己的语法。这些文件与基本系
统相分离是很重要的,以至于它们能被package管理工具很好地定位和管理。另外,这些文
件被安装在/usr/local/etc中。一个应用程序有许多配置文件,一个子目录将被创建以支
持它们。
通常,当一个port或package被安装时,默认的配置文件也会被安装。这些通常可以
通过.default后缀来辨别。如果不存在应用程序的配置文件,他们会通过拷贝.default文
件来创建。例如,这儿是/usr/local/etc/apache:
·rw-r—r--1rootwheel2184May201998access.conf
·rw-r—r--1rootwheel2184May201998access.conf.default
·rw-r—r--1rootwheel9555May201998httpd.conf
·rw-r—r--1rootwheel9555May201998httpd.conf.default
·rw-r—r--1rootwheel12205May201998magic
·rw-r—r--1rootwheel12205May201998magic.default
·rw-r—r--1rootwheel2700May201998mime.types
·rw-r—r--1rootwheel2700May201998mime.types.default
·rw-r—r--1rootwheel7980May201998srm.conf
·rw-r—r--1rootwheel7933May201998srm.conf.default
可以看到只有srm.conf文件已发生了变化。一个后来的apache的升级不会修改这个变
化的文件。
6.5启动服务
对一个系统来说,支持许多服务是很普通的。这些可能是用不同的形式来启动,每一个
都有不同的长处。
第4页一个port或packagescollection安装软件通常把一个脚本放在/usr/local/etc/rc.d中,
它可以在系统启动的时候被自动调用,在系统关闭的时候自动停止。这是一种我们推荐使用
的启动服务的方法。这些脚本会作为安装package的一部分被注册,当package被删除的时
候它也会被删除。在/usr/local/etc/rc.d中,一个普通的启动脚本是这样的:
#!/bin/sh
echo-n‘FooBar’
case“$1”in
start)
/usr/local/bin/foobar
;;
stop)
kill-9‘cat/var/run/foobar.pid‘
;;
*)
echo“Usage:‘basename$0‘{start|stop}”>&2
exit64
;;
esac
exit0
这个脚本随着系统的启动而被呼叫,随着系统的关闭而停止。当一个连接被一个相配的
port接收到时,一些服务会被inetd所调用。这个对邮件阅读服务器来说使用比较普遍
(POP,IMAP等)。这些服务可以通过编辑/etc/inetd.conf文件来启用。可以看看inetd
命令的说明就可以了。
FreeBSD使用手册
第5页FreeBSD使用手册
一些额外的系统功能不太可能会被隐藏在/etc/rc.conf中。这些通常能够使用命令来
调用它们。就象在FreeBSD3.1中,没有默认的/etc/rc.local。如果它被系统管理员创建,
它将不可能以普通的形式得到尊重。注意rc.local通常被作为是最后一个访问的记录;如
果有一个比较好的地方能启动一个服务,就是在那儿。
注意:不要把任何命令都放在/etc/rc.conf中。要启动后台程序,或在启动时运行任
何命令,可以在/usr/local/etc/rc.d中添加一行脚本。
使用cron程序来启动系统服务也是可以的。这种方法有很多优势,不仅仅是cron能运
行这些进程,这些服务也可以被没有root权限的用户来启动和操作。
这利用了cron的一个非正式文件的特性;时钟的形式可能会被“@reboot”这种形式所
取代,当系统启动以后,cron程序被很快执行,这将导致工作暂停运行。
6.6虚拟主机
FreeBSD的一个非常普通的应用是虚拟主机功能,一台服务器可以虚拟成多台服务器来
提供网络服务。这只需要分配多个网络地址给一个简单的接口就可以实现。
一个给定的网络接口有一个“real”地址,也会有很多“alias”地址。这些别名通常
被添加到/etc/rc.conf中。
一个接口“fxp0”的别名记录是这样的:
ifconfig_fxp0_alias0=“inetxxx.xxx.xxx.xxxnetmaskxxx.xxx.xxx.xxx”
注意:别名记录必须用alias0启动,然后按顺序向上处理,如_alias1,_alias2等。
配置进程将在第一个丢失的数字时停止。别名的子网掩码的计算是很重要的,但幸运的是它
非常简单。对于一个给定的接口,必须有一个正确反映网络的子网掩码的地址。
例如:假设fxp0接口连接到两个网络,10.1.1.0的子网掩码是255.255.255.0,而
202.0.75.16的子网掩码是255.255.255.240。我们要求系统显示从10.1.1.1到10.1.1.5
和202.0.75.17到202.0.75.20。
要正确配置适配器可以这样做:
ifconfig_fxp0=”inet10.1.1.1netmask255.255.255.0”
ifconfig_fxp0_alias0=”inet10.1.1.2netmask255.255.255.255”
第6页FreeBSD使用手册
ifconfig_fxp0_alias1=”inet10.1.1.3netmask255.255.255.255”
ifconfig_fxp0_alias2=”inet10.1.1.4netmask255.255.255.255”
ifconfig_fxp0_alias3=”inet10.1.1.5netmask255.255.255.255”
ifconfig_fxp0_alias4=”inet202.0.75.17netmask255.255.255.240”
ifconfig_fxp0_alias5=”inet202.0.75.18netmask255.255.255.255”
ifconfig_fxp0_alias6=”inet202.0.75.19netmask255.255.255.255”
ifconfig_fxp0_alias7=”inet202.0.75.20netmask255.255.255.255”
6.7配置文件
6.7.1/etc规划
在配置信息中有很多的目录。这些包括:
一般的系统配置信息:这儿的数据是系统指定的。/etc
系统配置文件的默认版本。/etc/defaults
额外的sendmail配置,其他MTA配置文件。/etc/mail
/etc/pppprograms.user-和kernel-ppp程序的配置。
/etc/namedbBind数据的默认定位。通常启动文件是定位在这儿,在/var/db中
参考其他数据的一个指示。
安装应用程序的配置文件。可以参考每个应用程序的子目录。/usr/local/etc
/usr/local/etc/rc.d安装应用程序的启动/停止的脚本。
稳定的系统指定的数据文件:bind区域文件,数据库文件等等。/var/db
6.7.2主机名
6.7.2.1/etc/resolv.conf
/etc/resolv.conf描述了FreeBSD如何访问internet的域名系统(DNS)。最普通的
resolv.conf的记录是:
nameserver要查询的域名服务器的IP地址。服务器按照顺序查询。
搜索域名的列表。这通常是由本地的域名决定的。search
本地域名。domain
第7页FreeBSD使用手册
一个典型的resolv.conf:
searchfoobar.com
nameserver147.11.1.11
nameserver147.11.100.30
Dhclient通常会把DHCP服务器接收到的信息重写resolv.conf。
6.7.2.2/etc/hosts
/etc/hosts是一个文本数据库。它是用来联合DNS和NIS给IP地址的影射表提供名字。
本地的电脑通过一个LAN进行连接,可能会作为一个简单的命名目的而放在这儿,以代替设
置一个名称服务器。另外,/etc/hosts能被用来提供一个本地internet名称的记录,减少
搜索普通访问名称的需求。
#$FreeBSD$
#
#HostDatabase
#Thisfileshouldcontaintheaddressesandaliases
#forlocalhoststhatsharethisfile.
#InthepresenceofthedomainnameserviceorNIS,thisfilemay
#notbeconsultedatall;see/etc/nsswitch.conffortheresolutionorder.
#
#
::1localhostlocalhost.my.domainmyname.my.domain
127.0.0.1localhostlocalhost.my.domainmyname.my.domain
#
第8页FreeBSD使用手册
#Imaginarynetwork.
#10.0.0.2myname.my.domainmyname
#10.0.0.3myfriend.my.domainmyfriend
#
#AccordingtoRFC1918,youcanusethefollowingIPnetworksfor
#privatenetswhichwillneverbeconnectedtotheInternet:
#
#10.0.0.0-10.255.255.255
#172.16.0.0-172.31.255.255
#192.168.0.0-192.168.255.255
#
#IncaseyouwanttobeabletoconnecttotheInternet,youneed
#realofficialassignednumbers.PLEASEPLEASEPLEASEdonottry
#toinventyourownnetworknumbersbutinsteadgetonefromyour
#networkprovider(ifany)orfromtheInternetRegistry(ftpto
#rs.internic.net,directory‘/templates’).
#
/etc/hosts的简单格式:
[Internetaddress][officalhostname][alias1][alias2]...
例如:
10.0.0.1myRealHostname.foobar.commyRealHostnamefoobar1foobar2
第9页FreeBSD使用手册
6.7.3日志文件配置
6.7.3.1syslog.conf
Syslog.conf是syslogd程序的配置文件。它指出记录到日志文件的syslog信息的类
型。
#$FreeBSD$
#
#SpacesAREvalidfieldseparatorsinthisfile.However,
#other*nix-likesystemsstillinsistonusingtabsasfield
#separators.Ifyouaresharingthisfilebetweensystems,you
#maywanttouseonlytabsasfieldseparatorshere.
#Consultthesyslog.confmanpage.
*.err;kern.debug;auth.notice;mail.crit/dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err/var/log/messages
security.*/var/log/security
mail.info/var/log/maillog
lpr.info/var/log/lpd-errs
cron.*/var/log/cron
*.errroot
*.notice;news.errroot
*.alertroot
*.emerg*
#uncommentthistologallwritesto/dev/consoleto/var/log/console.log
第10页FreeBSD使用手册
#console.info/var/log/console.log
#uncommentthistoenableloggingofalllogmessagesto/var/log/all.log
#*.*/var/log/all.log
#uncommentthistoenableloggingtoaremoteloghostnamedloghost
#*.*@loghost
#uncommenttheseifyou’rerunninginn
#news.crit/var/log/news/news.crit
#news.err/var/log/news/news.err
#news.notice/var/log/news/news.notice
!startslip
./var/log/slip.log
!ppp
./var/log/ppp.log
6.7.3.2newsyslog.conf
Newsyslog.conf是newsyslog程序的配置文件。一个被cronnewsyslog安排来运行的
程序决定了什么时候日志文件要求重新存档或整理。Logfile会被改为logfile.1,
logfile.1会被改为logfile.2等等。另外,日志文件会用gzip格式进行存档。它们是这
样命名的:logfiel.0.gz,logfile.1.gz等等。
Newsyslog.conf指出了哪个文件需要被管理,有多少需要被保存,什么时候他们会被
调用。当他们达到一定大小或到一个适当的周期时,日志文件需要被重新整理。
#configurationfilefornewsyslog
#$FreeBSD$
#
第11页FreeBSD使用手册
#logfilename[owner:group]modecountsizewhen[ZB][/pid_file]
[sig_num]
/var/log/cron6003100*Z
/var/log/amd.log6447100*Z
/var/log/kerberos.log6447100*Z
/var/log/lpd-errs6447100*Z
/var/log/maillog6447*@T00Z
/var/log/sendmail.st64410*168B
/var/log/messages6445100*Z
/var/log/all.log6007*@T00Z
/var/log/slip.log6003100*Z
/var/log/ppp.log6003100*Z
/var/log/security60010100*Z
/var/log/wtmp6443*@01T05B
/var/log/daily.log6407*@T00Z
/var/log/weekly.log64051$W6D0Z
/var/log/monthly.log64012*$M1D0Z
/var/log/console.log6405100*Z
6.7.4sysctl.conf
第12页FreeBSD使用手册
Sysctl.conf看起来象rc.conf。它的值以这种形式来设置:variable=value。指定的
值需要在进入多用户模式时才能被设置。在这种模式中不是所有的变量都能被设置。
一个sysctl.conf关闭引起重大错误产生的日志,然后让Linux程序知道他们真的运行
在FreeBSD下面。
kern.logsigexit=0#Donotlogfatalsignalexits(e.g.sig11)
compat.linux.osname=FreeBSD
compat.linux.osrelease=4.3-STABLE
6.8用sysctl进行调整
sysctl是一个允许你对一个运行着的FreeBSD系统进行修改的接口。这包括许多TCP/IP
堆栈和虚拟内存系统的高级选项,它通常可以为一个有经验的系统管理员提高系统的性能。
能够使用sysctl来阅读和设置超过5百个系统变量。
基于这点,sysctl起到两个功能:阅读和修改系统设置。去看看所有可读的变量:
sysctl-a
阅读一个详细的变量,例如,kern.maxproc:
sysctlkern.maxproc
kern.maxproc:1044
设置一个特殊的变量,使用=选项:
#sysctlkern.maxfiles=5000
kern.maxfiles:2088->5000
Sysctl变量的设置通常不是字符,数字,就是布尔类型的。一个布尔类型的树1代表
yes,0代表no。
6.9调整磁盘
6.9.1Sysctl变量
6.9.1.1vfs.vmiodirenable
第13页FreeBSD使用手册
vfs.vmiodirenablesysctl变量默认为0(off),也可以被设置成0或1。很多目录
是比较小,只使用一小片段(典型的:1k),甚至更少(典型的:512bytes)。然而,当
在默认的模式下操作时,即使你有很多内存,缓存器只缓存一些固定的目录。打开这个
sysctl可以允许缓存器使用VM页面缓存来缓存目录。这样的优势是所有的内存都能被缓存
目录所利用。不利的是最小的用来缓存目录的核心内存要大于512bytes(典型的是:4K)。
如果你运行有大量文件处理的服务时,我们建议把这个选项打开。这样的服务包括web缓存、
大邮件系统和新闻系统。打开这项服务通常不会降低系统的性能,只是会浪费一点内存,但
你要仔细检查一下。
6.9.1.2hw.ata.wc
FreeBSD通常把IDE写入缓存关闭掉。这可以减少写入磁盘时需要的带宽。基本上,当
写入完成后,IDE基本上就没事了。由于IDE写入缓存被打开,IDE驱动器将不再按顺序把
数据写入到硬盘中。当磁盘处于比较大的负荷时,它们通常能缓冲写入的数据。不幸的是,
这样会丢失很多性能,最好还是改回默认值。你应当通过观察hw.ata.wcsysctl变量来检
查你的系统的默认情况。如果IDE的写入缓存被关闭,你可以在内核变量中把它改回1就可
以把它打开。这必须在启动时从引导程序过程中进行。在内核启动之后再这样做就没有用了。
6.9.2SoftUpdates
Tunefs能被用来很好地调整文件系统。可以这样做:
#tunefs-nenable/filesystem
#tunefs-ndisable/filesystem
一个文件系统当被挂上的时候不能使用tunefs进行修改。在单用户模式下,在所有分
区都没有被挂上之前,起用SoftUpdates是最佳时机。
通过使用内存缓冲器,SoftUpdates能够极大地提高文件的性能,只要是文件创建和删
除。我们建议在你的所有文件系统上都打开SoftUpdates。你应当清楚两点:第一,
SoftUpdates能在系统出现错误时保证系统的一致性,但在升级了物理磁盘后可能只需要几
秒钟。如果你的系统崩溃了,你可能会丢失很多的工作。第二,SoftUpdates可以推迟文件
系统块的释放时间。如果你有一个接近满了的文件系统,对它作一个主升级,make
installworld,可能会超出运行空间,从而引起升级失败。
第14页FreeBSD使用手册
6.10调整内核限制
6.10.1文件/进程限制
6.10.1.1kern.maxfiles
kern.maxfiles可以根据你系统的要求加大或减小。这个变量指出了在你系统上描述的
最大数量文件。可以用dmesg来显示文件描述符的情况。
每一个打开的文件,套接字,或fifo使用的文件描述符,都依赖于当前运行的服务的
种类和数量。
kern.maxfile的默认值可以在你的内核配置中通过maxusers选项来指定。
kern.maxfiles可以按比例地增加maxuser的值。
6.10.2网络限制
NMBCLUSTERS内核配置选项指出了系统可用的网络mbufs的数量。一个具有大量负载的
服务器如果MBUFs比较少,就会影响FreeBSD的性能。每一个cluster大概需要2K的内存,
所以1024个cluster就需要保留2MB的内存给网络缓存。如果你的服务器超过一个并发连
接,那每个连接需要吃掉一个16k的接收缓存和一个16K的发送缓存,你需要提供32MB的
内存给网络缓存以确保web服务器的稳定。一个最笨的计算方法是乘以2,所以
32MBx2=64MB/2K=32768。
第15页
关键字:

相关信息 用户评论
·教你制作可以随身携带的FreeBSD系统
·FreeBSD5.3与Apache2.0建立列目录
·FreeBSD5.3 Apache ssl认证
·初学者入门:FreeBSD系统的安装与优化
·FREEBSD下搭建支持JSP的WEBSERVER
·FreeBSDhandbook中文版10安全
·FreeBSDhandbook中文版15串口通讯
·FreeBSDhandbook中文版14声卡
·FreeBSDhandbook中文版11打印(1)基本设置
·FreeBSDhandbook中文版11打印(1)基本设置
·FreeBSDhandbook中文版11打印(2)高级打印机设置A.过滤器
·FreeBSDhandbook中文版11打印(2)高级打印机设置B.Header
·FreeBSDhandbook中文版11打印(3)使用打印机
·FreeBSDhandbook中文版12存储
·FreeBSD下Apache2.0运行模型分析及性能调整
·FreeBSDhandbook中文版5XWindow系统
·FreeBSD4.7 Qmail Mysql Vpopmail QmailAdmin Sq
·FREEBSD升级及优化全攻略

 

更多评论

验证码:
验证码