sysctl.conf配置文件详解

上传人:子 文档编号:43081213 上传时间:2018-06-04 格式:DOC 页数:10 大小:19.03KB
返回 下载 相关 举报
sysctl.conf配置文件详解_第1页
第1页 / 共10页
sysctl.conf配置文件详解_第2页
第2页 / 共10页
sysctl.conf配置文件详解_第3页
第3页 / 共10页
sysctl.conf配置文件详解_第4页
第4页 / 共10页
sysctl.conf配置文件详解_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《sysctl.conf配置文件详解》由会员分享,可在线阅读,更多相关《sysctl.conf配置文件详解(10页珍藏版)》请在金锄头文库上搜索。

1、sysctl.confsysctl.conf 配置文件详解配置文件详解sysctl 是一个用来在系统运作中查看及调整系统参数的工具。有的 sysctl 参数只是用来回报目前的系统状况,例如回报目前已开机时间、所使用的操作系统版本、核心名称等等;而有的可以让我们修改参数以调整系统运作的行为,例如网络暂存内存的大小、最大的上线人数等等。而这些可以调整的参数中必须在一开机系统执行其它程序前就设定好,有的可以在开机完后任意调整。首先我们可以使用下列指令来查看目前所有的 sysctl 参数及其状况:# sysctl -a | morekern.ostype: FreeBSDkern.osrelease:

2、 5.2.1-RELEASEkern.osrevision: 199506kern.version: FreeBSD 5.2.1-RELEASE #0: Sun Apr 11 16:16:08 CST :/usr/src/sys/i386/compile/ALEXkern.maxvnodes: 17812kern.maxproc: 2020kern.maxfiles: 4040kern.argmax: 65536kern.securelevel: -1kern.hostname: kern.hostid: 0kern.clockrate: hz = 100, tick = 10000, pro

3、fhz = 1024, stathz = 128 kern.posix1version: 200112kern.ngroups: 16kern.job_control: 1kern.saved_ids: 0kern.boottime: sec = 1081672724, usec = 885137 Sun Apr 11 16:38:44 2004kern.domainname:kern.osreldate: 502010kern.bootfile: /boot/kernel/kernelkern.maxfilesperproc: 3636kern.maxprocperuid: 1818kern

4、.ipc.maxsockbuf: 262144kern.ipc.sockbuf_waste_factor: 8kern.ipc.somaxconn: 128kern.ipc.max_linkhdr: 16kern.ipc.max_protohdr: 60kern.ipc.max_hdr: 76kern.ipc.max_datalen: 132kern.ipc.nmbclusters: 9024略我们也可以使用 sysctl 显示单一的参数值,例如:# sysctl kern.ipc.maxsockbufkern.ipc.maxsockbuf: 262144并非所有的参数都可以使用 sysctl

5、 进行调整,而且有的参数对于效能的影响并不大。我们仅在此说明一些影响较明显的设定。9.2.1 kern.ipc.maxsockets这是用来设定系统最大可以开启的 socket 数目。如果您的服务器会提供大量的 FTP 服务,而且常快速的传输一些小档案,您也许会发现常传输到一半就中断。因为 FTP 在传输档案时,每一个档案都必须开启一个 socket 来传输,但关闭 socket 需要一段时间,如果传输速度很快,而档案又多,则同一时间所开启的 socket 会超过原本系统所许可的值,这时我们就必须把这个值调大一点。除了 FTP 外,也许有其它网络程序也会有这种问题。然而,这个值必须在系统一开机

6、就设定好,所以如果要修改这项设定,我们必须修改 /boot/loader.conf 才行。例如,我们要将它改成最多同时可以有 16424 个 socket,则必须在 /boot/loader.conf 中加入下列这一行:kern.ipc.maxsockets=”164249.2.2 net.inet.ip.portrange.*net.inet.ip.portrange.* 是用来控制 TCP 及 UDP 所使用的 port 范围,这个范围被分成三个部份,低范围、预设范围、及高范围。让我们看一下目前各范围 port 的情形:# sysctl -a|grep portrangenet.inet.

7、ip.portrange.lowfirst: 1023net.inet.ip.portrange.lowlast: 600net.inet.ip.portrange.first: 1024net.inet.ip.portrange.last: 5000net.inet.ip.portrange.hifirst: 49152net.inet.ip.portrange.hilast: 65535一般的网络程序都会用到预设范围的 port,然而,这个预设范围只从 1024 到 5000,这对于一台忙碌的 FTP server 或 proxy server 可能会有不足的情形。所以我们可以手动调整一下

8、 net.inet.ip.portrange.last 这个值,将它调为 10000、20000、甚至 40000 都是合理的。如果要在一开机就调整这个值,我们可以修改 /etc/sysctl.conf,并增加下列这一行:net.inet.ip.portrange.last=400009.2.3 kern.ipc.shm_use_physkern.ipc.shm_use_phys 这个选项预设为 0 (关闭),我们可以将它设为 1 (打开)。如果我们将它设成 1,则所有 System V 共享内存 (share memory,一种程序间沟通的方式)部份都会被留在实体的内存 (physical

9、memory) 中,而不会被放到硬盘上的 swap 空间。我们知道物理内存的存取速度比硬盘快许多,而当物理内存空间不足时,部份数据会被放到虚拟的内存上,从物理内存和虚拟内存之间移转的动作就叫作 swap。如果时常做 swap 的动作,则需要一直对硬盘作 I/O,速度会很慢。因此,如果我们有大量的程序 (数百个) 需要共同分享一个小的共享内存空间,或者是共享内存空间很大时,我们可以将这个值打开。这个值可以在开机完成后才设定,因此只要放在 /etc/sysctl.conf 中即可:kern.ipc.shm_use_phys=19.2.4 vfs.vmiodirenable这个选项预设被设为 1,也

10、就是打开的状态。它被用来决定一个目录中的结构 (目录下的其它文件名称等等) 被快取在内存中的行为。一般的目录结构可能都不大,而这些目录结构会被快取在物理内存中。物理内存中所存放的目录结构快取有限,所以不管我们的物理内存有多大,预设都只会快取一定大小的目录结构。如果我们将这个选项打开,系统将 buffer cache 放在虚拟内存的快取中,目录结构也就会被存放在虚拟内存中。这样的好处是所有的内存空间都可以被拿来做目录的快取,而缺点是最小用来存放目录结构的快取会从 512 bytes 变成 4K。如果您的系统物理内存空间有限,建议您将这个选项关闭。但如果您的系统需要进行大量档案操作,例如 prox

11、y、多人使用的邮件服务器、或是 news server 等,建议将这个选项打开。9.2.5 vfs.write_behind这个选项预设为 1,也就是打开的状态。在打开时,在系统需要写入数据在硬盘或其它储存设备上时,它会等到收集了一个 cluster 单位的数据后再一次写入,否则会在一个暂存区空间有写入需求时就立即写到硬盘上。这个选项打开时,对于一个大档案写入速度非常有帮助。但如果您遇到有很多行程延滞在等待写入动作时,您可能必须关闭这个功能。9.2.6 vfs.hirunningspace这个值决定了系统可以将多少数据放在写入储存设备的等候区。通常使用默认值即可,但当我们有多颗硬盘时,我们可以

12、将它调大为 4MB 或 5MB。但必须注意的是,太大的值反而会造成效能低落。9.2.7 net.inet.tcp.sendspace 及 net.inet.tcp.recvspace这二个选项分别控制了网络 TCP 联机所使用的传送及接收暂存区的大小。预设的传送暂存区为 32K,而接收暂存区为 64K。如果需要加速 TCP 的传输,可以将这二个值调大一点,但缺点是太大的值会造成系统核心占用太多的内存。如果我们的机器会同时服务数百或数千个网络联机,那么这二个选项最好维持默认值,否则会造成系统核心内存不足。但如果我们使用的是 gigabite 的网络,将这二个值调大会有明显效能的提升。传送及接收的

13、暂存区大小可以分开调整,例如,假设我们的系统主要做为网页服务器,我们可以将接收的暂存区调小一点,并将传送的暂存区调大,如此一来,我们就可以避免占去太多的核心内存空间。还有要注意的是,除了这二个选项可以控制网络传输暂存区大小外,route 这个指令也可以用来依路由路径的不同指定暂存区大小。另外 ipfw 等防火墙软件也可以用来限制每个联机所能使用的网络频宽。如果我们将传送或接收的暂存区设为大于 65535,除非我们的服务器本身及客户端所使用的操作系统支持 TCP 协议的 windows scaling extension (请参考 RFC 1323 文件)。FreeBSD 预设已支援 rfs13

14、23 (即 sysctl 的 net.inet.tcp.rfc1323 选项)。9.2.8 net.inet.tcp.always_keepalive当这个选项打开时,系统会定期送出keepalives以检查一个 TCP 联机是否中断。在打开的状况下,所有运作的网络程序都会有定时检查联机是否中断的功能,否则只有当应用程序本身支持时才有此功能。这个选项打开的好处是让系统更便于管理网络联机,尤其是当我们系统中常有一些莫名其妙就中断联机的使用者时。例如,当一个使用者利用拨接连到系统时,很可能在完成一个完整的 TCP 联机之前,就因为拨接中断而造成联机异常中断。当然,在某些情况下,也有可能会造成系统误

15、判网络联机已中断而结束这个 TCP 联机。9.2.9 net.inet.tcp.delayed_ackTCP 协议有一个特性,就是当收到客户端的数据时,会传回一个 ACK (acknowledgement) 的封包,以确认已收到数据。然而,我们也可以将 ACK 封包和所要回传的资料一起送出。例如,当我使用 telnet 进入系统时,在输入指定时,当我们在键盘上敲打一个字符,系统会送回一个表示已接收到该字符的 ACK 封包,并传回一个含有该字符的封包以在终端机上显示。当 net.inet.tcp.delayed_ack 打开时,系统会将 ACK 和显示该字符的封包一传送,而不需分成二个封包。所以

16、这个选项打开时,可以将封包数量减少一半,以加速网络传输。其它的网络服务,例如,WWW、 SMTP、POP3 等也都具有这种特性。9.2.10 kern.ipc.somaxconn这个选项控制了 TCP 联机等候区最多可以等待的联机数量,其默认值为 128,不过这个值对于一台忙碌的服务器而言可能小了点。例如大型的网页服务器、邮件服务器,我们可以将它设为 1024。要注意的是在一些网络服务的程序中,如 Apache 及 sendmail 也有自己的等待数量设定,我们可能也要在那些软件上做一些设定才会让 kern.ipc.somaxconn 发生作用。将这个选项的值调大一点还有一个好处,就是在面对 Denial of service 的攻击时,有较好的防卫能力。9.2.11 kern.maxfiles这个选项控制了系统中支持最多开启的档案数量,这个值通常是几千个档,但对于一台忙碌的数据库系统或是会开启许多档案的服务器而言,我们可以将它调高为一、二万。9.2.12 kern.maxusers这是用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号