WEB开发网
开发学院网络安全防火墙 关于iptables中ip_conntrack_max和hash表的关系及... 阅读

关于iptables中ip_conntrack_max和hash表的关系及调整

 2007-03-12 12:41:42 来源:WEB开发网   
核心提示: 哈西表包含了HASHSIZE大小的链接条目,当条目满的时候(总的跟踪连接条目数达到了CONNTRACK_MAX),关于iptables中ip_conntrack_max和hash表的关系及调整(2),理想状态下,每个列表(在最优化的条件下)将包含大约CONNTRACK_MAX/HASHSI

哈西表包含了HASHSIZE大小的链接条目。当条目满的时候(总的跟踪连接条目数达到了CONNTRACK_MAX),理想状态下,每个列表(在最优化的条件下)将包含大约CONNTRACK_MAX/HASHSIZE的条目数。

不管你是否有连接,哈西表都将占用一个固定大小的非交换内核内存。但是最大连接跟踪条目会检测最多可以存储多少条目(globally into the

linked lists),也就是说他们最多可以占用多少的内核内存。

这篇文档将给你一些关于为了达到最好的netfilter conntracking/NAT系统性能,如何调优HASHSIZE和CONNTRACK_MAX值的提示。

CONNTRACK_MAX和HASHSIZE的默认值

============================================

一般来说,CONNTRACK_MAX和HASHSIZE都会设置在“合理”使用的值上,依据可使用的RAM的大小来计算这个值。

CONNTRACK_MAX的默认值

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

在i386架构上,CONNTRACK_MAX = RAMSIZE (以bytes记) / 16384 =

RAMSIZE (以MegaBytes记) * 64,

因此,一个32位的带512M内存的PC在默认情况下能够处理512*1024^2/16384 = 512*64 = 32768个并发的netfilter连接。

但是真正的公式是:

CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32)

这里x是指针的bit数,(例如,32或者64bit)

请注意:

-默认的CONNTRACK_MAX值不会低于128

-对于带有超过1G内存的系统,CONNTRACK_MAX的默认值会被限制在65536(但是可以手工设置成更大的值)

HASHSIZE的默认值

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

通常,CONNTRACK_MAX = HASHSIZE * 8。这意味着每个链接的列表平均包含8个conntrack的条目(在优化的情况并且CONNTRACK_MAX达到的情况下),每个链接的列表就是一个哈西表条目(一个桶)。

上一页  1 2 3 4 5  下一页

Tags:关于 iptables ip

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接