我们在 OVH 上托管了 5 台物理机器。每台机器都安装了 Proxmox 5.2-10,位于 OVH vRack 内部。我们有单独的数据库 LXC、带有负载均衡器的单独 LXC 以及带有 Web 应用程序堆栈(php 和 nginx)的几个单独实例。
当我们在一台物理机器上放置更多带有 Web 堆栈的 LXC 时,一段时间后,除了一台之外,其他所有 LXC 都卡住了。PHP 和 nginx 都没有响应网络。物理服务器上的平均负载突然开始增长。可以通过 ssh 或 pct enter 进入 LXC,但无法从 Proxmox Web 界面关闭,必须强制终止 LXC 进程。
当我们将 PHP 从 7.0 升级到 7.2 时,这个问题开始出现。我不认为这有什么关系,但我以前从未遇到过类似的行为。到目前为止,除了将 Web LXC 放在单独的机器上之外,我们无法想出任何解决方案。没有我们的 Web 应用程序堆栈的 LXC 可以正常地放在一台物理机器上。
我们认为这与网络有关。有些文件通过 NFS 在所有 LXC 上共享。这可能是一个提示吗?但问题再次只出现在 Web LXC 上。具有共享文件的其他容器可以正常协同工作。
LXC 网络接口配置示例:
auto lo
iface lo inet loopback
iface lo inet6 loopback
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
address 5.39.56.172
netmask 255.255.255.224
gateway 5.39.56.190
auto eth1
iface eth1 inet static
address 172.16.32.172
netmask 255.240.0.0
主机接口配置示例:
auto lo
iface lo inet loopback
iface eno1 inet manual
auto eno2
iface eno2 inet manual
auto vmbr0
iface vmbr0 inet static
address 147.135.254.187
netmask 255.255.255.0
gateway 147.135.254.254
bridge-ports eno1
bridge-stp off
bridge-fd 0
iface vmbr0 inet6 static
address 2001:41d0:303:2dbb::
netmask 64
auto vmbr1
iface vmbr1 inet static
address 172.16.35.1
netmask 255.240.0.0
broadcast 172.31.255.255
bridge-ports eno2
bridge-stp off
bridge-fd 0
network 172.16.0.0