我的问题是主机节点和容器是否都具有相同的“nf_conntrack_max”?
当我检查主机与容器时,结果如下:
主机节点
[root@echo ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
524288
OpenVZ 容器
[root@delta ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
65536
但是当我尝试更改容器上的值时,我遇到了几个问题。
这就是我通常会增加在主机节点上完美运行的值的方式。
[root@echo ~]# echo 1524288 > /proc/sys/net/netfilter/nf_conntrack_max
[root@echo ~]#
[root@echo ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
1524288
同样的东西在容器上运行
[root@delta ~]# echo 1524288 > /proc/sys/net/netfilter/nf_conntrack_max
-bash: echo: write error: Invalid argument
[root@delta ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
65536
我不明白为什么我在提高容器价值时遇到问题。主机节点和容器都在运行 Centos 6.6,我使用的是 root。
编辑
我试过sysctl -w net.netfilter.nf_conntrack_max=1524288
在容器中运行,但似乎仍然有问题。
[root@delta ~]# /sbin/sysctl -a|grep -i nf_conntrack_max
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536
[root@delta ~]# sysctl -w net.netfilter.nf_conntrack_max=1524288
error: "Invalid argument" setting key "net.netfilter.nf_conntrack_max"
我认为您只需在 HN 中设置 conntrack 并重新启动 CT。
在容器中,您可以通过以下方式检查限制:
设置(在容器中):
sysctl -w net.netfilter.nf_conntrack_max=32384
然而,最大值是 net.nf_conntrack_max 值,无论如何它通常都是从这个值开始的。
虽然主机节点和容器具有单独的“nf_contract_max”值,但您无法将容器“nf_conntrack_max”提升至高于主机节点“nf_conntrack_max”。
例如; 如果您的主机节点的最大值为 65536,您将无法将容器最大值提升到 65536 以上。
只需提高主机节点限制,然后提高容器限制。