客户有一个业务虚拟机(windows server 2016)对资源配置要求较高,CPU:48核(物理服务器64核),内存:128G(物理服务器512G),客户计划将一台物理服务器只用来跑此业务虚拟机,已把其它虚拟机迁移到其他主机。最初判断,根据物理服物器资源可以满足虚拟机需求配置,开机后,系统自检完成,输入系统密码后,进入系统很卡很慢,无法做任何操作,同时观察虚拟机信息,此时内存利用率达到98-100%,系统正常操作需要半小时以后。客户反馈此问题后,经过分析,确认与虚拟机未开启大页内存有关,编辑虚拟机,内存勾选”使用大页内存“,再次开机,进入系统与系统下恢复正常。后把此经过与400工程师联系,给出具体的专业回复,并转达给客户,客户理解后也表示认可。
具体排查原因解释: 1、windows系统开机后会跑一遍所有内存,此时系统的CPU将被此进程占用。进程名称System 描述为:NT Kernel & System。不开启大页内存,会分配不到连续的内存,导致摸内存的时间拉长。 2、勾选大页内存后,启动详情还是分配不到连续内存的原因。直接原因是没有连续的内存,根本原因是该物理机主机上之前运行过其他内存较小的的虚拟机,内存配置小的虚拟机申请内存时,内存地址不是固定的。比如内存地址是1-50个,如果上面每次启动一个10G的虚拟机,那么它申请的内存地址有可能是2-12 20-30 35-45,那么中间空余的就是不连续的内存,这时如果开启一个大指定大页内存的的虚拟机30G,那么就会找不到连续的内存块。 |