vmware workstation 16 pro 开启虚拟机占用内存远比分配给虚拟机的内存高?

不知道从哪个windows10和vmware workstation 15pro哪个版本开始,发现多开几个虚拟机后32G内存不够用了。经过仔细对比发现,vmware workstation只要一打开虚拟机,已提交内存刷的就上去了。举个例子,一台linux分配了4G内存,第1张图是开机前的内存使用率和已提交内存大小一点开机,注意这个时候虚拟机还没真正启动,已提交内存立刻就增加了4G,见第2张图然后开机过程中,已提交内存还在增加,等到进入系统,随着虚拟机使用,已提交内存就会继续增加,基本上是一个4G的虚拟机,要被vmware提交8G甚至更多,看第3张图关机之后,已提交内存又回来了,看第4张图我为什么这么关心这个已提交内存呢?是因为虚拟机开多的情况下,这个已提交内存到了31G接近32G,物理机就无响应然后蓝屏重启了,这个时候真正内存使用才十几个G不到20G啊。在网上各种搜索,没搜到相关答案,就没有人遇到和我一样的问题么?

初步估计是由于虚拟内存与物理内存交互时导致页面错误,

这个问题会在win10低核心版本发生的概率较大,

又或者与一些设置相关,可以按我以下建议进行操作,看能否解决问题

首先,要从自查 win10版本开始,

第一步,检查一下win10 版本,

在win10设置里,如下图

设置

然后点关于,就可以查看到版本号

关于

如果核心版本低于20H2,建议先升级到20H2以上版本,因为核心版本低的win10存在非常多的BUG,这个我自己亲身体会。

第二步,虚拟内存的设置,不要小看这个虚拟内存设置,很多时候就是这个搞出各种问题。

在此电脑图标(就是我的电脑,懂的自然懂)上面右键,属性

此电脑

然后选择高级系统设置

高级系统设置

弹出菜单后,看下图的步骤操作,最后的目的是设置虚拟内存位置和大小,

虚拟内存

这里很关键,我自己有时候运行一些程序和搭建开发环境的时候,

万万没想到报蓝,居然是这里设置影响的,

如果你的内存是很大,千万不要使用系统的自动分配虚拟内存!切记!切记!

因为系统自动分配的虚拟内存,会直接建立一个和你物理内存一样大小的缓存文件!

很多人会忽略了这个问题,比如你的SSD分配给你的当前系统空间只有100GB,

但是你的内存是64GB,那么你就等着哭吧,自动分配的虚拟内存会把你的系统盘空间全吃掉,

系统盘空间不足的时候就会产生各种各样的问题。

虚拟内存的大小设置,建议是从256MB起步,

然后最大值就是取决于你是做什么用途来做设置,比如VMware如果要多开很多个,

那就可以在一个空间较大的磁盘上(建议不要和VM文件一个磁盘,同盘会影响整体性能)设置最大值为32768MB。


第三步,将VM虚拟机改为直接使用物理内存

这一步取决于运行VM虚拟机多少个有关,

如果开的虚拟机使用的内存总和要大于物理内存(需要计算上系统本身和程序本身需要的4GB左右),那这一步可以不看,

因为这一步是直接让VM虚拟机直接使用物理内存,不使用虚拟内存,VM默认下是使用主机虚拟内存+物理内存相结合的,

需要找到虚拟机的主配置文件,以 .VMX结尾的文件,每个虚拟机是唯一的很好找,如下图

VMX文件

找到这个文件后,需要使用记事本的方式打开它,

打开文件

使用记事本打开后,用查找的功能找到memsize这个关键字,如下图

添加

然后在memsize这个字段下面,最加入一行配置

mainMem.useNamedFile= "FALSE"

加入进去后保存。如果你有多个虚拟机就需要每个都要改一遍。

这时候你改完的虚拟机就直接使用物理内存了,不会使用虚拟内存,

如果运行多个虚拟机后,在内存满的情况下,VM程序也会提示反馈内存不足不让其虚拟机运行的。

好了,以上的建议,希望可以帮助到你

追问

