如果在压力测试的时候,并发数增大,但无法完成测试,可以尝试调整下参数:
vi /etc/sysctl.conf
在kernel2.6之前的添加项:
net.ipv4.netfilter.ip_conntrack_max = 655360
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
kernel2.6之后的添加项:
net.nf_conntrack_max = 655360 # net.nf_conntrack_max = 655360 也可以
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
sysctl -p /etc/sysctl.conf
如果报错:error: "net.nf_conntrack_max" is an unknown key 则需要使用modprobe载入ip_conntrack模块,lsmod查看模块已载入。
modprobe ip_conntrack
关于
--CONNTRACK_MAX 允许的最大跟踪连接条目,是在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)
--HASHSIZE 存储跟踪连接条目列表的哈西表的大小
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达到的情况下),每个链接的列表就是一个哈西表条目(一个桶)。
在i386架构上,HASHSIZE = CONNTRACK_MAX / 8 =RAMSIZE (以bytes记) / 131072 = RAMSIZE (以MegaBytes记) * 8。举例来说,一个32位、带512M内存的PC可以存储512*1024^2/128/1024 =512*8 = 4096 个桶(链接表)
但是真正的公式是:HASHSIZE = CONNTRACK_MAX / 8 = RAMSIZE (以bytes记) / 131072 / (x / 32)这里x是指针的bit数,(例如,32或者64bit)
请注意:
-默认HASHSIZE的值不会小于16
-对于带有超过1G内存的系统,HASHSIZE的默认值会被限制在8192(但是可以手工设置成更大的值)
--------------------------------------------
另外一篇详细讲解的文章:
http://blog.csdn.net/dog250/article/details/7107537
分享到:
相关推荐
Linux Network driver: IPv6 fragment reassembly for connection tracking.
broadcast connection tracking helper for linux network.
IPv4 support for nf_conntrack.
Print out the per-protocol part of the tuple.
Print out the per-protocol part of the tuple.
Actually only need first 8 bytes.
Print out the per-protocol part of the tuple.
RRQ and WRQ works the same way for Linux v2.13.6.
bool generic pkt to tuple for Linux v2.13.6.
The protocol-specific manipulable parts of the tuple: always in network order.
you can redistribute it and or modify it under the terms of the GNU General Public License version 2.
Deleting the dummy variable which kicks off garbage collection.
netfilter中对多连接协议跟踪和NAT实现
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
在netfilter体系中,状态跟踪机制(conntrack)是重要的一部分。它是基于Linux系统的stateful防火墙的基础,也是NAT完成对相关包进行转换的手段。本文尝试对conntrack的机制进行分析和理解。 在基于header信息...
greenev是一个基于greenlet协程,事件驱动,非阻塞socket模型的Python网络服务框架,它使得...net.nf_conntrack_max = 65000 net.netfilter.nf_conntrack_tcp_timeout_established = 1200 标签:greenev