nf_conntrack_buckets
conntrack_max 推荐默认值
CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (ARCH / 32)
4是hash表里的链表最大长度, 推荐 4 或者 8
HASHSIZE = CONNTRACK_MAX / 4
32位系统 虚拟内存1G, 能用的有896M
64位系统 256T, 能用一半
ARCH: 为CPU架构, 32 或 64。
-
32位 256M内存:
CONNTRACK_MAX = (25610241024)/16384/(32/32) = 16384
HASHSIZE = 16384/4 = 4096 -
64位 8G内存:
CONNTRACK_MAX = (810241024*1024)/16384/(64/32) = 262144
HASHSIZE = 262144/4 = 65536
conntrack 占用内存计算
size_of_mem_used_by_conntrack(in bytes) = CONNTRACK_MAX * sizeof(struct ip_conntrack) + HASHSIZE * sizeof(struct list_head)
sizeof(struct ip_conntrack): 352B
sizeof(struct list_head) = 2 * size_of_a_pointer: 32bit 4B, 64bit 8B
-
32位系统 buckets:4096, max:16384
16384 * 352 + 4096 * 4 = 5MB -
32位系统 buckets:1024, max:4096
4096 * 352 + 1024 * 4 = 1.37MB -
64位系统 buckets: 262144, max: 1048576
1048576 * 352 + 262144 * 8 = 371195904(354 MB)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-06-28 openwrt 一个接口多IP, 多协议配置 (alias)