收起左侧

PVE ESXI虚拟机中安装飞牛出现内存不断增长、溢出泄露问题解决方案

21
回复
1605
查看
[ 复制链接 ]

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-6 19:45:09 显示全部楼层 阅读模式

<br /> <br />

内存暴涨原因

目前我们发现绝大部分虚拟机安装飞牛的用户存在内存不断增长,主要是内存没有被回收,一般来讲内存回收是由系统来管理的,但是由于你在虚拟机中安装的系统,但是在 PVE 或 ESXi 虚拟机环境中,内存管理可能受到宿主机资源调度和内存气球技术(Ballooning)的影响。

一般来讲,系统开机后会占用大部分接近全部的内存,对这些内存做一个细致划分,所以你会在开机一瞬间在虚拟机监控平台就可以看到虚拟机内存直接占满所分配的所有内存,这是一个非常正常事情

image.png

内存超分

比如我宿主机有 8G内存,然后我创建了A B两个虚拟机 A虚拟机分配6G运存,B虚拟机分配2G运存,加上系统(ESXI PVE)保留内存,实际处于一个内存超分的情况,这个时候如果我开启B虚拟机,B虚拟机需要一下占用2G内存,但是主机内存肯定不够,所以根据ESXI调度策略,会将A虚拟机中的空闲内存进行强行回收,这些不活动的内存会以 .vswap保存在虚拟机的目录中,关机后将被释放。

如果出现内存回收那么你一定会在ESXI监控中看到虚拟机内存实际占用有一个明显的下降

63d0ad31-0f23-4a9c-9bf6-457856da1149.png

但是由于保存这个文件回收是需要时间,B虚拟机需要快速接近一瞬间得到全部内存,所以这个时候ESXI会把A虚拟机中的内存进行强行占用来防止主机内存溢出造成系统直接崩溃,所以你会发现A虚拟机中的内存在一瞬间出现非常高的占用,但是在进程中你是无法看到的。

但是这个时间一般会在1分钟左右ESXI会把两个虚拟机的内存进行合理的分配,因为B虚拟机刚开机占用的很大一部分内存实际上并不活跃,由于内存的超分最终会被回收闲置内存,所以当B虚拟机内存回收完毕后,A虚拟机强行占用的内存也会被ESXI进行释放,但是问题就出现在这里,可能因为一些因素导致系统内存并没有被回收,所以你会发现好像是在一瞬间内存暴涨但始终没有降低。那么这样接着循环几下这个系统的内存一直没有释放就会直接导致内存溢出然后系统死机崩溃

e6a70d24-0611-40c2-b7cb-ac0359de0c36.png

那么会有人问,如果我再来个C虚拟机 分配2G内存会出现什么样子?

这个时候ESXI由于内存实在比较紧张,无法瞬时间完成回收,所以这个虚拟机在开机的时候大概率会出现一个等待,会有一个显示“正在调度内存<字节数>”在调度过程中,A B虚拟机的内存均会再进行一个大幅度回收以及强行占用。直到C虚拟机完成开机,ESXI监控到一部分不活跃的内存给回收到 .vswap文件中然后才会将 A B虚拟机强行占用的内存进行释放。

如果你需要了解更详细的内存回收,可以点击这里查看官方技术文档

如何解决?

那么这个问题其实解决起来也非常简单,每个虚拟化平台都会配备一个虚拟机管理工具,比如Vmware Tools 专门用来增强图形化以及内存管理,VMware Tools是可以配合宿主机完成整个过程的内存调度任务,PVE是属于qemu虚拟机,也有自己的管理工具 qemu-guest-agent

如何安装?

ESXI VMware 需要安装开源的Tools,是专门适用于的 Debian比自带的Tools有更强的兼容性

进入SSH 输入以下命令

sudo apt update
sudo apt install open-vm-tools

PVE输入

sudo apt update
sudo apt install qemu-guest-agent -y

其它说明

  1. 目前由于飞牛是定制内核,一般来讲ESXI兼容的Linux系统中安装过程会自动将对应的管理工具进行安装。所以不确定这个工具是否会造成系统中其它兼容问题,我会持续观察,如果有任何问题,欢迎在评论区留言
  2. 出现内存暴涨的主要触发应该是你触发了内存超分,过量分配虚拟机内存。

关于SWAP是否会影响内存溢出?

swap实际上并不会导致内存溢出,根据社区反映,还是有存在关闭swap出现内存溢出的问题,结合各大AI所说,swap影响内存溢出没有实际证明。但是在虚拟机中一般也用不到swap,因为他与VMware的 .vswap原理是很像

收藏
送赞 2
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-7 16:40:27 显示全部楼层
你说得是动态调配内存的情况吧,勾选"预留所有客户机内存(全部锁定)"呢?照理说是不是就不会内存溢出了?
我勾选了这个,一样会爆内存  详情 回复
2025-3-8 23:20
也可以 我之前还想说 写文章的时候给忘了🤣🤣🤣  详情 回复
2025-3-7 19:02

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-14 19:39:24 楼主 显示全部楼层
如果宿主机超分比较严重,这个内存占用多是正常的,可以开启保留全部内存。
https://www.xiaozhuhouses.asia/欢迎访问我的博客

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-7 19:02:13 楼主 显示全部楼层
也可以 我之前还想说 写文章的时候给忘了🤣🤣🤣
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

9

回帖

0

牛值

江湖小虾

2025-3-8 22:23:36 显示全部楼层
出LXC版就好了,不需要考虑这事了

4

主题

26

回帖

0

牛值

江湖小虾