你好,按照你说得,添加这行,mainMem.useNamedFile= "FALSE",4G内存的虚拟机开机瞬间已提交内存增加了8个G,而且随着虚拟机开机过程一直增加。
我是21H1的系统,操作系统本身也没开虚拟内存,觉得32G够了,不需要开虚拟内存

追答

你好,虚拟内存不是说内存大就不开的,有小部分程序或系统缓存是需要使用虚拟内存的,建议按照我上面发的第二步设置,如果你是做开发环境的话就更加需要虚拟内存了。

还有你说的已提交的内存很大的问题,目前这个问题就连微软官方也无法解释的(可能是漏洞又或者是某种目的不告诉我们真相)。

如果真要研究这个提交内存大小的问题,也有很多方面都会影响到提交内存的大小。

1、显卡的共享内存会导致已提交变大,你可以查看虚拟机使用显存的大小。

2、杀病毒软件,杀毒软件大多都是驱动级的,经过杀毒软件的剖析后也会增加提交大小。

3、某程序的内存泄漏,比如QQ输入法的进程等等。

4、有些程序使用到显卡的硬件加速之类的软件,如浏览器等。

所以需要多方面着手,现在你只看已提交的内存大小是没有任何意义的,道不如看一下物理内存占用了多少

如图上使用中的,你可以观察启动虚拟机前是多少,启动虚拟机后是多少,一般你在VM的配置里添加了mainMem.useNamedFile= "FALSE"这一条的话,使用中的内存一般都是和物理内存使用量对应的。比如启动前使用是4GB,虚拟机设定是使用2GB,那启动后应该就是6GB,较准确的。你可以观察观察。

追问

你好,你说的我都能理解,已提交比实际占用多点是正常的,比如浏览器或者其他软件使用了。然后我在C盘固态盘空间足够的情况下,开启虚拟内存,让系统自动管理虚拟内存,然后我开了两个虚拟机后,实际使用21G内存,已提交52G,比实际多了30G,太TM离谱了,这什么沙雕机制。把虚拟机关掉,就恢复了已提交比实际使用只多一点的情况了。

追答

你好,还有一个VM设置你也可以尝试一下,就是在VM主页面的菜单中,编辑里有一个首选项,然后将里面的内存设置,将内存设置为“调整所有虚拟机内存使其适应预留的主机RAM”,然后你再看看效果如何? 如果都没有改善,那就是微软不能告诉我们的“秘密”了哈。


追问

这几天忙,没回复,不好意思。最开始调的就是这里,发现没作用,把能想到的办法都想了,才在这里提问的。现在支护里提问的,一个回到的都没有,然后才到这里提问。但还是没解决,唉,谢谢。我现在临时就先这么用,就是把虚拟内存设置为自动,让它自己管理自己增加。

追答

没事哈,最后也没怎么帮上忙,不过最后我个人认为是win10的机制导致这样的显示。

追问

暂时解决了,但不完美。就是我之前把虚拟机显示器都设置为3D加速图形,把这个功能去掉,就不会出现开机瞬间占用和内存一样大小的情况了。暂时先这样吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-23
很正常啊
首先物理机系统本身要占用部分内存;
其次VMware软件本身也要占用部分内存(不包含分配给特定虚拟机的);
再次物理机系统上其他软件(操作系统和VMware之外的)同样要占用部分内存;
最后你不能光看峰值,要看稳定运行时的平均值。
第2个回答  2022-03-21
同vmware workstation 16 pro 版本 WIN10 1803打开虚拟机一样提交内存是分配内存的两倍左右 系统还是虚拟机版本有BUG或者虚拟机机制就是这样
第3个回答  2022-07-11
同问,我的是14G内存,分给VM为8G,就开一个虚拟系统 ,过一会儿就把电脑14G内存全占满了,内存使用99%。我只分给虚拟8G呀,还有6G运行win7,和一些办公的,可虚拟的就把所有内存占了
第4个回答  2021-06-22
多开虚拟机运行,建议换版本如ESXI6.7。或者装SERVER2008 R2版本.winver查看版本号1709稳定差些,改1909版本稳定。另外硬盘质量检查HDD TUNES查看固态硬盘,3000次读写问题。
为什么不组阵列卡追问

不是服务器,服务器就装esxi了。是普通PC和普通笔记本,两者都是这种情况。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网