Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232489
  • 博文数量: 30
  • 博客积分: 1617
  • 博客等级: 上尉
  • 技术积分: 317
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-02 10:32
文章分类

全部博文(30)

文章存档

2019年(1)

2016年(1)

2014年(1)

2012年(3)

2011年(4)

2010年(8)

2009年(5)

2008年(7)

我的朋友

分类: BSD

2009-11-18 10:58:01

freebsd 下sysctl.conf详解说明

这个是一网友发的一份配置。FREEBSD老大亲自解释了。我从中学到不少。移动来大家参考

把这份sysctl.conf贴在这里,让大家帮我分析分析。也避免别的人按这个优化出现同样的问题。

--------------------------------------

# $FreeBSD: src/etc/sysctl.conf,v 1.8 2003/03/13 18:43:50 mux Exp $

#

# This file is read when going to multi-user and its contents piped thru

# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.

#

# Uncomment this to prevent users from seeing information about processes that

# are being run under another UID.

security.bsd.see_other_uids=0

net.inet.tcp.sendspace=65536

net.inet.tcp.recvspace=65536

#net.inet.udp.sendspace=65536

net.inet.udp.maxdgram=65536

net.local.stream.sendspace=65536

net.inet.tcp.rfc1323=1

#net.inet.tcp.rfc1644=1

net.inet.tcp.rfc3042=1

net.inet.tcp.rfc3390=1

kern.ipc.maxsockbuf=2097152

kern.maxfiles=65536

kern.maxfilesperproc=32768

net.inet.tcp.delayed_ack=0

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

net.inet.icmp.bmcastecho=0

net.inet.icmp.maskrepl=0

net.inet.icmp.icmplim=100

net.inet.icmp.icmplim_output=0

#net.inet.tcp.drop_synfin=1

net.inet.tcp.always_keepalive=1

net.inet.ip.intr_queue_maxlen=1000 (这儿太大了。建议不用或小点值)

net.inet.tcp.msl=7500 (太大了。建议2500-2000左右)

net.inet.tcp.blackhole=2

net.inet.tcp.inflight.enable=1

net.inet.ip.fastforwarding=0

kern.ipc.somaxconn=32768

kern.securelevel=0

#net.inet.tcp.log_in=1

#net.inet.udp.log_in=1

net.inet.udp.checksum=1

net.inet.tcp.syncookies=1

kern.ipc.shm_use_phys=1

kern.ipc.shmmax=67108864

kern.ipc.shmall=32768

kern.coredump=0

net.local.stream.recvspace=65536

net.local.dgram.maxdgram=16384

net.local.dgram.recvspace=65536

#net.inet.tcp.mssdflt=1460

#net.inet.tcp.minmss=1640

net.inet.raw.maxdgram=65535

net.inet.raw.recvspace=65535

net.inet.ip.fw.dyn_max=65535

net.inet.ipf.fr_tcpidletimeout=864000

以上是原文。我把有错误的给#号了。不然大家抄回去死得惨

老大亲自加的注解哦。大家好好参详

加的东西实在太多了……

sylion 写到:

security.bsd.see_other_uids=0

这个通常没有必要,除非系统需要让不信任的人登录。

sylion 写到:

net.inet.tcp.sendspace=65536

net.inet.tcp.recvspace=65536

#net.inet.udp.sendspace=65536

net.inet.udp.maxdgram=65536

这些配置通常不会导致问题,但是这么配置会导致开销增大,一般说来网络流量是不对称的,因此应该根据实际情况调整,并观察其效果。

sylion 写到:

net.local.stream.sendspace=65536

这个我的经验是意义不大。

sylion 写到:

net.inet.tcp.rfc1323=1

#net.inet.tcp.rfc1644=1

net.inet.tcp.rfc3042=1

net.inet.tcp.rfc3390=1

所有rfc相关的选项都是默认启用的。

sylion 写到:

kern.ipc.maxsockbuf=2097152

2MB这个值对许多应用都不合适。

sylion 写到:

kern.maxfiles=65536

这个值的调整有意义,不过如果默认的32768不够用的话,请确认一下程序里面是否有fd泄露。

sylion 写到:

kern.maxfilesperproc=32768

除非用异步I/O或大量线程,打开这么多的文件恐怕是不太正常的。

sylion 写到:

net.inet.tcp.delayed_ack=0

通常这样改无非让网络更拥堵一些而已。

sylion 写到:

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

这个没什么问题。

sylion 写到:

net.inet.ip.redirect=0

非路由器关掉无妨。

sylion 写到:

net.inet.icmp.bmcastecho=0

net.inet.icmp.maskrepl=0

没必要,默认值如此。

sylion 写到:

net.inet.icmp.icmplim=100

net.inet.icmp.icmplim_output=0

个人认为默认的200不会导致太大压力。禁止输出容易让我们忽视攻击的存在。

sylion 写到:

#net.inet.tcp.drop_synfin=1

除了能阻止某些OS探测之外,它还违反了TCP标准。

sylion 写到:

net.inet.tcp.always_keepalive=1

访问量大的时候通常我们不会希望这样设置。或者至少应该把keepalive的时间缩短。

sylion 写到:

net.inet.ip.intr_queue_maxlen=1000

老天!如果这个queue达到了1000的话恐怕机器先扛不住了……

sylion 写到:

net.inet.tcp.msl=7500

这个值我通常会改的更小一些(2000或2500),这样可以加快不正常连接的释放过程(三次握手2秒、FIN_WAIT4秒)。

sylion 写到:

net.inet.tcp.blackhole=2

这个没什么问题。

sylion 写到:

net.inet.tcp.inflight.enable=1

没必要,默认值如此。

sylion 写到:

net.inet.ip.fastforwarding=0

没必要,默认值如此。

sylion 写到:

kern.ipc.somaxconn=32768

这个根据需要设就可以了。

sylion 写到:

kern.securelevel=0

这个最好配到 /etc/rc.conf 里面。

sylion 写到:

#net.inet.tcp.log_in=1

#net.inet.udp.log_in=1

?? 这两个参数是干嘛的?

sylion 写到:

net.inet.udp.checksum=1

没必要,默认值如此。

sylion 写到:

net.inet.tcp.syncookies=1

没必要,默认值如此。

sylion 写到:

kern.ipc.shm_use_phys=1

不理解为什么要这样改。我个人认为没有必要。

sylion 写到:

kern.ipc.shmmax=67108864

kern.ipc.shmall=32768

这个除非程序有特殊需要,一般情况下并不需要调整。

sylion 写到:

kern.coredump=0

除非永远不打算知道signal 11/6是什么原因。我一般的做法是改kern.corefile指定core的位置,防止把磁盘填满。当然生产系统上这样做问题不大,必要的时候可以打开。

sylion 写到:

net.local.stream.recvspace=65536

net.local.dgram.maxdgram=16384

net.local.dgram.recvspace=65536

我个人认为这些没有必要调整。

sylion 写到:

net.inet.tcp.mssdflt=1460

1460似乎是给ADSL配置的?

sylion 写到:

net.inet.tcp.minmss=1640

如果要赌一个能导致问题的话,我赌这个。

sylion 写到:

net.inet.raw.maxdgram=65535

net.inet.raw.recvspace=65535

个人认为没必要。

sylion 写到:

net.inet.ip.fw.dyn_max=65535

net.inet.ipf.fr_tcpidletimeout=864000

这些只有使用防火墙,并且明白设置到底是什么意思的时候才有意义。此外我认为第二个配置是错的。

阅读(1801) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~