Linux系统参数说明

整理了一些Linux系统参数,加以说明。

在/proc/sys/net/ipv4/目录下,包含的是和tcp/ip协议相关的各种参数,下面我们就对这些网络参数加以详细的说明。

参数名 参数类型
参数值(如无特别标注,内存类的单位为byte,关于时间的单位为秒)
官方详细说明(skylove对该参数的个人心得或补充说明)

ip_forward :BOOLEAN
0 - 关闭(默认值)
非0值 - 打开ip转发
在网络本地接口之间转发数据报。该参数非常特殊,对该参数的修改将导致其它所有相关配置参数恢复其默认值(对于主机参阅RFC1122,对于路由器参见 RFC1812)(在其他一些操作系统中,这个参数不是boolean型,而是INTEGER型,设置为0为不转发,1为根据接口情形决定是否转发,2是始终转发)

ip_default_ttl :INTEGER
默认值为 64
表示IP数据报的Time To Live值(在网络传递中,每经过一"跳",该值减少1,当ttl为0的时候,丢弃该包.该值越大,即在网络上可以经过的路由器设备的数量越多,但一个错误的包,也会越发浪费生存周期.根据目前的实际情形而看,设置为32已经足够普通网络访问Internet的需求了)

ip_no_pmtu_disc :BOOLEAN
默认值为FALSE(0)
关闭路径MTU探测(典型的瓶颈原理,一次成功的传输中,mtu是由网络上最"窄"的位置决定的.如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。
几种常见网络的MTU值:


超通道         65535
16Mb/ s令牌网(IBM)   17914
4Mb/ s令牌网(IEEE 802.5) 4464
FDDI          4352
以太网         1500
IEEE 802.3/802.2     1492
X.25          576
点对点(低延时)     296

 

ipfrag_high_thresh :INTEGER
默认值为262144
用来组装分段的IP包的最大内存量。两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存(ipfrag_low_thresh 见下文)分配值。(根据我个人理解,就是达到最高后,就"关门打狗",直到处理到最低值的时候才又开门放分段的ip包进来处理.如果最高/最低差距过小, 很可能很快又达到限制又开始丢弃包;而设置过大,又会造成某段时间丢包时间持续过久.因此需要适当地考虑,默认值中给出的最低/最高比率值为3/4.此外补充说明, kernel中,对内存的使用单位,都是以byte为单位的.当TCP数据包传输发生错误时,开始碎片整理。有效的数据包保留在内存,同时损坏的数据包被转发。我在1G内存的NAT机器上,分别设置最低为262144,最高为393216)

ipfrag_low_thresh :INTEGER
默认值为196608
参见ipfrag_high_thresh。

ipfrag_time :INTEGER
默认值为30
保存一个IP分片在内存中的时间。

inet_peer_threshold :INTEGER
默认值为65664
INET 对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存时间以及废物收集通过的时间间隔。条目越多?存活期越低?GC 间隔越短(GC=Grabage Collection 废物收集?默认值65664=65536 + 128 是怎么得来的呢?看include/net/inetpeer.h struct inet_peer的内容,是为了IP ROUTE更快,缓冲对方IP的信息,一个对方IP一个记录.该值与
inet_peer_gc_maxtime
inet_peer_gc_mintime
inet_peer_maxttl
inet_peer_minttl
inet_peer_threshold
参数都是用来控制这个cache的大小的。似乎这个cache消耗比较大,在CU上有朋友提到过在一个26M的嵌入式Linux中,这个cache就用到了1M多内存)

inet_peer_maxttl :INTEGER
默认值为600
条目的最大存活期。在此期限到达之后?如果缓冲池没有耗尽压力的话(例如?缓冲池中的条目数目非常少)?不使用的条目将会超时。该值以 jiffies为单位测量。

inet_peer_gc_mintime :INTEGER
默认值为10
废物收集(GC)通过的最短间隔。这个间隔会影响到缓冲池中内存的高压力。 该值以 jiffies为单位测量。(如果长期不整理,会cache很多条目,而整理的时间太频繁,又会给系统造成压力,这个值就是确定最小整理周期间隔的)

inet_peer_gc_maxtime :INTEGER
默认值为120
废物收集(GC)通过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。 该值以 jiffies为单位测量。Jiffie: 内核使用的内部时间单位,在i386系统上大小为1/100s,在Alpha中为1/1024S。在/usr/include/asm/param.h中的HZ定义有特定系统的值。

相关推荐