目前对于PVS来说,Cache的选择种类较多,但是常用的无非下面四种:
- Cache on server
- Cache on device hard drive
- Cache in device RAM
- Cache in device RAM with overflow on hard disk
而对于缓存到PVS服务器或者直接缓存到硬盘上,我们可以直接通过查看缓存文件的大小来确定实际的缓存使用情况。但是对于使用RAM进行缓存的两种情况,我们无法直观的查看实际的内存分配以及使用情况。
通过文档(https://docs.citrix.com/en-us/categories/solution_content/implementation_guides/digging-into-pvs-with-poolmon-and-wpa.html)我们发现缓存相关驱动分配的内存对应的tag为VhdR,因为我们也就可以使用poolmon工具来进行查看。
其中PoolMon工具使用以及说明可以参考微软网站:https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/poolmon
通过命令行方式查看:其中红色高亮的部分即为实际的内存缓存使用数据,单位为Bytes.
1 | poolmon.exe /iVhdR |
1 2 3 4 5 6 7 8 9 10 11 | $poolmonPath = “.\poolmon.exe” $poolLog = “$env:TEMP\poolmon.txt” if(Test-Path $poolLog) { Remove-Item $poolLog } Start-Process -FilePath $poolmonPath -ArgumentList “-n $poolLog” -Wait $cacheBytes = ((Get-Content $poolLog | ? {$_ -like “*VhdR*”}) -split “\s+”)[6] Write-Host “RAM CacheSize = $([math]::Round(($cacheBytes /1gb),2))GB, $([math]::Round($cacheBytes /1mb))MB” if(Test-Path $poolLog) { Remove-Item $poolLog } |
输出结果如下:输出会把字节转换成GB以及MB两种更具可读性的单位进行显示
[alert type=”notice”]由于PoolMon是随Windows Driver Kits发布,所以需要下载庞大的WDK安装包并安装,以下是从最新的WDK10.0中提取,仅供参考[/alert]
PoolMon (31.5 KiB, 341 次)