如果在压力测试的时候,并发数增大,但无法完成测试,可以尝试调整下参数:
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
分享到:
相关推荐
综上所述,"nf_conntrack_proto_udp.rar_out"涉及的是Linux内核中的网络连接跟踪模块,特别是针对UDP协议的部分,其主要任务是管理和输出与UDP连接相关的跟踪信息。这个模块通过解析和处理UDP数据包,在网络层提供...
RRQ and WRQ works the same way for Linux v2.13.6.
标题中的"nf_conntrack_tuple_common.rar_The Common"暗示了我们正在探讨的是网络连接跟踪(Netfilter Connection Tracking,简称NF Conntrack)中的元组(tuple)通用部分。NF Conntrack是Linux内核的一个核心组件...
iptables的conntrack表是Linux内核中用于网络连接跟踪的一个重要机制,它的主要作用是记录和管理通过iptables规则的网络连接状态。当conntrack表填满时,可能会导致访问网站速度变慢,甚至出现丢包和连接失败的问题...
Linux Network driver: IPv6 fragment reassembly for connection tracking.
broadcast connection tracking helper for linux network.
IPv4 support for nf_conntrack.
数据包在Linux内核中进行转发的过程中,连接跟踪模块会根据数据包的状态和方向采取不同的操作。以下是基本的数据包转发流程: 1. **PREROUTING**:数据包到达网络层之前触发。 - 如果是新连接,则创建连接记录。 ...
Print out the per-protocol part of the tuple.
Actually only need first 8 bytes.
Print out the per-protocol part of the tuple.
bool generic pkt to tuple for Linux v2.13.6.
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实现
Event cache for netfilter.