2025-3-8 23:20:41 显示全部楼层
我勾选了这个,一样会爆内存
下次爆内存加我我远程看下 我私信发你QQ号  详情 回复
2025-3-10 22:23

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-10 22:23:01 楼主 显示全部楼层
下次爆内存加我我远程看下 我私信发你QQ号
还是会缓慢增长  详情 回复
2025-3-11 19:10
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

1

回帖

0

牛值

江湖小虾

2025-3-11 19:10:58 显示全部楼层
还是会缓慢增长

0

主题

2

回帖

0

牛值

江湖小虾

2025-3-13 14:50:55 显示全部楼层
安装是在宿主机上面还是飞牛系统里面?
肯定是飞牛里面啊  详情 回复
2025-3-13 15:53

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-13 15:53:58 楼主 显示全部楼层
肯定是飞牛里面啊
谢谢....补字数补字数  详情 回复
2025-3-13 19:43
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

2

回帖

0

牛值

江湖小虾

2025-3-13 19:43:23 显示全部楼层

谢谢....补字数补字数

1

主题

14

回帖

0

牛值

江湖小虾

2025-3-15 06:01:17 显示全部楼层
PVE  SSH输入代码提示 -bash: sudo: command not found
PVE安装了一个ISTORE当主路由还虚拟了一个飞牛。  主路由一直稳定运行,飞牛有时候会死机,手动关虚拟机也不行,只能整个PVE重启才恢复正常。
是在飞牛里面装  详情 回复
2025-3-20 18:42

0

主题

2

回帖

0

牛值

江湖小虾

2025-3-18 05:31:07 显示全部楼层
谢谢....补字数补字数

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-20 18:42:17 楼主 显示全部楼层
吴汉平 发表于 2025-3-15 06:01
PVE  SSH输入代码提示 -bash: sudo: command not found
PVE安装了一个ISTORE当主路由还虚拟了一个飞牛。   ...

是在飞牛里面装
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-24 12:01:17 显示全部楼层
刚用PVE装的飞牛 这个qemu-guest-agent 从飞牛安装后怎么设置的?不太会用  谢谢
是的 安装后在飞牛里面执行  详情 回复
2025-3-24 12:18

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-24 12:18:55 楼主 显示全部楼层
希望人没事 发表于 2025-3-24 12:01
刚用PVE装的飞牛 这个qemu-guest-agent 从飞牛安装后怎么设置的?不太会用  谢谢 ...

是的 安装后在飞牛里面执行
请教一下 没玩过这个 飞牛里面安装之后 PVE里面飞牛的选项里面 QEMU Guest Agent 已启用 然后这玩意具体操作是要到飞牛虚拟机终端里面还要怎么执行?是用什么命令吗?  详情 回复
2025-3-24 15:13
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-24 15:13:44 显示全部楼层
月光微暖冬 发表于 2025-3-24 12:18
是的 安装后在飞牛里面执行

请教一下   没玩过这个 飞牛里面安装之后  PVE里面飞牛的选项里面 QEMU Guest Agent    已启用  然后这玩意具体操作是要到飞牛虚拟机终端里面还要怎么执行?是用什么命令吗?
已启用就不用管了  详情 回复
2025-3-24 18:30

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-24 18:30:26 楼主 显示全部楼层
希望人没事 发表于 2025-3-24 15:13
请教一下   没玩过这个 飞牛里面安装之后  PVE里面飞牛的选项里面 QEMU Guest Agent    已启用  然后这玩 ...

已启用就不用管了
[md]好吧 我还以为还要设置 但是启用了也没用....中午重启的,这会又爆了 我机子内存本身32G,fnOS 12G 另外两个各2G 都还有16G没分配... ![Snipaste_2025-03-24_21-53-45.jpg](data/attachment/forum/202503/2  详情 回复
2025-3-24 21:56
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-24 21:56:29 显示全部楼层

<br /> <br />

好吧 我还以为还要设置 但是启用了也没用....中午重启的,这会又爆了 我机子内存本身32G,fnOS 12G 另外两个各2G 都还有16G没分配... Snipaste_2025-03-24_21-53-45.jpg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看下飞牛任务进程里面的进行按内存排个序 看看是不是某个进程占用的  详情 回复
2025-3-24 21:59

18

主题

77

回帖

15

牛值

社区共建团

社区共建团荣誉勋章

2025-3-24 21:59:38 楼主 显示全部楼层
希望人没事 发表于 2025-3-24 21:56
[md]好吧 我还以为还要设置  但是启用了也没用....中午重启的,这会又爆了  我机子内存本身32G,fnOS  12 ...

看下飞牛任务进程里面的进行按内存排个序 看看是不是某个进程占用的
[md]飞牛里面还好 每次溢出飞牛里面内存并没有爆 就是PVE显示的飞牛内存爆了 就很奇怪 比如说现在你看这..这就是刚刚同一时间两边 ![Snipaste_2025-03-24_22-39-52.jpg](data/attachment/forum/202503/24/224001b  详情 回复
2025-3-24 22:40
https://www.xiaozhuhouses.asia/欢迎访问我的博客

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-24 22:40:09 显示全部楼层

<br /> <br />

飞牛里面还好 每次溢出飞牛里面内存并没有爆 就是PVE显示的飞牛内存爆了 就很奇怪 比如说现在你看这..这就是刚刚同一时间两边 Snipaste_2025-03-24_22-39-52.jpg 的情况 Snipaste_2025-03-24_22-36-34.jpg

Snipaste_2025-03-24_22-38-44.jpg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

7

回帖

0

牛值

江湖小虾

2025-3-24 22:44:33 显示全部楼层

Snipaste_2025-03-24_22-43-34.jpg

Snipaste_2025-03-24_22-43-39.jpg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则