• Home
    • Blogs
    • BIS-F
      • Download BIS-F
      • Online BIS-F Slack Channel
      • Join BIS-F Slack Channel
      • BIS-F Known Bugs, Issues and Feature Request
      • Submit Bugs, Issues and Feature Request
      • Donation BIS-F
    • Documentation
      • Base Image Script Framework (BIS-F) Release Notes
      • Base Image Script Framework (BIS-F) 6.1
    • Knowledge Base
    • FAQ
      • Base Image Script Framework (BIS-F)
  • Contact
  • About
  • Speaker
  • Cookie Policy
  • Home
    • Blogs
    • BIS-F
      • Download BIS-F
      • Online BIS-F Slack Channel
      • Join BIS-F Slack Channel
      • BIS-F Known Bugs, Issues and Feature Request
      • Submit Bugs, Issues and Feature Request
      • Donation BIS-F
    • Documentation
      • Base Image Script Framework (BIS-F) Release Notes
      • Base Image Script Framework (BIS-F) 6.1
    • Knowledge Base
    • FAQ
      • Base Image Script Framework (BIS-F)
  • Contact
  • About
  • Speaker
  • Cookie Policy
home/Knowledge Base/Base Image Script Framework (BIS-F)/Optimization/[HOW TO] Hydrate Files on Citrix Provisioning Server for faster Application Start

[HOW TO] Hydrate Files on Citrix Provisioning Server for faster Application Start

5616 views 10 December 30, 2019 June 12, 2020 Matthias Schlimm

  • Introduction
  • Why to Hydrate
    • How does the Hydration work ?
    • Default Setting
  • Measurement
    • Starting BIS-F personalization – 7:59:49 AM
    • Starting PVS Hydration – 8:01:14 AM
    • Starting Citrix Desktop Service – 8:06:53 AM
  • Comparison
  • Conclusion
  • Community Feedback

Introduction

With Citrix Provisioning Server the first Application Start in a user session has mostly some delays, until the application is cached. This time can be reduced with a new Enhancement in BIS-F 7.1912 an higher calling “Hydration”. This Feature can be enabled in the BIS-F GPO > Citrix > Hydrate files on PVS Servers. In this KB Article you can see the difference with/without Hydration and the Impact for the Environment.

Why to Hydrate

Citrix PVS servers will operate faster after some period of time due to the file system caching files into RAM. However, if you access a file that PVS has not cached previously then there may be a substantial delay in getting those bits into the file system cache. This is due to PVS traversing the network back to the source file to pull those bytes. If the storage those bytes reside on is under some stress or delayed for some reason then it will take even longer to access the file making PVS appear slow.

How does the Hydration work ?

All files that configured in the GPO above will be run through a [System.IO.File]::ReadAllBytes command, this opens the binary file, reads the contents of the file into a byte array, and then closes the file.

File.ReadAllBytes(String) Method

Default Setting

With the GPO default Settings for the Citrix PVS Hydration I consume 30,6 GB for the 2 folders with all files, but note the hydration get *.exe and *.dll  files only in the default configuration.

 

Measurement

Depending on the files to be cached this needs a litte bit of time. In the follwoing example we ne up to 5 minutes (08:01:14 – 08:06:39) for the hydration and for the start of the citrix desktop service to register the VM on the Broker takes up tp 7 minutes for the complete process (07:59:49 – 08:06:53)

Starting BIS-F personalization – 7:59:49 AM

12/28/2019 7:59:49 AM | PVS-Master-Win10-1809 | INFORMATION... | Processing function Initialize-BISFConfiguration

Starting PVS Hydration – 8:01:14 AM

12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | =========================== 10_PersBISF_HydratePVS.ps1 ===========================
12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | Processing function Test-BISFPVSSoftware
12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | Processing function Test-BISFService
12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | Service BNDevice exists
12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | Product Citrix Provisioning Services Target Device Driver (PVS) (Version 7.15.15.11) installed
12/28/2019 8:01:14 AM | PVS-Master-Win10-1809 | INFORMATION... | Caching files with extensions *.exe,*.dll in C:\Program Files
12/28/2019 8:01:52 AM | PVS-Master-Win10-1809 | INFORMATION... | Caching files with extensions *.exe,*.dll in C:\Program Files (x86)
12/28/2019 8:06:39 AM | PVS-Master-Win10-1809 | INFORMATION... | =========================== FINISH SCRIPT ===========================

