###############################node
net.inet.ip.sourceroute=0web
net.inet.ip.accept_sourceroute=0算法
#############################数据库
经过源路由,***者能够尝试到达内部IP地址 --包括RFC1918中的地址,因此apache
不接受源路由信息包能够防止你的内部网络被探测。windows
#################################缓存
net.inet.tcp.drop_synfin=1安全
###################################服务器
安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才能够用,能够阻止某些OS探测。网络
##################################
kern.maxvnodes=8446
#################http://www.bsdlover.cn#########
vnode 是对文件或目录的一种内部表达。 所以, 增长能够被操做系统利用的 vnode 数量将下降磁盘的 I/O。
通常而言, 这是由操做系统自行完成的,也不须要加以修改。但在某些时候磁盘 I/O 会成为瓶颈,
而系统的 vnode 不足, 则这一配置应被增长。此时须要考虑是非活跃和空闲内存的数量。
要查看当前在用的 vnode 数量:
# sysctl vfs.numvnodes
vfs.numvnodes: 91349
要查看最大可用的 vnode 数量:
# sysctl kern.maxvnodes
kern.maxvnodes: 100000
若是当前的 vnode 用量接近最大值,则将 kern.maxvnodes 值增大 1,000 多是个好主意。
您应继续查看 vfs.numvnodes 的数值, 若是它再次攀升到接近最大值的程度,
仍需继续提升 kern.maxvnodes。 在 top(1) 中显示的内存用量应有显著变化,
更多内存会处于活跃 (active) 状态。
####################################
kern.maxproc: 964
#################http://www.bsdlover.cn#########
Maximum number of processes
####################################
kern.maxprocperuid: 867
#################http://www.bsdlover.cn#########
Maximum processes allowed per userid
####################################
由于个人maxusers设置的是256,20+16*maxusers=4116。
maxprocperuid至少要比maxproc少1,由于init(8) 这个系统程序绝对要保持在运做状态。
我给它设置的2068。
kern.maxfiles: 1928
#################http://www.bsdlover.cn#########
系统中支持最多同时开启的文件数量,若是你在运行数据库或大的很吃描述符的进程,那么应该设置在20000以上,
好比kde这样的桌面环境,它同时要用的文件很是多。
通常推荐设置为32768或者65536。
####################################
kern.argmax: 262144
#################http://www.bsdlover.cn#########
maximum number of bytes (or characters) in an argument list.
命令行下最多支持的参数,好比你在用find命令来批量删除一些文件的时候
find . -name "*.old" -delete,若是文件数超过了这个数字,那么会提示你数字太多的。
能够利用find . -name "*.old" -ok rm {} ;来删除。
默认的参数已经足够多了,所以不建议再作修改。
####################################
kern.securelevel: -1
#################http://www.bsdlover.cn#########
-1:这是系统默认级别,没有提供任何内核的保护错误;
0:基本上做用很少,当你的系统刚启动就是0级别的,当进入多用户模式的时候就自动变成1级了。
1:在这个级别上,有以下几个限制:
a. 不能经过kldload或者kldunload加载或者卸载可加载内核模块;
b. 应用程序不能经过/dev/mem或者/dev/kmem直接写内存;
c. 不能直接往已经装在(mounted)的磁盘写东西,也就是不能格式化磁盘,可是能够经过标准的内核接口执行写操做;
d. 不能启动X-windows,同时不能使用chflags来修改文件属性;
2:在 1 级别的基础上还不能写没装载的磁盘,并且不能在1秒以内制造屡次警告,这个是防止DoS控制台的;
3:在 2 级别的级别上不容许修改IPFW防火墙的规则。
若是你已经装了防火墙,而且把规则设好了,不轻易改动,那么建议使用3级别,若是你没有装防火墙,并且还准备装防火墙的话,不建议使用。
咱们这里推荐使用 2 级别,可以避免比较多对内核***。
####################################
kern.maxfilesperproc: 1735
#################http://www.bsdlover.cn#########
每一个进程可以同时打开的最大文件数量,网上不少资料写的是32768
除非用异步I/O或大量线程,打开这么多的文件恐怕是不太正常的。
我我的建议不作修改,保留默认。
####################################
kern.ipc.maxsockbuf: 262144
#################http://www.bsdlover.cn#########
最大的套接字缓冲区,网上有建议设置为2097152(2M)、8388608(8M)的。
我我的却是建议不作修改,保持默认的256K便可,缓冲区大了可能形成碎片、阻塞或者丢包。
####################################
kern.ipc.somaxconn: 128
#################http://www.bsdlover.cn#########
最大的等待链接完成的套接字队列大小,即并发链接数。
高负载服务器和受到Dos***的系统也许会由于这个队列被塞满而不能提供正常服务。
默认为128,推荐在1024-4096之间,根据机器和实际状况须要改动,数字越大占用内存也越大。
####################################
kern.ipc.nmbclusters: 4800
#################http://www.bsdlover.cn#########
这个值用来调整系统在开机后所要分配给网络 mbufs 的 cluster 数量,
因为每一个 cluster 大小为 2K,因此当这个值为 1024 时,也是会用到 2MB 的核心内存空间。
假设咱们的网页同时约有 1000 个联机,而 TCP 传送及接收的暂存区大小都是 16K,
则最糟的状况下,咱们会须要 (16K+16K) * 1024,也就是 32MB 的空间,
然而所需的 mbufs 大概是这个空间的二倍,也就是 64MB,因此所需的 cluster 数量为 64MB/2K,也就是 32768。
对于内存有限的机器,建议值是 1024 到 4096 之间,而当拥有海量存储器空间时,咱们能够将它设定为 4096 到 32768 之间。
咱们可使用 netstat 这个指令并加上参数 -m 来查看目前所使用的 mbufs 数量。
要修改这个值必须在一开机就修改,因此只能在 /boot/loader.conf 中加入修改的设定
kern.ipc.nmbclusters=32768
####################################
kern.ipc.shmmax: 33554432
#################http://www.bsdlover.cn#########
共享内存和信号灯("System VIPC")若是这些太小的话,有些大型的软件将没法启动
安装xine和mplayer提示的设置为67108864,即64M,
若是内存多的话,能够设置为134217728,即128M
####################################
kern.ipc.shmall: 8192
#################http://www.bsdlover.cn#########
共享内存和信号灯("System VIPC")若是这些太小的话,有些大型的软件将没法启动
安装xine和mplayer提示的设置为32768
####################################
kern.ipc.shm_use_phys: 0
#################http://www.bsdlover.cn#########
若是咱们将它设成 1,则全部 System V 共享内存 (share memory,一种程序间沟通的方式)部份都会被留在实体的内存 (physical memory) 中,
而不会被放到硬盘上的 swap 空间。咱们知道物理内存的存取速度比硬盘快许多,而当物理内存空间不足时,
部份数据会被放到虚拟的内存上,从物理内存和虚拟内存之间移转的动做就叫做 swap。若是时常作 swap 的动做,
则须要一直对硬盘做 I/O,速度会很慢。所以,若是咱们有大量的程序 (数百个) 须要共同分享一个小的共享内存空间,
或者是共享内存空间很大时,咱们能够将这个值打开。
这一项,我我的建议不作修改,除非你的内存很是大。
####################################
kern.ipc.shm_allow_removed: 0
#################http://www.bsdlover.cn#########
共享内存是否容许移除?这项彷佛是在fb下装vmware须要设置为1的,不然会有加载SVGA出错的提示
做为服务器,这项不动也罢。
####################################
kern.ipc.numopensockets: 12
#################http://www.bsdlover.cn#########
已经开启的socket数目,能够在最繁忙的时候看看它是多少,而后就能够知道maxsockets应该设置成多少了。
####################################
kern.ipc.maxsockets: 1928
#################http://www.bsdlover.cn#########
这是用来设定系统最大能够开启的 socket 数目。若是您的服务器会提供大量的 FTP 服务,
并且常快速的传输一些小档案,您也许会发现常传输到一半就中断。由于 FTP 在传输档案时,
每个档案都必须开启一个 socket 来传输,但关闭 socket 须要一段时间,若是传输速度很快,
而档案又多,则同一时间所开启的 socket 会超过本来系统所许可的值,这时咱们就必须把这个值调大一点。
除了 FTP 外,也许有其它网络程序也会有这种问题。
然而,这个值必须在系统一开机就设定好,因此若是要修改这项设定,咱们必须修改 /boot/loader.conf 才行
kern.ipc.maxsockets="16424"
####################################
kern.ipc.nsfbufs: 1456
#################http://www.bsdlover.cn#########
常用 sendfile(2) 系统调用的繁忙的服务器,
有必要经过 NSFBUFS 内核选项或者在 /boot/loader.conf (查看 loader(8) 以得到更多细节) 中设置它的值来调节 sendfile(2) 缓存数量。
这个参数须要调节的普通缘由是在进程中看到 sfbufa 状态。sysctl kern.ipc.nsfbufs 变量在内核配置变量中是只读的。
这个参数是由 kern.maxusers 决定的,然而它可能有必要所以而调整。
在/boot/loader.conf里加入
kern.ipc.nsfbufs="2496"
####################################
kern.maxusers: 59
#################http://www.bsdlover.cn#########
maxusers 的值决定了处理程序所允许的最大值,20+16*maxusers 就是你将获得的所允许处理程序。
系统一开机就必需要有 18 个处理程序 (process),即使是简单的执行指令 man 又会产生 9 个 process,
因此将这个值设为 64 应该是一个合理的数目。
若是你的系统会出现 proc table full 的讯息的话,能够就把它设大一点,例如 128。
除非您的系统会须要同时开启不少档案,不然请不要设定超过 256。
能够在 /boot/loader.conf 中加入该选项的设定,
kern.maxusers=256
####################################
kern.coredump: 1
#################http://www.bsdlover.cn#########
若是设置为0,则程序异常退出时不会生成core文件,做为服务器,不建议这样。
####################################
kern.corefile: %N.core
#################http://www.bsdlover.cn#########
可设置为kern.corefile="/data/coredump/%U-%P-%N.core"
其中 %U是UID,%P是进程ID,%N是进程名,固然/data/coredump必须是一个实际存在的目录
####################################
vm.swap_idle_enabled: 0
vm.swap_idle_threshold1: 2
vm.swap_idle_threshold2: 10
#########################
在有不少用户进入、离开系统和有不少空闲进程的大的多用户系统中颇有用。
可让进程更快地进入内存,但它会吃掉更多的交换和磁盘带宽。
系统默认的页面调度算法已经很好了,最好不要更改。
########################
vfs.ufs.dirhash_maxmem: 2097152
#########################
默认的dirhash最大内存,默认2M
增长它有助于改善单目录超过100K个文件时的反复读目录时的性能
建议修改成33554432(32M)
#############################
vfs.vmiodirenable: 1
#################
这个变量控制目录是否被系统缓存。大多数目录是小的,在系统中只使用单个片段(典型的是1K)而且在缓存中使用的更小 (典型的是512字节)。
当这个变量设置为关闭 (0) 时,缓存器仅仅缓存固定数量的目录,即便您有很大的内存。
而将其开启 (设置为1) 时,则容许缓存器用 VM 页面缓存来缓存这些目录,让全部可用内存来缓存目录。
不利的是最小的用来缓存目录的核心内存是大于 512 字节的物理页面大小(一般是 4k)。
咱们建议若是您在运行任何操做大量文件的程序时保持这个选项打开的默认值。
这些服务包括 web 缓存,大容量邮件系统和新闻系统。
尽管可能会浪费一些内存,但打开这个选项一般不会下降性能。但仍是应该检验一下。
####################
vfs.hirunningspace: 1048576
############################
这个值决定了系统能够将多少数据放在写入储存设备的等候区。一般使用默认值便可,
但当咱们有多颗硬盘时,咱们能够将它调大为 4MB 或 5MB。
注意这个设置成很高的值(超过缓存器的写极限)会致使坏的性能。
不要盲目的把它设置过高!高的数值会致使同时发生的读操做的迟延。
#############################
vfs.write_behind: 1
#########################
这个选项预设为 1,也就是打开的状态。在打开时,在系统须要写入数据在硬盘或其它储存设备上时,
它会等到收集了一个 cluster 单位的数据后再一次写入,不然会在一个暂存区空间有写入需求时就当即写到硬盘上。
这个选项打开时,对于一个大的连续的文件写入速度很是有帮助。但若是您遇到有不少行程延滞在等待写入动做时,您可能必须关闭这个功能。
############################
net.local.stream.sendspace: 8192
##################################
本地套接字链接的数据发送空间
建议设置为65536
###################################
net.local.stream.recvspace: 8192
##################################
本地套接字链接的数据接收空间
建议设置为65536
###################################
net.inet.ip.portrange.lowfirst: 1023
net.inet.ip.portrange.lowlast: 600
net.inet.ip.portrange.first: 49152
net.inet.ip.portrange.last: 65535
net.inet.ip.portrange.hifirst: 49152
net.inet.ip.portrange.hilast: 65535
###################
以上六项是用来控制TCP及UDP所使用的port范围,这个范围被分红三个部份,低范围、预设范围、及高范围。
这些是你的服务器主动发起链接时的临时端口的范围,预设的已经1万多了,通常的应用就足够了。
若是是比较忙碌的FTP server,通常也不会同时提供给1万多人访问的,
固然若是很不幸,你的服务器就要提供不少,那么能够修改first的值,好比直接用1024开始
#########################
net.inet.ip.redirect: 1
#########################
设置为0,屏蔽ip重定向功能
###########################
net.inet.ip.rtexpire: 3600
net.inet.ip.rtminexpire: 10
########################
不少apache产生的CLOSE_WAIT状态,这种状态是等待客户端关闭,可是客户端那边并无正常的关闭,因而留下不少这样的东东。
建议都修改成2
#########################
以上内容未经本站验证,请在使用以前使用sysctl grep option对选项默认值进行查找,对于命令没法搜索到的选项请谨慎操做,可能致使没法启动系统或者系统某些功能异常.