虚拟机ping不通主机的内存和主机内存是什么关系

Steven's Blog
字号:大 中 小
公司一台64G内存的HP Z800,在上面搭建了12台Win7的虚拟机作为软件服务器使用(每台分配2G内存以保证系统流畅运行),另外还搭建了几台WinXP、Win2008、Linux作为测试使用。作为软件的服务器的12台虚拟机一周7天24小时开机提供用户远程登录来使用里面的软件,其他几台虚拟机需要用时打开进行软件测试。
最近在使用中发现12台软件服务器的虚拟机刚打开是系统内存占用在30G左右,但是使用一段时间之后忽然内存占用到50多G,甚至有几次几乎将所有主机的内存64G全部占用。当内存全部被占用后,不但虚拟机连接运行很慢,而且主机运行也非常卡。
但是当登录进每一台虚拟机查看任务管理器中的内存使用情况时,似乎每台虚拟机又都很正常,内存使用从500多M到1点几个G不等。把每台虚拟机重启一遍,内存占用仍然很高。只有每台虚拟机关机再打开或者恢复到刚打开的镜像之后才会释放多占用的内存。偶尔发现关闭某一台虚拟机之后内存占用会一下子释放出很多,但是一直没有找到规律,所以也不确定是哪一台或哪几台虚拟机占用内存太高。
因为遇到几次内存占用忽然升高的情况,所以之前都是主机一边开着虚拟机,一边开着任务管理器监控内存使用情况,一旦发现内存占用过高就把所有虚拟机关机重启或恢复一遍。但是十几台虚拟机这么操作一遍下来也挺耗时间的,而且时不时就要这么操作一遍。
今天在主机任务栏右键点击“启动任务管理器(K)”查看主机的“任务管理器”时,偶然看到“性能”页面有一个“资源监视器”,虽然之前也打开过,但是都没有仔细看。
今天仔细研究了一下这个“资源监视器”,忽然发现里面有对CPU、内存、硬盘、网络的详细监控。打开概述页面,可以看到各个进程的CPU、硬盘、网络和内存占用情况。最令我欣喜的一点是在硬盘页面可以看到每一个进程对应的是硬盘上的哪一台虚拟机,而内存页面可以看到各个进程内存占用情况。
上面的图上可以看到,2700进程占用的10.8G的内存,其他的虚拟机基本上都只占用2G左右的内存,所以应该是这个进程出了问题,再对应到硬盘页面2700进程发现是xxxx Server 1虚拟机。确认该虚拟机没有用户在用,将这一台虚拟机关机,然后再重新启动,主机的内存占用一下子从41.2G降到了30.9G。
到此,基本上已经找到了是哪一台虚拟机占用了太多的内存,可以方便地关闭再重启该虚拟机释放占用的内存。但是对于为什么该虚拟机刚打开时内存占用正常,使用一段时间之后就突然占用很多内存还不是很清楚。如果能够把这个问题搞清楚了就可以彻底解决虚拟机内存占用过多的问题。
一点线索----该虚拟机重启时硬错误数值一直在变化,不知道这个会不会有关系。
function open_phone(e) {
var context = document.title.replace(/%/g, '%');
var url = document.location.
open("/ishare.do?m=t&u=" + encodeURIComponent(url) + "&t=" + encodeURIComponent(context) + "&sid=70cd6ed4a0");
!觉得精彩就顶一下,顶的多了,文章将出现在更重要的位置上。
大 名:&&[]&&[注册成为和讯用户]
(不填写则显示为匿名者)
(您的网址,可以不填)
请根据下图中的字符输入验证码:
(您的评论将有可能审核后才能发表)
已成功添加“”到
请不要超过6个字查看: 5023|回复: 16
客户机内存,主机内存的问题
发表于 12-11-:09
如图所示,客户机内存%比都很低,但是为什么个别占用主机内存特别的高?
esx.png (14.61 KB, 下载次数: 0)
12-11- 上传
仔细检查了一下,客户机使用的内存与其占用的主机内存基本相符。
windows.png (26.36 KB, 下载次数: 0)
windows对应关系
12-11- 上传
可问题随之而来,
一、客户机的内存开销和客户机内存使用情况又意味着什么呢?
windows2.png (15.97 KB, 下载次数: 0)
12-11- 上传
二、按照Linux分配内存的机制,怎样才能避免ESX内存资源不足的局面
linux.png (19.45 KB, 下载次数: 0)
12-11- 上传
[ 本帖最后由 eddyc 于 12-12- 编辑 ]
发表于 12-11-:24
问题困扰我很久了,明明虚拟机的OS上内存只用了200M,但是它却占用主机1500M的内存,以至于一台8G内存的ESX主机才架设5、6台虚拟机都会出现内存偏低的报错。
发表于 12-11-:21
以你所举例, ESX分配给该VM 1556M内存, 客户机内存百分比为16%. 即在该VM分配到的内存中, 16%是正在被使用中的. 1556 X 16% 约为 200M 多. 与你在GUEST中看到的相近. ESX在运行每个VM时还有一些额外的开销.
ESX在VM需要内存时为VM分配内存, VM不需要内存时, ESX并不一定立即回收, 一般是在其他VM需要内存, 而ESX有无多余可分配时, 才进行回收处理.
[ 本帖最后由 eddyc 于 12-11- 编辑 ]
发表于 12-11-:47
原帖由 eddyc 于 12-11- 发表
以你所举例, ESX分配给该VM 1556M内存, 客户机内存百分比为16%. 即在该VM分配到的内存中, 16%是正在被使用中的. 1556 X 16% 约为 200M 多. 与你在GUEST中看到的相近. ESX在运行每个VM时还有一些额外的开销.
应该不是正在使用的Host Memory×16%,应该是VM的物理内存值×GUEST Memory%,才是Guest Memory。
发表于 12-11-:24
还真不能确定是哪一个的百分比. iosnow有没有相关的资料?
这是我以前看到的一个解释. 不过我上面的描述(对那个解释)也不太对, 重来:
主机内存 - MB: ESX运行该VM的内存开销, 包扩分配给VM的内存和HOST自己的额外内存开销overhead.
客户机内存 - %: 分配给VM的内存中active的部份的百分比.
在VM启动时, ESX是先按照VM配置的内存大小来分配(如果有足够内存可供分配的话). 然后在需要的时候回收.
在客户机GUEST OS中看到内存应该是 (&主机内存-MB& - 额外开销) x &客户机内存-%&
每个VM的额外开销大约在几十到一百来MB.
发表于 12-11-:12
有没有和我相似经历的朋友,交流一下解决的经验吧
发表于 12-11-:53
发表于 12-12-:51
原帖由 eddyc 于 12-11-发表
还真不能确定是哪一个的百分比. iosnow有没有相关的资料?
这是我以前看到的一个解释. 不过我上面的描述(对那个解释)也不太对, 重来:
主机内存 - MB: ESX运行该VM的内存开销, 包扩分配给VM的内存和HOST自己的额外内存开销overhead.
客户机内存 - %: 分配给VM的内存中active的部份的百分比.
在VM启动时, ESX是先按照VM配置的内存大小来分配(如果有足够内存可供分配的话). 然后在需要的时候回收.
在客户机GUEST OS中看到内存应该是 (&主机内存-MB& - 额外开销) x &客户机内存-%&
每个VM的额外开销大约在几十到一百来MB.
eddyc,你说的开销应该和这个表有关吧
1.jpg (49.38 KB, 下载次数: 2)
12-12- 上传
[ 本帖最后由 leesun 于 12-12- 编辑 ]
发表于 12-12-:42
关于虚拟机的内存使用,是不是应该这样说
主机内存 - MB: ESX运行该VM的内存开销, 包扩分配给VM的内存和HOST自己的额外内存开销overhead.
客户机内存 - %: 分配给VM的内存中active的部份的百分比.
要看虚拟机占用了ESX多少内存,应该看“主机内存”
如果想知道虚拟机到底使用了多少ESX分配给VM的内存就是&客户机内存&
关于有些人问,为什么GUEST OS 资源管理器里看到的内存比在VI Client里看到的&GUEST MEMORY USAGE&高,
我个人觉得这个可能和VMWARE的“Transparent Memory Page Sharing”技术有关。
在GUEST OS 看到使用内存高,但是很大一部分内存都通过Transparent Memory Page Sharing技术和其它VM所使用的MEMORY写在同一物理地址上,所以在GUEST MEMORY USAGE显示比GUEST OS 资源管理器里看到的少
不知道我这样理解有没有错
[ 本帖最后由 leesun 于 12-12- 编辑 ]
发表于 12-12-:11
现在最关心问题的解决了。大家是怎么解决linux虚拟机内存占用主机内存过高的问题的。
发表于 12-12-:00
LEESUN这个看起来是最合逻辑的解释
我五楼 ' 在客户机GUEST OS中看到内存应该是 (&主机内存-MB& - 额外开销) x &客户机内存-%& ' 是不对的.
试总结一下:
1. 看虚拟机占用了ESX多少内存,应该看“主机内存”
2. 看客户机分配到多少内存: &主机内存& - &内存开销& (guest os 中的 task manager 或 perfmon 中的 &committed bytes看到的应该是这个)
3. 如果想知道虚拟机到底使用了多少ESX分配给VM的内存就是&客户机内存 - %& (guest os 中 perfmon 的 committed byte active %应该看到这个参数)
4. VIC 中VM的&客户机内存使用情况& = &客户机分配到的内存& - &transparent memory page sharing&部分 (?, 还是: &客户机分配到的内存& X &客户机内存 - %& ?)&&
大家继续改正补充.
另外,&&针对楼主的情况, 能否改善?
发表于 12-12-:58
从ESX角度想到的:
1. 其实生产系统中过量分配内存情况还是不多. 毕竟现在内存价格不是很高. 充足内存可以减少内存调度的复杂性和造成的效率损失.
2. 如果需要过量分配的话, 我觉得比较好方法是为VM内存分配设置优先级. 这样在主机内存不敷使用时系统可以根据优先级为VM调配内存.&&
3. 如果VM的客户机内存%值持续偏低, 表明该VM占有内存但利用率低, 考虑为VM减少内存定义. 缺点是限制VM高峰时可用的内存.
4. 如果是多ESX, 将相同OS, 应用的VM放置在同一台ESX上, 可以增加内存共享效率.
5. 安装VMWARE-TOOLS. 它的&气球方法&优化VM的内存调度.
发表于 12-12-:09
几个内存管理相关的连接:
发表于 12-12-:27
针对楼主的情况,我建议楼主将LINUX的虚拟机内存分配少于896MB。
因为LINUX的物理内存超过896MB的时候,Linux 会使用不同的技术来映射内核中的内存。
这些技术可能会增加虚拟机的额外开销,例如VMM、CPU、MEMORY、I/O等。
这样会导致LINUX虚拟机的性能下降
发表于 12-15-:52
谢谢各位。
发表于 12-17-:51
一个VM HOST 至少也要占用79M内存& & 虚拟机本身也是占内存的
[ 本帖最后由 lishaohui 于 12-17- 编辑 ]
发表于 12-17-:39
原帖由 eddyc 于 12-12- 发表
从ESX角度想到的:
1. 其实生产系统中过量分配内存情况还是不多. 毕竟现在内存价格不是很高. 充足内存可以减少内存调度的复杂性和造成的效率损失.
2. 如果需要过量分配的话, 我觉得比较好方法是为VM内存分配设 ...
内存价格不高那是普通的内存,服务器的内存还是很贵的,尤其是4G以上的条子,简直就和抢钱一样,所以内存少确实是很令人伤脑筋的事情,过量分配内存对于实际生产环境基本上没有什么用处查看: 5342|回复: 12
256内存的虚拟机启动后能吃多少主机内存?
只给虚拟机分配了256的内存,开机cpu瞬间飚100%,放的音乐都被卡停;开机后主机内存被吃掉400左右,,,各位大神这个是正常的吗?
vmware?9.x版?
如果是的话就正常,cpu没注意过,开机的时候很卡就是了
占用内存=虚拟机分配内存+虚拟机程序占用内存,400M差不多吧
感谢支持,欢迎常来: )
zby_1991 发表于
vmware?9.x版?
如果是的话就正常,cpu没注意过,开机的时候很卡就是了
占用内存=虚拟机分配内存+虚拟机 ...
是9.x的版本,对vm无语了
virusdefender
虚拟机是一个平台自己也会占用一些内存的,这些占用已经不错了~~使用虚拟机的时候电脑经常提示内存不足
virusdefender 发表于
虚拟机是一个平台自己也会占用一些内存的,这些占用已经不错了~~使用虚拟机的时候电脑经常提示内存不足
我好容易才把虚拟机的内存控制到了256刚好的程度了,,vm自己都要吃到150 晕死了
是正常情况滴!我的电脑也是,1G实机内存,256M虚拟机内存,打开VMWARE(9.0)后,内存飙升到95%,很卡很卡。以我的亲身经历,告诉你:这没什么事,是正常的哦!
另外也奉劝各位童鞋:内存低的就不要玩虚拟机了!(因为很卡,所以我也删除了这个虚拟机)
感谢支持,欢迎常来: )
恩,曾今2G内存分512直接卡死。现在10G内存分2G都没问题。
VM9就是强迫你去升级硬件啊
tian20013 发表于
是正常情况滴!我的电脑也是,1G实机内存,256M虚拟机内存,打开VMWARE(9.0)后,内存飙升到95%,很卡很卡 ...
昨天连续开了六个挂机的,qq都有明显卡顿了
wyj 发表于
恩,曾今2G内存分512直接卡死。现在10G内存分2G都没问题。
VM9就是强迫你去升级硬件啊
9的那个 清理磁盘功能很不错啊,我就是冲着这个才用9.x的,以前都是6.0
设置虚拟内存可能好点
Copyright & KaFan & All Rights Reserved.
Powered by Discuz! X3.1( 苏ICP备号 ) GMT+8,}

我要回帖

更多关于 内存gb和mb是什么关系 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信