先进的概念

PVS RAM缓存溢出分析

本文提供了有关在使用该特性时准确确定RAM缓存大小的信息内存缓存溢出到磁盘

RAM缓存具有溢出到磁盘的PVS功能,首先将VDisk写入Windows Nonpaged Pool RAM。一旦用户指定的RAM高速缓存大小达到指定的大小,PVS将RAM缓存内容刷新到磁盘以为新数据创建房间。RAM高速缓存大小根据工作负载模式和其他变体波动。poolmon是一种通过查找池标记来拍摄当前RAM缓存使用量大小的快照的工具VhdR

有关这个PVS特性的更多信息,请参阅有关的博客使用RAM缓存溢出

重要的

本文中描述的工具适用于具有配置服务高级知识的管理员。这些信息可用于帮助调试与性能相关的问题,这些问题超出了使用常用工具和流程(包括流程监视器(ProcMon))的范围。有了这些信息,您将更好地理解PVS驱动程序是如何工作的。

内存池监控

poolmon(poolmon.exe)是指内存池监视器。它用于显示由操作系统收集的数据分页和未处理的内核池中的内存分配以及用于终端服务会话的内存池。此数据由池分配标记分组。

使用非分页池内存,可以使用PoolMon验证存在的工具Pooltag.表示VhdR.VhdR用于RAM缓存分配;这个标签,还有pooltag硬件描述语言(VhdL),在创建脚本以帮助分析与非分页池内存中的RAM缓存相关的数据时非常有用。

提示

开发人员和测试人员通常使用POLOMON来检测创建驱动程序时的内存泄漏,驱动程序代码被更改,或者压力测试驱动程序。博弈也可以在测试过程的每个阶段中使用,以验证驾驶员的内存分配和免费操作模式,包括用于确定驱动程序在任何给定时间使用的池内存量如何。有关使用内存池监视器的更多信息,请参阅微软文档

使用Windows性能分析器

Windows性能分析器(WPA)是一种工具,它允许您创建与Windows性能记录器(WPR)记录的事件相关的图形和数据表(具体来说,Windows的事件跟踪)。在调试与PVS驱动程序、存储堆栈相关的问题以及写入VHDX磁盘时发生的与性能相关的问题时,使用WPA帮助识别性能瓶颈。使用这些工具,您可以运行评估并打开任何事件跟踪日志文件进行分析。有关的更多信息,请参考Microsoft开发人员网络站点Windows性能分析仪

请注意

WPA和WPR包含在Windows评估和部署套件(Windows ADK)中;有关此部署套件的更多信息,请参阅微软网站.访问Microsoft网站的最新版本Windows性能分析仪

Windows性能分析器如何与供应服务一起工作

PVS生成的事件被Windows事件跟踪(ETW)机制捕获。此功能提供了一种跟踪和记录用户模式应用程序和内核模式驱动程序引发的事件的方法。ETW是在Windows操作系统中实现的,为开发人员提供了一种简单的方法来使用一组事件跟踪特性。有关更多信息,请参阅微软开发者网络

安装Windows性能分析器

需要在主映像上安装WPA。

WPA是其中的一部分最新的SDK适用于Windows 10操作系统。您可以选择安装性能工具包,其中包括WPA和WPR:

选择用于安装的Windows Performance Toolkit特性的映像

安装WPA和WPR之后,使用WPR来模拟PVS磁盘和文件I/O活动。一旦创建了这个流量,使用WPA分析数据。执行以下操作:

  1. 在目标设备上启动WPR并单击添加配置文件

  2. 在“添加配置文件”屏幕中,浏览到特定于PVS的模板或配置文件。这允许您收到PVS事件提供程序生成的事件。导入配置文件后,返回WPR屏幕并选择要分析的任何其他选项,然后单击开始按钮:

    Windows性能记录器的图像

    在添加选项并单击Start之后,您可以模拟PVS活动。在这个示例中,创建了一个新的写缓存,它带有一个小内存缓冲区(128 MB)。一个更大的文件(279 MB)被复制到c:\ users \ user \ document \test.bin,以强制PVS驱动程序将一些数据写入非分页池,以验证发生故障转移时发生的情况,此时开始写入本地磁盘(例如,D:\vdiskdif.vhdx)。复制文件并迫使缓冲区超过容量后,可以在WPR中停止捕获过程并使用WPA打开结果。

  3. 使用WPA,打开图形浏览器, 扩张系统活动并选择通用的事件.以下面的屏幕为例,查看WriteData和WriteRamData部分中的内容。该信息显示正在写入C:\vDisk(2419个文件)的文件的确切数量,包括D:驱动器上的VHDX文件(348个文件):

    Windows性能分析器结果示例

    提示

    WriteData小于显示的值,因为它缓存在RAM中,没有刷新到磁盘。

  4. 返回到图形浏览器屏幕上,扩大文件输入输出数的类型.下面的图像说明了IO(文件数)的减少,以及从写入C:\Users\User\Documents\test.bin到位于D:\vdiskdif.vhdx的溢出写缓存文件之间所花费的时间。使用这些数据,您可以查看潜在的性能瓶颈,并有效地排除PVS过滤驱动程序的问题:

    Windows性能分析器结果的例子显示文件IO和计数的类型

  5. 在查看文件计数和写之间(日志文件和溢出写缓存之间)的时间持续时间之后,您可以在调试过程中进一步了解使用磁盘偏移量最初写入数据的位置(以及最终写入数据的位置)。在Windows性能分析器中,打开图形浏览器扩张系统活动并选择通用的事件.修改列视图,使WPA工具能够显示不同存储层中的数据转换。为了进一步调试,返回到PVS环境并将RAM缓存缓冲区设置为0 MB,然后重新运行记录器(WPR)和分析器(WPA)工具。下图说明了溢出到磁盘的情况:

显示系统活动和通用事件的Windows性能分析器示例

PVS RAM缓存溢出分析