找回密码
 立即注册
搜索
查看: 3950|回复: 18

[软件] 虚拟机内存占用到底怎么算,5个1G内存虚机,主机12G都不够

[复制链接]
     
发表于 2016-7-3 14:38 | 显示全部楼层 |阅读模式
rt

Virtual Box开了5个Win7 64位虚机(必须要Windows桌面,没办法),每个1G内存,128显存
结果12G的内存主机老是报内存不足,这有什么讲究的没?

回复

使用道具 举报

     
发表于 2016-7-3 15:37 | 显示全部楼层
正常
我二奶机8G内存 经常用个5 6G就给我报内存不足
记得WIN7有个指令可以删除这个内存不足强行关闭程序
回复

使用道具 举报

发表于 2016-7-4 14:31 | 显示全部楼层
不一定是物理内存不足,有可能是页面文件不足。
按 Windows 的默认设置,会按照物理内存 1:1 的比例准备页面文件。虚拟机大量请求内存的时候如果创建页面文件的速度跟不上就有可能会报内存不足错误。

不妨先开一下任务管理器看一下实际的物理内存使用状况。
回复

使用道具 举报

     
发表于 2016-7-4 15:11 | 显示全部楼层
附议楼上,设个16G的虚拟内存试试看。
回复

使用道具 举报

     
 楼主| 发表于 2016-7-4 18:40 | 显示全部楼层
tippisum 发表于 2016-7-4 14:31
不一定是物理内存不足,有可能是页面文件不足。
按 Windows 的默认设置,会按照物理内存 1:1 的比例准备页 ...

虚拟内存开了512M 纯粹给转储用
老SSD intel g2 只有80G,开等比页面文件有点伤啊……

回复

使用道具 举报

发表于 2016-7-4 18:48 | 显示全部楼层
看这贴图确实是12G物理内存占满了……
Server 2003系统自身的内存占用应该可以忽略,你的服务器上还跑了什么程序?

你可以尝试下关掉所有的虚拟机之后看内存占用回到什么水平么?
回复

使用道具 举报

发表于 2016-7-4 18:57 来自手机 | 显示全部楼层
Mac下的PD,8G内存跑了两个Win7,一个ThinPC,一个Win10,Win下的HyperV,跑一个Win7,一个2008,一个Win10,一个ThinPC没卡,当然我没开什么大的软件,基本都是迅雷什么的
回复

使用道具 举报

     
 楼主| 发表于 2016-7-4 18:59 | 显示全部楼层
tippisum 发表于 2016-7-4 18:48
看这贴图确实是12G物理内存占满了……
Server 2003系统自身的内存占用应该可以忽略,你的服务器上还跑了什 ...

程序不就是第二张图么,已经按内存排序了
我是看不出来有什么用的多的
回复

使用道具 举报

发表于 2016-7-4 19:00 来自手机 | 显示全部楼层
想虚拟机用的爽,就上esxi或者docker?

----发送自 HUAWEI HUAWEI NXT-CL00,Android 6.0
回复

使用道具 举报

     
 楼主| 发表于 2016-7-4 19:08 | 显示全部楼层
lhw369 发表于 2016-7-4 19:00
想虚拟机用的爽,就上esxi或者docker?

----发送自 HUAWEI HUAWEI NXT-CL00,Android 6.0 ...

界面程序上不了docker,需要esxi那么重量级的么……
回复

使用道具 举报

发表于 2016-7-4 19:09 | 显示全部楼层
董卓 发表于 2016-7-4 18:59
程序不就是第二张图么,已经按内存排序了
我是看不出来有什么用的多的

你那个按内存排序指的应该是专用工作集,这个数字对类似虚拟机之类的后台内存占用程序是无效的。
最简单的一点,显然你这里面所有进程的内存占用加到一起肯定不到12G,甚至不一定有1G……

你得把统计信息改成总工作集或者总虚拟内存才能看得出来。
回复

使用道具 举报

     
 楼主| 发表于 2016-7-4 19:14 | 显示全部楼层
tippisum 发表于 2016-7-4 19:09
你那个按内存排序指的应该是专用工作集,这个数字对类似虚拟机之类的后台内存占用程序是无效的。
最简单 ...

process explorer里面看得到?
Woking Set Size的话,还没Private Bytes大啊,Virtural Size什么的也不大
回复

使用道具 举报

发表于 2016-7-4 19:27 | 显示全部楼层
本帖最后由 tippisum 于 2016-7-4 19:29 编辑

内存占用的统计口径有很多(算不算上内存映射,算不算上虚拟内存,etc)。
有些程序会开超大的内存映射,比如说虚拟机。这种很容易被某些统计方式排除在外,比如“专用工作集”(也就是默认的任务管理器里显示的内存占用)就是不包括这个的。
我不太确定Process Explorer里看到的到底是啥……但可以肯定的是,如果所有进程的内存占用都不大(比如加起来都不超过1G),那这个统计肯定统计的不是对你有用的那个。

你用任务管理器,查看 -> 选择列,把跟内存有关的所有统计列都打开,里面肯定有一个或者几个是能加出12G内存占用的(或者至少5G以上,根据你的描述)。
我手头没有2003,不过如果它和2008没有太大区别的话,这个列应该叫“工作集”(不是“专用工作集”)。

回复

使用道具 举报

     
 楼主| 发表于 2016-7-4 19:46 | 显示全部楼层
tippisum 发表于 2016-7-4 19:27
内存占用的统计口径有很多(算不算上内存映射,算不算上虚拟内存,etc)。
有些程序会开超大的内存映射,比 ...

全开了,单纯的工作集和内存差不多大小,峰值工作集也没有1个大于1G的,唯一一个有大于1G的是提交大小
算了,这东西算是别看了吧

就还是回到原来的问题,开虚拟机的主机内存,到底应该怎么管理
为啥会5个1G用完12G
回复

使用道具 举报

发表于 2016-7-4 19:55 | 显示全部楼层
本帖最后由 tippisum 于 2016-7-4 19:58 编辑

没有统计数字的话没办法回答这个问题啊。
既不能确定虚拟机里分配1G是否等于主机占用1G,也不确定有没有其他程序在大量使用内存。
你需要至少找到一个内存占用统计,它满足所有进程的数字加起来接近12G或者至少在5G以上。然后你可以看看每个进程分别占用了多少。

如果任务管理器里面所有的内存占用统计没有一个能加出12G,那就只能解释为有未知的程序或者设备占用了剩下的内存空间。
既然找/定位不到这个未知的程序/设备,那能采用的办法只有一个就是加更多的内存,或者你需要查杀一下病毒。
回复

使用道具 举报

发表于 2016-7-4 23:22 | 显示全部楼层
董卓 发表于 2016-7-4 19:46
全开了,单纯的工作集和内存差不多大小,峰值工作集也没有1个大于1G的,唯一一个有大于1G的是提交大小
算 ...


5个1G只是给虚拟机的,vbox自己也要用内存,建议用vmmap看
另外512mb的页面文件也可能导致大量占用物理内存
回复

使用道具 举报

     
发表于 2016-7-5 16:28 来自手机 | 显示全部楼层
把虚拟内存开到16g
回复

使用道具 举报

     
发表于 2016-7-5 21:32 | 显示全部楼层
性能那页有个“提交(MB)”(commit charge)显示的是所有程序占用的虚拟内存,核心内存下面有个分页和未分页,是内核和驱动占用的内存,如果这三个值加起来接近物理内存+页面文件大小,就会提示内存不足。其他地方看到的很多内存加起来经常和这个“提交”对不上。
回复

使用道具 举报

     
发表于 2016-7-6 04:16 | 显示全部楼层
要不用最笨的办法,先开一个,再开一个,慢慢的看到底是什么情况?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-21 22:03 , Processed in 0.077531 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表