Starting Citrix Desktop Service – 8:06:53 AM

12/28/2019 8:06:53 AM | PVS-Master-Win10-1809 | INFORMATION... | The Service Citrix Desktop Service is successfully in Running state

Comparison

The Hydration using the non-paged pool memory, a comparison bettwen both worlds see below.
The vDisk RAM Cache is set to 8192 MB

Hydration enabled Hydration disabled

In the following chart I’ve compared both environments with the data from the table above.

Conclusion

For a better user experience it’s possible to use the PVS Hydration, but meassure it in your environment to see if the PVS RAM Cache is large enough. If you booting up multiple VM’s at the same time please also take a look to the Bootstorm, much more data is transfered during startup between the PVS Server and the VM.

In Addition it make sense to use PVS Hydration in combination with the Citrix Desktop Service Delay, the VM is registered on the Broker first if the Hydration is finished.

Citrix Reference Article Analyzing PVS RAM Cache with Overflow

 

Community Feedback

Tags:BIS-FPersonalization7.1912Optimization

Was this helpful?

10 Yes  No
Related Articles
  • [HOW TO] Offline Defragmentation
  • [HOW TO] WinSxS Optimization
  • [HOW TO] Creating Shared Configuration
  • [HOW TO] Citrix AppLayering in a dynamic Environment
  • [HOW TO] Using Citrix Optimizer with TemplatePrefix
  • [HOW TO] Using Citrix Optimizer with Multiple Templates
Optimization
  • [HOW TO] Hydrate Files on Citrix Provisioning Server for faster Application Start
  • [HOW TO] Offline Defragmentation
Popular Articles
  • [HOW TO] Hydrate Files on Citrix Provisioning Server for faster Application Start
  • Personalization is in Active State
  • [HOW TO] Using Citrix Optimizer with Multiple Templates
  • [HOW TO] Using Citrix Optimizer with TemplatePrefix
  • [HOW TO] WinSxS Optimization
KB Categories
  • Base Image Script Framework (BIS-F
    • PrivateFix
    • Citrix Optimizer
    • HOW TO
    • AppLayering
    • Preparation
    • Optimization
    • Troubleshooting
    • Debug
    • Personalization
    • Workaround
About eucweb.com

Matthias has a Passion for automation with Powershell and blogging about Citrix and Microsoft environments

Manual, Knowledge, Troubleshooting, FAQ about Base Image Script Framework (BIS-F)

Links to other great community members

Thomas Krampe

Carl Stalhood

Carl Webster

XenAppBlog

Dennis Span

Trentent Tye

Recent Comments
  • Matthias Schlimm on Microsoft FSLogix VHDX Compaction on Citrix Virtual Apps and Desktops
  • Thomas Kötzing on Microsoft FSLogix VHDX Compaction on Citrix Virtual Apps and Desktops
  • Matthias Schlimm on Microsoft FSLogix VHDX Compaction on Citrix Virtual Apps and Desktops
Recent Posts
  • [Quick Post] Citrix PVS 2402 LTSR Update and the “ALTER ANY LOGIN” privilege issue
  • [Quick Post] Citrix ProfileContainer vs. Microsoft FSLogix Profile Container
  • [QuickPost] After Update to CVAD 2203 CU2 some Service Displaynames has double ‘Citrix’ in their name.
  • Microsoft FSLogix VHDX Compaction on Citrix Virtual Apps and Desktops
  • Monitoring Citrix StoreFront User Experience with eG Enterprise
Recent KB-Article
  • [HOW TO] Hydrate Files on Citrix Provisioning Server for faster Application Start
  • [HOW TO] Offline Defragmentation
  • [HOW TO] WinSxS Optimization
Meta
  • Register
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Site Statistics
  • 340
  • 5,781
  • 24,686
  • 231,534
  • 1,555,739
  • Privacy Policy
  • Impressum
  • Manual – WP Theme
  • © 2019 eucweb.com. All Rights Reserved.

EUCWeb Cookies
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.Accept Read More Settings
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT