问题
最近发现经常使用的一台安装有server2008r2的虚拟机内存占用很高,且确认系统几乎没运行什么服务。(虚拟机是安装在基于hyper-v的宿主机上。)
分析
一直以为是server2008r2的系统问题,或者是安装程序造成的内存泄露。
1.尝试停掉所有非微软服务的自启动,重启虚拟机发现刚开始占用800M,不到一分钟后,又被占用到快8个G。
2.也曾试过DynCache,修改注册表,但是还是未解决问题。
3.后来用RAMMap查看具体哪里占用的大量内存,发现大部分内存被Driver Locked。
解决方案
google搜索下Driver Locked关键词,摘录出几篇文章。
http://blog.luxem.org/2013/05/driver-locked-memory-on-hyper-v-guests.html
大体总结:是由于hyper-v启用了“动态虚拟内存"造成的。内存被hyper-v动态调整,闲置了会被抽走,不够了又会被还回来,属于正常现象。
如果感觉不爽,可以自行关闭。(打开关闭hyper-v动态虚拟内存参考https://blog.51cto.com/wuyvzhang/1722264)。