Non-Persistent Citrix PVS Target Devices have more complicated boot processes then a standard VM. This is because the Citrix PVS server components play a big role in acting as the boot disk. They send UDP packets over the network to the target device. This adds a delay that you simply cannot avoid (albeit, possibly a small one but there is no denying network communication should be slower than a local hard disk/SSD).
One of the things we can do is set the PVS target devices up in such a way that we can get real, measurable data on what the target device is doing while it’s booting. This will give us visibility into what we may actually require for our target devices.
There are two programs that I use to measure boot performance. Windows Performance Toolkit and Process Monitor. I would not recommend running both at the same time because the logging does add some overhead (especially procmon in my humble experience).
The next bit of this post will detail how to offline inject the necessary software and tools into your target device image to begin capturing boot performance data.
For Process Monitor you must extract the boot driver and inject the process monitor executable itself into the image.
To extract the boot driver simple launch process monitor, under the Options menu, select ‘Enable Boot Logging’
Then browse to your C:\Windows\System32\Drivers folder, and with “Show Hidden Files” enabled, copy out Procmon23.sys
It might be a good idea to disable boot logging if you did it on your personal system now 🙂
Now we need to inject the follow registry entry into our image:
Windows Registry Editor Version 5.00
"Group"="FSFilter Activity Monitor"
"DefaultInstance"="Process Monitor 23 Instance"
[HKEY_LOCAL_MACHINE\PE_SYSTEM\ControlSet001\services\PROCMON23\Instances\Process Monitor 23 Instance]
Here are the steps in action:
Seal/promote the image.
On next boot you will have captured boot information: