性能资源

Windows 可用内存和申请购买的内存不一致的处理

用户购买了一定量的内存套餐(以2G为例),通过任务管理器发现可用的内存却达不到购买的内存数量,通过系统属性可以看到如下显示

问题分析

这种情况是可用内存被限制了,Windows系统本身有最大的支持内存,同时Windows支持内存的限制使用,以帮助系统或者内核调试的场景- 即有足够的调试内存,同时可以在不改变硬件的情况下,修改内存的使用大小。百度智能云的虚拟机不会对内存的使用进行限制,一般情况下是客户对这部分内容主动进行过修改

Windows 系统本身能支持的最大内存

https://msdn.microsoft.com/zh-cn/library/windows/desktop/aa366778(v=vs.85).aspx

解决方法

只要将内存的限制去掉即可,步骤如下

1.【开始】->【运行】 , 输入"msconfig"打开微软系统配置

2.在"引导"页面,选择当前系统, 点击“高级选项”, 去掉“最大内存”的勾选项

3.重启计算机,可以看到可用内存不再被限制

Windows 虚拟内存的设置

由于内存本身的价格要远超硬盘的价格, Windows 提供 了一种增加内存的方式,Windows 可以将硬盘上的的一块区域(以分页文件的方式)当作RAM来使用。这部分RAM的大小就是Windows虚拟内存的大小。

由于开启虚拟内存会导致IO性能的下降,用户可以自由选择是否打开虚拟内存。

可以通过以下方式来设置改变这个虚拟内存默认的大小值

1.打开"控制面板",点击"系统",在左侧窗口,点击"高级系统设置"

2.在"高级系统设置"窗口的"高级"页面下,点击"性能"设置,进入"高级"页面,双击"更改"修改虚拟内存

3.修改分页文件的大小,并且点击"设置"来确认修改文件的大小,再点击"确定"按钮,重启计算机

根据微软的推荐策略

  • 分页内存最好是比物理内存大一些,但是不超过两倍内存
  • 尽量将页面交换文件设置在非系统磁盘,IO性能会好一些
  • 根据系统宕机时候Dump时候的需求。
  • 目前百度智能云生成小转储dump,无需考虑这点,详情可见 Windows 内核转储设置

注意:

增加虚拟内存会导致磁盘IO性能下降,建议尽量通过升级物理内存来解决。百度智能云上有一些存量计算机会根据
系统内存自动设置虚拟内存,在申请较大的物理内存时,建议关闭虚拟内存的使用。

关闭虚拟内存的方法是在虚拟内存设置页选择"无分页文件"

Windows 虚机创建后,系统盘剩余空间过小的处理

问题现象

百度智能云用户创建了一个Windows 虚拟机, 开启启动之后,发现系统盘剩余的空间很小, 如下所示

问题分析

上图用户创建的是一个8核16G的虚拟机, 通过打开提供文件管理器, 发现占用磁盘的一个隐藏文件pagefile.sys达到16G, pagefile.sys文件是虚拟内存的分页文件。所以,这个问题的原因是系统创建了和真实内存一样大小的虚拟内存占用了系统盘空间。

解决方法

因为是虚拟内存文件占用了系统盘的空间,所以用户可以将虚拟内存关闭或者调低,或者将虚拟内存文件存放到系统盘中, 设置方法参照 Windows 虚拟内存的设置

Windows 虚机创建后,进程svchost 使用CPU100%的处理

问题现象

创建了1核1G配置的Windows Server 2008 R2的虚拟机,登陆虚拟机之后发现CPU使用率达到100%, 打开任务管理器发现占用CPU的是svchost.exe应用程序。

问题分析

Svchost 是从DLL中运行服务的一类进程的统称, 所以svchost的问题是要知道使用他的是具体哪个进程或者服务。打开任务管理器,右键点击进程中的svchost, 然后转到服务,可以看到好几个服务都在使用svchost, 其中Windows Update 占用了大部分CPU,查看Windows更新, 发现正在更新系统,Windows Update 在网络不稳定或者更新内容过多的情况下, 会分别导致CPU和内存过高的时间较长

解决方法

百度智能云推荐您使用较高CPU和内存套餐,以便获得更好的使用体验,不推荐使用1核1G的配置。在1核1G的配置下,用户可以先暂时关闭自动更新服务,由用户自己选择更新时间,利用空闲时间段去更新系统。同时百度智能云制作的最新镜像均已安装最新的系统更新,将更新量减少到最小,缓解这种情况的发生。