网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫。为解决此问题,经过两天的整理,查了N多资料,将大家常用的总结如下,很多默认的不需要修改的暂未涉及,今后将逐步把所有的项目都有个翻译、讲解、修改建议,如有修改,将以此文为准,其他地方的内容,本人不负责更新。因此转载请注明链接地址:http://www.bsdlover.cn/html/38/n-138.html如果您有补充或修订意见,请于本文后评论或到论坛http://bbs.bsdlover.cn讨论,万分感谢!M;p(E{gR$^ ABSD爱好者乐园(x R5hJwH/h
###################BSD爱好者乐园;ZMF*F#L*b,D
所有rfc相关的选项都是默认启用的,因此网上的那些还自己写rfc支持的都可以扔掉了:)BSD爱好者乐园aO-u.H }
###############################
%K B:a[(HR"LtBSD爱好者乐园2U,fPa![ j8W
net.inet.ip.sourceroute=0
xKO9Bs&mh'Qnet.inet.ip.accept_sourceroute=0
,^/I@%xgHm.^d#############################
7axJ+\ [ dH TE%R通过源路由,***者可以尝试到达内部IP地址 --包括RFC1918中的地址,所以
U(t5Ke(H;O HlV5F;Q~1f不接受源路由信息包可以防止你的内部网络被探测。
e2ym X$e#################################BSD爱好者乐园p@;P:pd+F`v eIl
'AF!a@G2Cinet.inet.tcp.drop_synfin=1BSD爱好者乐园*S7YHu5blS.Q+C
###################################
$yU;YZ.~+\B;e安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用,可以阻止某些OS探测。
!@"DI0Q:[@4jH$T##################################
5i{zk }Pxc)`
Uy xH~$]6T,\kern.maxvnodes=8446BSD爱好者乐园B Y(tK*OV
#################http://www.bsdlover.cn#########
Y*is6R]d Q$?vnode 是对文件或目录的一种内部表达。 因此, 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O。BSD爱好者乐园xp@!NnQP
一般而言, 这是由操作系统自行完成的,也不需要加以修改。但在某些时候磁盘 I/O 会成为瓶颈,BSD爱好者乐园K]9Z*q/T4[*|$\
而系统的 vnode 不足, 则这一配置应被增加。此时需要考虑是非活跃和空闲内存的数量。
.d:F,la9T @N要查看当前在用的 vnode 数量:BSD爱好者乐园*w?&b[J
# sysctl vfs.numvnodes
1q4i,R G(R v+S nPvfs.numvnodes: 91349
7V,u Q2bt_X@D@2F!`要查看最大可用的 vnode 数量:
*\ Fzj.sgj"L# sysctl kern.maxvnodesBSD爱好者乐园 q%~ T} Oxc9W
kern.maxvnodes: 100000
G5nV }7e:h如果当前的 vnode 用量接近最大值,则将 kern.maxvnodes 值增大 1,000 可能是个好主意。
'M] y0i#xl B您应继续查看 vfs.numvnodes 的数值, 如果它再次攀升到接近最大值的程度,
\ rWjsZld仍需继续提高 kern.maxvnodes。 在 top(1) 中显示的内存用量应有显著变化,
+V'Yr@;X更多内存会处于活跃 (active) 状态。
Hmi.I8o~Q$W9Cy'Oy####################################BSD爱好者乐园v?)P&F~bp w&y0l
BSD爱好者乐园5v)?&J)I'W[5^i"d

{6| E8o9D8pkern.maxproc: 964BSD爱好者乐园Gb"B0C3`)]8_A
#################http://www.bsdlover.cn#########
;V5} AazMaximum number of processes
LbuqDv6\####################################
*v cAuw G!ukern.maxprocperuid: 867
1V9F b8G:WC'`m,z#################http://www.bsdlover.cn#########BSD爱好者乐园NJ:G|;z5tM8] L.x
Maximum processes allowed per useridBSD爱好者乐园KEHu"Pc^ O
####################################BSD爱好者乐园I z3?\8pw
因为我的maxusers设置的是256,20+16*maxusers=4116。BSD爱好者乐园;{vS9R!jZ fyc
maxprocperuid至少要比maxproc少1,因为init(8) 这个系统程序绝对要保持在运作状态。BSD爱好者乐园g%X L"t d y R `$n
我给它设置的2068。
qUXCPa{M,^,oBSD爱好者乐园*h] oS[,N|8V\
BSD爱好者乐园SVS;A.hiuJ S
kern.maxfiles: 1928BSD爱好者乐园n(@ O6S(N!H pe
#################http://www.bsdlover.cn#########
kI9q'VL系统中支持最多同时开启的文件数量,如果你在运行数据库或大的很吃描述符的进程,那么应该设置在20000以上,
L)g%v FUq比如kde这样的桌面环境,它同时要用的文件非常多。
[mp6`9_'XMq一般推荐设置为32768或者65536。BSD爱好者乐园G%nOB2w eI1@0d
####################################
AO._:SoyrBSD爱好者乐园#T ]Q5V"M ][ [9N2u
kern.argmax: 262144BSD爱好者乐园.Y-RT6cdrfa
#################http://www.bsdlover.cn#########BSD爱好者乐园f4E;v2w/o#]n$L i
maximum number of bytes (or characters) in an argument list.
4Y6Af|6t$a.p命令行下最多支持的参数,比如你在用find命令来批量删除一些文件的时候
5^1g$N_t(Rc3w @Q)U#rfind . -name "*.old" -delete,如果文件数超过了这个数字,那么会提示你数字太多的。
o'A~5j``S2g,R#X可以利用find . -name "*.old" -ok rm {} \;来删除。BSD爱好者乐园pJVd.q Su
默认的参数已经足够多了,因此不建议再做修改。
$u9BU1xd*GR:G#c4H####################################
fo C3Ws,zYBSD爱好者乐园Zu#} M-o.fx
kern.securelevel: -1BSD爱好者乐园ItC3GN?
#################http://www.bsdlover.cn#########
E,yb}.vq(rA-1:这是系统默认级别,没有提供任何内核的保护错误;
3{~eELDQ0:基本上作用不多,当你的系统刚启动就是0级别的,当进入多用户模式的时候就自动变成1级了。
Y_X#A4J&RC$N1:在这个级别上,有如下几个限制:
V7r @yC'RoO  a. 不能通过kldload或者kldunload加载或者卸载可加载内核模块;BSD爱好者乐园FH CO(iz1D:c.R
  b. 应用程序不能通过/dev/mem或者/dev/kmem直接写内存;
/B,k tab+u  c. 不能直接往已经装在(mounted)的磁盘写东西,也就是不能格式化磁盘,但是可以通过标准的内核接口执行写操作;BSD爱好者乐园PH"} z"|:nKh`3j hK
  d. 不能启动X-windows,同时不能使用chflags来修改文件属性;
D'}P["o7[t U2:在 1 级别的基础上还不能写没装载的磁盘,而且不能在1秒之内制造多次警告,这个是防止DoS控制台的;
X,c:C'kdr3:在 2 级别的级别上不允许修改IPFW防火墙的规则。
5t-C:zAT['@c Dw  如果你已经装了防火墙,并且把规则设好了,不轻易改动,那么建议使用3级别,如果你没有装防火墙,而且还准备装防火墙的话,不建议使用。
[X}'kW*^ iw \3A我们这里推荐使用 2 级别,能够避免比较多对内核***。BSD爱好者乐园4LA z;PtX
####################################
:N[1m Ku]kBSD爱好者乐园 s7n+O7}!o5au%C
kern.maxfilesperproc: 1735BSD爱好者乐园f6MCPBO
#################http://www.bsdlover.cn#########
-aR,lfQ每个进程能够同时打开的最大文件数量,网上很多资料写的是32768
GATF0W/] f+myoQ除非用异步I/O或大量线程,打开这么多的文件恐怕是不太正常的。BSD爱好者乐园:s2H_]1[P?
我个人建议不做修改,保留默认。BSD爱好者乐园;O |O6doI
####################################
cu8y"[kK
w3sZX"x|
@4Q,[(Ck+r7ZlTkern.ipc.maxsockbuf: 262144
7^&P8dbO8K/VO E Q#################http://www.bsdlover.cn#########
@[(Y4a5n g;l)s最大的套接字缓冲区,网上有建议设置为2097152(2M)、8388608(8M)的。BSD爱好者乐园/n }#K)d%t@
我个人倒是建议不做修改,保持默认的256K即可,缓冲区大了可能造成碎片、阻塞或者丢包。
y(J~ir-j####################################BSD爱好者乐园#G1l v Y'y!E8L5`;t p
_+_p-Id'{
m2M,q"@*i@p%nkern.ipc.somaxconn: 128
p {n#|7|M nZ3I#################http://www.bsdlover.cn#########BSD爱好者乐园#lDy|"s5X7p
最大的等待连接完成的套接字队列大小,即并发连接数。
4P&mu["iC/C"B;} q高负载服务器和受到Dos***的系统也许会因为这个队列被塞满而不能提供正常服务。BSD爱好者乐园+bD8GLWc
默认为128,推荐在1024-4096之间,根据机器和实际情况需要改动,数字越大占用内存也越大。
3GF_9hz6\2v6V####################################
/_o-me/MP+dHBSD爱好者乐园3Q r Lb7w4v[1h
BSD爱好者乐园1L!AB7{$UI3S
kern.ipc.nmbclusters: 4800BSD爱好者乐园'T0HJ:qW$~(b\
#################http://www.bsdlover.cn#########BSD爱好者乐园?a4An R9D.R/d
这个值用来调整系统在开机后所要分配给网络 mbufs 的 cluster 数量,BSD爱好者乐园D;H8z6`1I o$n
由于每个 cluster 大小为 2K,所以当这个值为 1024 时,也是会用到 2MB 的核心内存空间。BSD爱好者乐园z*rkJ n {%J
假设我们的网页同时约有 1000 个联机,而 TCP 传送及接收的暂存区大小都是 16K,
/e!V Z8fwMTaT A则最糟的情况下,我们会需要 (16K+16K) * 1024,也就是 32MB 的空间,
.RB-Mq}9@然而所需的 mbufs 大概是这个空间的二倍,也就是 64MB,所以所需的 cluster 数量为 64MB/2K,也就是 32768。
P({g+J3P$`:~`对于内存有限的机器,建议值是 1024 到 4096 之间,而当拥有海量存储器空间时,我们可以将它设定为 4096 到 32768 之间。BSD爱好者乐园y|Np[-SJ)`C9z o
我们可以使用 netstat 这个指令并加上参数 -m 来查看目前所使用的 mbufs 数量。BSD爱好者乐园s5D]7@Z
要修改这个值必须在一开机就修改,所以只能在 /boot/loader.conf 中加入修改的设定
0J[3z H?7d7RCKkkern.ipc.nmbclusters=32768BSD爱好者乐园,S)xU3j%_(r
####################################BSD爱好者乐园O+f8}`N2t*^|
ybZ3bC
%SPe6j"t@:kkern.ipc.shmmax: 33554432
L0LX` Y5`Sn#################http://www.bsdlover.cn#########BSD爱好者乐园+Ea'?-X0J`(pX
共享内存和信号灯("System VIPC")如果这些过小的话,有些大型的软件将无法启动
9B8f8RJ0`l _n安装xine和mplayer提示的设置为67108864,即64M,
)N ]1T(no(O3ym6B如果内存多的话,可以设置为134217728,即128M
N2Re o2N'q####################################
~k.c7o$qt8]'`BSD爱好者乐园2_m5?2JH%B{+F^
BSD爱好者乐园 M~5@N8ZT5MJ8z
kern.ipc.shmall: 8192
6n,`HlsgA#################http://www.bsdlover.cn#########
s?)~3lafAP共享内存和信号灯("System VIPC")如果这些过小的话,有些大型的软件将无法启动BSD爱好者乐园q&`] R[$EZ
安装xine和mplayer提示的设置为32768
L3X%Y8L)D"w^*l####################################
6bSbM wQ oN)Np
.k:l f/~8z/Ikern.ipc.shm_use_phys: 0
K3@M9V^S{6E_#################http://www.bsdlover.cn#########
!f1MIu0Mr.O4Y如果我们将它设成 1,则所有 System V 共享内存 (share memory,一种程序间沟通的方式)部份都会被留在实体的内存 (physical memory) 中,BSD爱好者乐园fbk s*j]
而不会被放到硬盘上的 swap 空间。我们知道物理内存的存取速度比硬盘快许多,而当物理内存空间不足时,BSD爱好者乐园Yc.k&r U,a|
部份数据会被放到虚拟的内存上,从物理内存和虚拟内存之间移转的动作就叫作 swap。如果时常做 swap 的动作,
[X0s.qLjog5z%qJ\则需要一直对硬盘作 I/O,速度会很慢。因此,如果我们有大量的程序 (数百个) 需要共同分享一个小的共享内存空间,
@V3vn%eVm_5eS或者是共享内存空间很大时,我们可以将这个值打开。
v4b-t-_4L+B3|a这一项,我个人建议不做修改,除非你的内存非常大。
k)z?!uFJAb####################################
#W(Q4uoY!EP
oirE8E~BSD爱好者乐园4U R"{y%u c
kern.ipc.shm_allow_removed: 0BSD爱好者乐园+T4{,r6S6PH rT
#################http://www.bsdlover.cn#########BSD爱好者乐园3P*|3`'GLPDL.qga
共享内存是否允许移除?这项似乎是在fb下装vmware需要设置为1的,否则会有加载SVGA出错的提示BSD爱好者乐园m y%H b8['g9w8O.z#B
作为服务器,这项不动也罢。
7F_2z k5Tmmw M####################################
P7}?~tkfM a
r!^+M Zgkern.ipc.numopensockets: 12
8K;W[U5wU#################http://www.bsdlover.cn#########BSD爱好者乐园 [hQ3Woj m$cV
已经开启的socket数目,可以在最繁忙的时候看看它是多少,然后就可以知道maxsockets应该设置成多少了。
dHk1wS:V&nV"e####################################BSD爱好者乐园De5O!mXb0Y&|
BSD爱好者乐园$kP,uxho*}P
kern.ipc.maxsockets: 1928BSD爱好者乐园gJfeL5Kz#]8x
#################http://www.bsdlover.cn#########BSD爱好者乐园_*A;N.?-F~r*\
这是用来设定系统最大可以开启的 socket 数目。如果您的服务器会提供大量的 FTP 服务,
3R!VK6J#A7p F]|]而且常快速的传输一些小档案,您也许会发现常传输到一半就中断。因为 FTP 在传输档案时,BSD爱好者乐园 g,Yu c2{ q:h
每一个档案都必须开启一个 socket 来传输,但关闭 socket 需要一段时间,如果传输速度很快,
9w/S#C6[^#U~-v^ @而档案又多,则同一时间所开启的 socket 会超过原本系统所许可的值,这时我们就必须把这个值调大一点。
7H;L3O }q%@C除了 FTP 外,也许有其它网络程序也会有这种问题。BSD爱好者乐园2{}:F:O?er:ow6b b
然而,这个值必须在系统一开机就设定好,所以如果要修改这项设定,我们必须修改 /boot/loader.conf 才行BSD爱好者乐园,u:~FkbEFa \@
kern.ipc.maxsockets="16424"BSD爱好者乐园 Qw'y Z{@!_wi T
####################################
*QO+GM{5^B `dBSD爱好者乐园5{.x/^$It#J/{
kern.ipc.nsfbufs: 1456BSD爱好者乐园T'tEHTM!}?
#################http://www.bsdlover.cn#########
(lm$PY^经常使用 sendfile(2) 系统调用的繁忙的服务器,
Fx-qybTF有必要通过 NSFBUFS 内核选项或者在 /boot/loader.conf (查看 loader(8) 以获得更多细节) 中设置它的值来调节 sendfile(2) 缓存数量。
,PA7d,y\H f,Ct这个参数需要调节的普通原因是在进程中看到 sfbufa 状态。sysctl kern.ipc.nsfbufs 变量在内核配置变量中是只读的。BSD爱好者乐园 znB JEOe-e!V
这个参数是由 kern.maxusers 决定的,然而它可能有必要因此而调整。
;xB'W0sx@dJ在/boot/loader.conf里加入BSD爱好者乐园~#zd9a y_ v9c)Y;M
kern.ipc.nsfbufs="2496"
3UEM_vTr-[)_\####################################
*d(D/` C+vR1\o5SBSD爱好者乐园}5nD X0m U

W7K~r7L A\v&Lkern.maxusers: 59
C{tU'?o$Q/iTD`#################http://www.bsdlover.cn#########BSD爱好者乐园IZ4x&{tJP^
maxusers 的值决定了处理程序所容许的最大值,20+16*maxusers 就是你将得到的所容许处理程序。BSD爱好者乐园?B FQ0i
系统一开机就必须要有 18 个处理程序 (process),即便是简单的执行指令 man 又会产生 9 个 process,
K"Yki2uL9}y所以将这个值设为 64 应该是一个合理的数目。
0r,P'dbHu3`!BautM如果你的系统会出现 proc table full 的讯息的话,可以就把它设大一点,例如 128。BSD爱好者乐园!E(j3Fw e2I
除非您的系统会需要同时开启很多档案,否则请不要设定超过 256。
.p9]Q zl)C8dBM
c%W.A!Rir2~可以在 /boot/loader.conf 中加入该选项的设定,BSD爱好者乐园 a+v uLu:])YN
kern.maxusers=256
%^0RWP&`8`+G H####################################BSD爱好者乐园-enS*PFw
|"nRvZ'Ykern.coredump: 1BSD爱好者乐园"B@0jF{6k\
#################http://www.bsdlover.cn#########BSD爱好者乐园'fV ]#t*q2Z
如果设置为0,则程序异常退出时不会生成core文件,作为服务器,不建议这样。BSD爱好者乐园A7Z\ p9PZ UH
####################################
AinrV9d7yT[
jU c%EgU+Bkern.corefile: %N.coreBSD爱好者乐园-rU aVg!Kv0y
#################http://www.bsdlover.cn#########BSD爱好者乐园)u!ef*h9e:KY,u
可设置为kern.corefile="/data/coredump/%U-%P-%N.core"
8O2T}!B'eWr其中 %U是UID,%P是进程ID,%N是进程名,当然/data/coredump必须是一个实际存在的目录BSD爱好者乐园'L kV#n_t8B UD
####################################BSD爱好者乐园i?:U.e~)`,w
BSD爱好者乐园 mdfY(Vw%F
BSD爱好者乐园9xZVf,[}+s'l
vm.swap_idle_enabled: 0BSD爱好者乐园9N r0Jt*LU
vm.swap_idle_threshold1: 2BSD爱好者乐园0bc1UA_%V.@'h?v@
vm.swap_idle_threshold2: 10BSD爱好者乐园N)^&f!~/L
#########################BSD爱好者乐园)B`*@ G,z"_
在有很多用户进入、离开系统和有很多空闲进程的大的多用户系统中很有用。
x2S`L*]#l T [BM%\1M可以让进程更快地进入内存,但它会吃掉更多的交换和磁盘带宽。BSD爱好者乐园7J;z&Ai)P"i{
系统默认的页面调度算法已经很好了,最好不要更改。BSD爱好者乐园%d7iN6[K2_:A
########################BSD爱好者乐园&C8H8sT!{ bx
BSD爱好者乐园!i;o IR }+Q:P-\{
BSD爱好者乐园OA:q9x*F1\&]#h
vfs.ufs.dirhash_maxmem: 2097152
,}"`C#L3W W.mB lO#########################
*Z}uKP,R2^ w默认的dirhash最大内存,默认2MBSD爱好者乐园+Sn$ZP!k@{
增加它有助于改善单目录超过100K个文件时的反复读目录时的性能
fQ4c$sS7y建议修改为33554432(32M)
5n-P[#}rc|(C d#############################BSD爱好者乐园y[wNd
t9cG!cu;SZBSD爱好者乐园K7a4|#\9lwNNI
vfs.vmiodirenable: 1
-Rm.a z$};L8Y)I#################BSD爱好者乐园P&s{2VX
这个变量控制目录是否被系统缓存。大多数目录是小的,在系统中只使用单个片断(典型的是1K)并且在缓存中使用的更小 (典型的是512字节)。BSD爱好者乐园4v/g'J[k P~
当这个变量设置为关闭 (0) 时,缓存器仅仅缓存固定数量的目录,即使您有很大的内存。BSD爱好者乐园)\vya!G*C({
而将其开启 (设置为1) 时,则允许缓存器用 VM 页面缓存来缓存这些目录,让所有可用内存来缓存目录。
8Fl1@s:P9O,R5yuPU不利的是最小的用来缓存目录的核心内存是大于 512 字节的物理页面大小(通常是 4k)。
$Uv V;E#gWdW.J我们建议如果您在运行任何操作大量文件的程序时保持这个选项打开的默认值。BSD爱好者乐园0J9x C'wl F]O7K6j
这些服务包括 web 缓存,大容量邮件系统和新闻系统。
Y#f[[6bKg)sD]尽管可能会浪费一些内存,但打开这个选项通常不会降低性能。但还是应该检验一下。BSD爱好者乐园}'LD1F;g9y [+GI
####################
(P-G NOF(Kn1{+Qg1I;tBSD爱好者乐园MiQ MH+b'b

R.d0A)iK0Hvfs.hirunningspace: 1048576
u/U1?4qiB!y############################BSD爱好者乐园:M&Gu N)d
这个值决定了系统可以将多少数据放在写入储存设备的等候区。通常使用默认值即可,
'D-Oc c O`但当我们有多颗硬盘时,我们可以将它调大为 4MB 或 5MB。BSD爱好者乐园#`@|d0Q T
注意这个设置成很高的值(超过缓存器的写极限)会导致坏的性能。
"I1q#ZJ6Q-A不要盲目的把它设置太高!高的数值会导致同时发生的读操作的迟延。BSD爱好者乐园2Tz?mp!S-f!]
#############################
0w:ls3l%su1m};yBSD爱好者乐园1eN r3~'K:r~L)[
BSD爱好者乐园1y\C(Xr1Vq;oO!A @z
vfs.write_behind: 1BSD爱好者乐园 A+KR0~*n;WK0^5Wn
#########################
ge:`Vo\ld这个选项预设为 1,也就是打开的状态。在打开时,在系统需要写入数据在硬盘或其它储存设备上时,
JWQ1si]它会等到收集了一个 cluster 单位的数据后再一次写入,否则会在一个暂存区空间有写入需求时就立即写到硬盘上。
e-m%ukp/^x这个选项打开时,对于一个大的连续的文件写入速度非常有帮助。但如果您遇到有很多行程延滞在等待写入动作时,您可能必须关闭这个功能。
HZ)t%^wG############################
$`$q/P+bBd$A+rBSD爱好者乐园d,f'fh b#~e]
net.local.stream.sendspace: 8192
:u6W7_J/A7k##################################BSD爱好者乐园R6E9C6E+z}f
本地套接字连接的数据发送空间BSD爱好者乐园nPC S Ga]!g
建议设置为65536
/Zof.X^3Gp4vZ I###################################
_j F.y Y&Cx{net.local.stream.recvspace: 8192BSD爱好者乐园psnS.W5k
##################################BSD爱好者乐园(z0?t4[~YG{
本地套接字连接的数据接收空间BSD爱好者乐园)l-e/GI1hw&C
建议设置为65536BSD爱好者乐园E7^d!CH0Q)h {2t
###################################
:Lio%e"]I3x!G
P+o:iV'Y'iY8G}BSD爱好者乐园.MO5r$dJp
net.inet.ip.portrange.lowfirst: 1023BSD爱好者乐园"j&F ^#KY(y~9j#Q
net.inet.ip.portrange.lowlast: 600BSD爱好者乐园)l;AG%W DMfS,P1dqw
net.inet.ip.portrange.first: 49152
p wdAF_2Z:i1g^/Os6`net.inet.ip.portrange.last: 65535
tFO~$U"A"]fnet.inet.ip.portrange.hifirst: 49152BSD爱好者乐园-r;iK[+t ^\`n p}
net.inet.ip.portrange.hilast: 65535BSD爱好者乐园qy(mk rV5\h*LmH$F
###################
M7Yhy1BKa(WN5D以上六项是用来控制TCP及UDP所使用的port范围,这个范围被分成三个部份,低范围、预设范围、及高范围。
*^:C9v,|;{*[这些是你的服务器主动发起连接时的临时端口的范围,预设的已经1万多了,一般的应用就足够了。BSD爱好者乐园 Ne7r{A vak!\Sr
如果是比较忙碌的FTP server,一般也不会同时提供给1万多人访问的,BSD爱好者乐园{^L6x9Ok
当然如果很不幸,你的服务器就要提供很多,那么可以修改first的值,比如直接用1024开始
|"us2j!v`mN#########################BSD爱好者乐园m0k%k1nb`v
B Cu/d q5Q2ZK ^1q$WBSD爱好者乐园 qA2e ES8P0O?/FO
net.inet.ip.redirect: 1BSD爱好者乐园}3KMRQ;@)E,|
#########################
J r,jK8{%q$k5nmTk4k设置为0,屏蔽ip重定向功能BSD爱好者乐园bM9P7hhOd}
###########################
HVM0R|!TJTBSD爱好者乐园 ],[M+Lz j
net.inet.ip.rtexpire: 3600
*?WXY{ c kmMg%qnet.inet.ip.rtminexpire: 10BSD爱好者乐园,s'b(po1}K"c#e
########################
7AaR-Zrqp-`很多apache产生的CLOSE_WAIT状态,这种状态是等待客户端关闭,但是客户端那边并没有正常的关闭,于是留下很多这样的东东。
.z[7Z)u@5FjN建议都修改为2
|5x"h.R^#########################BSD爱好者乐园 J}5dw+cs7uB!e#U6L
;c3u1D2ob/I*wuBSD爱好者乐园4h8|\4Q+z7^'^6`
net.inet.ip.intr_queue_maxlen: 50BSD爱好者乐园Y+{Ps'uy+Tb
########################BSD爱好者乐园-Rr)[p%u
Maximum size of the IP input queue,如果下面的net.inet.ip.intr_queue_drops一直在增加,
em H4q|9k那就说明你的队列空间不足了,那么可以考虑增加该值。
|NTi+G0v~##########################BSD爱好者乐园;A'Fh8X#y6O-t-d ya
net.inet.ip.intr_queue_drops: 0BSD爱好者乐园B0n"Ye|'Y
####################
g4@8M%r5UZNumber of packets dropped from the IP input queue,如果你sysctl它一直在增加,
1g"P0M7Bx |.^V J那么增加net.inet.ip.intr_queue_maxlen的值。
o9P,h4d+Q6ZK#######################BSD爱好者乐园kL mLkW{{,E_
BSD爱好者乐园'T-x!N a-|(zg _r
BSD爱好者乐园A(X9wO%{8|tZ7_
net.inet.ip.fastforwarding: 0
hG8M1|WZ,x)JP?#############################
v8|m#r N0t/S3o(M如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间
C8?w+m;Cb但会需要大量的内核内存空间来保存路由表。
!l2LPf)sBKM.EN'R'L如果内存够大,打开吧,呵呵
;Lmi+}(CK;v^#############################BSD爱好者乐园I6}1Cx)PJ
BSD爱好者乐园Y3Bx7sg)db

9DR}j)T Snet.inet.ip.random_id: 0
Z | B'Q1y.|%|*K3q&R#####################
8k-D&[/TXoa默认情况下,ip包的id号是连续的,而这些可能会被***者利用,比如可以知道你nat后面带了多少主机。
&e#Z:hD]|如果设置成1,则这个id号是随机的,嘿嘿。
-^ wjx d0E nS1E#####################
!O8g6V`0BG|BSD爱好者乐园 K}a1T#s3I
net.inet.icmp.maskrepl: 0BSD爱好者乐园P2\2wrE|_
############################
r!KR@R5zG防止广播风暴,关闭其他广播探测的响应。默认即是,无须修改。BSD爱好者乐园wrq~j"I%D5g
###############################
_,~6U;d2Vzc6Q
5LghY i3{ w};{net.inet.icmp.icmplim: 200
1M8C ](V6R##############################BSD爱好者乐园+o8KMd@u X
限制系统发送ICMP速率,改为100吧,或者保留也可,并不会给系统带来太大的压力。
)`]{;oD###########################BSD爱好者乐园3zIgOuE hA
net.inet.icmp.icmplim_output: 1BSD爱好者乐园ZA.baI%K4?
###################################
"I*z5Jj Q}(i如果设置成0,就不会看到提示说Limiting icmp unreach response from 214 to 200 packets per second 等等了BSD爱好者乐园4v#oP~T*rJ
不过禁止输出容易让我们忽视***的存在。这个自己看着办吧。
TEp pK J5I######################################BSD爱好者乐园~/`-iK"{"z jID
BSD爱好者乐园yH*G-tr
net.inet.icmp.drop_redirect: 0
szk:IE,C%t5Tqnet.inet.icmp.log_redirect: 0
0fW n/oaLy.`D###################################BSD爱好者乐园#z7fM'^Fm4?
设置为1,屏蔽ICMP重定向功能BSD爱好者乐园Cq,^V+kib,RB
###################################
4ts5nba+nnet.inet.icmp.bmcastecho: 0BSD爱好者乐园R#i%d'h"C
############################
~\6M-d+\ |:\防止广播风暴,关闭广播ECHO响应,默认即是,无须修改。BSD爱好者乐园'n `OoIv)jn(b
###############################BSD爱好者乐园k/m#Uz7Q{
&~N8}1jOZ@d V.x#Y
c&~bHt.cnet.inet.tcp.mssdflt: 512BSD爱好者乐园g\)\Zi wYTBY
net.inet.tcp.minmss: 216
%M*L$\1s2s+`dL###############################BSD爱好者乐园SP:M6{S7cs
数据包数据段最小值,以上两个选项最好不动!或者只修改mssdflt为1460,minmss不动。
}nd-P2P2_d原因详见http://www.bsdlover.cn/html/35/n-135.htmlBSD爱好者乐园"BnsOloK-V6Y
#############################
Wy_s8tT2VBSD爱好者乐园(my8WZ,GDM;T Ae

%j [}3v D8`,Anet.inet.tcp.keepidle: 7200000
Wn4c%k@8l-y8x######################
#YVo8}:s8Er.BTCP的套接字的空闲时间,默认时间太长,可以改为600000(10分钟)。BSD爱好者乐园~,tDVT-y
##########################BSD爱好者乐园5C"L$vEB1RW,L+v
w$}6Ma)|%i3B1gH;q Enet.inet.tcp.sendspace: 32768
9e6buvz#################http://www.bsdlover.cn#########BSD爱好者乐园xyz ZU-D9Ja w
最大的待发送TCP数据缓冲区空间,应用程序将数据放到这里就认为发送成功了,系统TCP堆栈保证数据的正常发送。BSD爱好者乐园K CA C,f+V
####################################
2p!gYk_@!F&Donet.inet.tcp.recvspace: 65536
lf0O q4{###################################BSD爱好者乐园)]u)jV4S
最大的接受TCP缓冲区空间,系统从这里将数据分发给不同的套接字,增大该空间可提高系统瞬间接受数据的能力以提高性能。
(fTsv#TT###################################
BPsu ? T"I W,jC这二个选项分别控制了网络 TCP 联机所使用的传送及接收暂存区的大小。预设的传送暂存区为 32K,而接收暂存区为 64K。BSD爱好者乐园zm tU Y7BJ"uA
如果需要加速 TCP 的传输,可以将这二个值调大一点,但缺点是太大的值会造成系统核心占用太多的内存。BSD爱好者乐园,jxR!e9b{Teb
如果我们的机器会同时服务数百或数千个网络联机,那么这二个选项最好维持默认值,否则会造成系统核心内存不足。BSD爱好者乐园c+{} O4i*\hR
但如果我们使用的是 gigabite 的网络,将这二个值调大会有明显效能的提升。BSD爱好者乐园5si.|K9ap1L(]
传送及接收的暂存区大小可以分开调整,
+Jf5b|.Z*x3R n例如,假设我们的系统主要做为网页服务器,我们可以将接收的暂存区调小一点,并将传送的暂存区调大,如此一来,我们就可以避免占去太多的核心内存空间。
.@M7R1vuABb&U j|S
0lt2f@FS1e rnet.inet.udp.maxdgram: 9216BSD爱好者乐园 m6m&V j [ C^ wA
#########################
k.HLv G)y1IBol9q T最大的发送UDP数据缓冲区大小,网上的资料大多都是65536,我个人认为没多大必要,
o8jjr5Z to,?如果要调整,可以试试24576。
9Y)\o jK xU\##############################
jh{3g i)Rynet.inet.udp.recvspace: 42080
{5E\zV3P-ru4e8?##################
hvU2F&v最大的接受UDP缓冲区大小,网上的资料大多都是65536,我个人认为没多大必要,
%W6pb*_cY?"U如果要调整,可以试试49152。
O;SF\8s0rW-w#######################BSD爱好者乐园C'AY+m2VRt?o
以上四项配置通常不会导致问题,一般说来网络流量是不对称的,因此应该根据实际情况调整,并观察其效果。
/D(a:`XNN\如果我们将传送或接收的暂存区设为大于 65535,除非服务器本身及客户端所使用的操作系统都支持 TCP 协议的 windows scaling extension (请参考 RFC 1323 文件)。
Gi$h7\@K S!`#HFreeBSD默认已支持 rfs1323 (即 sysctl 的 net.inet.tcp.rfc1323 选项)。
jir4Jz Q3s)V/bf+A\###################################################BSD爱好者乐园5FW`zzR
BSD爱好者乐园;{7i(~tp
BSD爱好者乐园Pxl&}HQ ~LjU
net.inet.tcp.log_in_vain: 0BSD爱好者乐园,H2@h%u_|g G b{+W0u
##################
0~w%Oa-k ]记录下任何TCP连接,这个一般情况下不应该更改。BSD爱好者乐园C.S;ZF2V1Z N{s2O'^
####################
hI~ s7h y,lBSD爱好者乐园.x/XWq{b)zK8^Cea|
net.inet.tcp.blackhole: 0
4AuP/x-q%h!q##################################BSD爱好者乐园~0]Q,XIoi1i-x
建议设置为2,接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包BSD爱好者乐园5t nGb'}9a1L
#####################################
nDN ]B9St&XBSD爱好者乐园EnM"nP!d;R
net.inet.tcp.delayed_ack: 1
V~(z(as3LR\###########################
G%x U,n8EI8h当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包。
L!CCH ~i(E/[2Zu该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送。BSD爱好者乐园s6}&Kv*d~ ^
在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,
k'rW ]sn9N对方计算机得不到应答会持续发起连接请求,反而会让网络更加拥堵,降低性能。BSD爱好者乐园(R P {[7l\\c
因此这个值我建议您看情况而定,如果您的网速不是问题,可以将封包数量减少一半BSD爱好者乐园\2k&`:~ ~
如果网络不是特别好,那么就设置为0,有请求就先回应,这样其实浪费的网通、电信的带宽速率而不是你的处理时间:)BSD爱好者乐园Y*G rC/J-Qn
############################
cC.BAKB,F
xE$av,kY/X/j&JjBSD爱好者乐园4pW4Qibp8wc
net.inet.tcp.inflight.enable: 1
QNwh@net.inet.tcp.inflight.debug: 0
h7FC&P0pO `net.inet.tcp.inflight.rttthresh: 10BSD爱好者乐园|^$r[8_ Y i$br.lp
net.inet.tcp.inflight.min: 6144
h;_u z7Dnet.inet.tcp.inflight.max: 1073725440
+vq,lV8s0XB)dc7Fnet.inet.tcp.inflight.stab: 20
-r3\M)~ e8R~f###########################BSD爱好者乐园+Y f FC8zP|
限制 TCP 带宽延迟积和 NetBSD 的 TCP/Vegas 类似。
$J H,h+u#l!S o1]5n它可以通过将 sysctl 变量 net.inet.tcp.inflight.enable 设置成 1 来启用。
9E1w.F:f P系统将尝试计算每一个连接的带宽延迟积,并将排队的数据量限制在恰好能保持最优吞吐量的水平上。
go/R6u\7~L这一特性在您的服务器同时向使用普通调制解调器,千兆以太网,乃至更高速度的光与网络连接 (或其他带宽延迟积很大的连接) 的时候尤为重要,BSD爱好者乐园-CX(L2Hg0s5P*u
特别是当您同时使用滑动窗缩放,或使用了大的发送窗口的时候。
+k2}(@N7b*K如果启用了这个选项,您还应该把 net.inet.tcp.inflight.debug 设置为 0 (禁用调试),BSD爱好者乐园1]#KCY8|x5J
对于生产环境而言, 将 net.inet.tcp.inflight.min 设置成至少 6144 会很有好处。BSD爱好者乐园q gS'S3b9lR!e&P+}%R
然而, 需要注意的是,这个值设置过大事实上相当于禁用了连接带宽延迟积限制功能。BSD爱好者乐园3a(TT RR~
这个限制特性减少了在路由和交换包队列的堵塞数据数量,也减少了在本地主机接口队列阻塞的数据的数量。BSD爱好者乐园8R#f$C1@p!hCWn$f~
在少数的等候队列中、交互式连接,尤其是通过慢速的调制解调器,也能用低的 往返时间操作。
w9B"_DjQq \(YG但是,注意这只影响到数据发送 (上载/服务端)。对数据接收(下载)没有效果。BSD爱好者乐园4dq)boz?t9b8n*p
调整 net.inet.tcp.inflight.stab 是 不 推荐的。BSD爱好者乐园yDf+n7U.i3m2R
这个参数的默认值是 20,表示把 2 个最大包加入到带宽延迟积窗口的计算中。
7DRam6u8vl额外的窗口似的算法更为稳定,并改善对于多变网络环境的相应能力,
:e9y+Z ^m:Fsd但也会导致慢速连接下的 ping 时间增长 (尽管还是会比没有使用 inflight 算法低许多)。
4Ie t.A?\Ei]%G对于这些情形, 您可能会希望把这个参数减少到 15, 10, 或 5;BSD爱好者乐园{eB7Ak0?
并可能因此而不得不减少 net.inet.tcp.inflight.min (比如说, 3500) 来得到希望的效果。
D%sfc nUn+d减少这些参数的值, 只应作为最后不得已时的手段来使用。BSD爱好者乐园3Np#? Y6J9q"^xC \
############################
_ Z0Vh.|O(XjQBSD爱好者乐园iG8\ il r8A
net.inet.tcp.syncookies: 1BSD爱好者乐园HX*W%i_X Yv8~Fz
#########################
3dO0HR!` `uSYN cookies是一种用于通过选择加密的初始化TCP序列号,可以对回应的包做验证来降低SYN'洪水'***的影响的技术。
INK&FV7~ [;J默认即是,不需修改BSD爱好者乐园5b1~QbTv-Z
########################BSD爱好者乐园Ke8crZz b-_
BSD爱好者乐园"Gaw:qL7C B D

7|az#Q3b z o7ht8Onet.inet.tcp.msl: 30000
4t;OP'N4`3F}(J/X#######################BSD爱好者乐园7\9T&I.Q KW0s)lR
这个值网上很多文章都推荐的7500,BSD爱好者乐园*_*l,CU'vZYA
还可以改的更小一些(如2000或2500),这样可以加快不正常连接的释放过程(三次握手2秒、FIN_WAIT4秒)。
|"_2O$tT/a-k&UF#p#########################
P/nCGit"Jinet.inet.tcp.always_keepalive: 1BSD爱好者乐园+}.sIFWNQ
###########################
h3d}5j\T\ dQ帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除。
G*hp1?*V1[2m)r死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接。
4nJDJsoo#############################BSD爱好者乐园)t5\#o0a?8Y!u~
BSD爱好者乐园 j8P`u8_ iG
net.inet.udp.checksum: 1BSD爱好者乐园\B(FUH%oa/^a
#########################BSD爱好者乐园 mK*wB-e;u [d?
防止不正确的udp包的***,默认即是,不需修改
F4mV,c;r$SI#@##############################
1?)R|;x&lX
b(J~ _#M R ljnet.inet.udp.log_in_vain: 0BSD爱好者乐园'D7JSH;~`f0`
#######################
pl/oE8WCr记录下任何UDP连接,这个一般情况下不应该修改。
Y0F.fkt{$P#######################BSD爱好者乐园 @S9WhR#~H}w }
+Xf&jwu~.N-Gnet.inet.udp.blackhole: 0BSD爱好者乐园 e%G!C4wq,p
####################
G*sLxGZV${Nb建议设置为1,接收到一个已经关闭的端口发来的所有UDP包直接drop
+lh)u\y vH,~l#######################BSD爱好者乐园qR-p H|@7WB
l$Jr1j/@ qBSD爱好者乐园*T-W^q#E3l[S!u
net.inet.raw.maxdgram: 8192
l.l2g/g7RMZ"l#########################
jD n%b+@!o%Qx hC&d$WMaximum outgoing raw IP datagram size
?@#pq!^:T/W*S很多文章建议设置为65536,好像没多大必要。
O.cV&Ka:c######################################BSD爱好者乐园+I)k8]b'B,~"t4snb
net.inet.raw.recvspace: 8192
!o'~B@l'W######################
kq(K9f9uBS8HMaximum incoming raw IP datagram sizeBSD爱好者乐园Gn9~,Ej5L4W
很多文章建议设置为65536,好像没多大必要。
$e%B#~2M-s Ts1VRH,C#######################BSD爱好者乐园;}Jg!g P
BSD爱好者乐园d1\u;L^m;p
net.link.ether.inet.max_age: 1200BSD爱好者乐园3Dc t c#YUl
####################
)pC@Ae/i1sr m o调整ARP清理的时间,通过向IP路由缓冲填充伪造的ARP条目可以让恶意用户产生资源耗竭和性能减低***。
|.] rM5B7V这项似乎大家都未做改动,我建议不动或者稍微减少,比如300(HP-UX默认的5分钟)
-\+~,vy${3p G*x({/J#######################BSD爱好者乐园5CZ e3i"z.\:M
5o(zI h2p C l}net.inet6.ip6.redirect: 1BSD爱好者乐园m.j#Ed)H |]
###############################
d7Y'B(@!f bP/Q e设置为0,屏蔽ipv6重定向功能BSD爱好者乐园S(ah$vJ
###########################BSD爱好者乐园2HXlPU k2GCS!{
t'K_X7z?nBSD爱好者乐园8U.V'q:kG1^p ax j;\
net.isr.direct: 0
icyRW?Q#################http://www.bsdlover.cn#########
XToN F]WOC所有MPSAFE的网络ISR对包做立即响应,提高网卡性能,设置为1。
._xUF!uC%x####################################
'a0E)h|saW+r
Ub2t6u2VSBSD爱好者乐园`@m7ET%[1{5RE*W1i
hw.ata.wc: 1
z,nO2h:} Y&C+YM#####################
q*Ig2d5Kf~7?3^这个选项用来打开 IDE 硬盘快取。当打开时,如果有数据要写入硬盘时,硬盘会假装已完成写入,并将数据快取起来。
$T%u%I6|H这种作法会加速硬盘的存取速度,但当系统异常关机时,比较容易造成数据遗失。BSD爱好者乐园+Z1eAT*ecg
不过由于关闭这个功能所带来的速度差异实在太大,建议还是保留原本打开的状态吧,不做修改。
0H9@U9N4vq~###################BSD爱好者乐园t+dfGXbY
i}xUQ+U
LP:aorlTfEsecurity.bsd.see_other_uids: 1BSD爱好者乐园_9hN8n1R1}
security.bsd.see_other_gids: 1BSD爱好者乐园3o7pwP c,jB,xv!Z
#####################BSD爱好者乐园E2[az R&R/A f
不允许用户看到其他用户的进程,因此应该改成0,BSD爱好者乐园Q0wepD6k7@o M
#######################BSD爱好者乐园OVy'T@.~
BSD爱好者乐园jMiCKM!N3{&O

[版权声明]BSD爱好者乐园站内文章,如来源不是互联网,则均系原创或翻译之作,可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。