I have recently been asked to baseline Outlook 2016 running on 2016 Exchange Cache Mode vs. Online mode in a 7.6 XenApp RDSH Environment. The purpose was to find out the impact of enabling cache mode on a network share on the Citrix host vs. running on Online Mode (With no share to write to).
Of course the whole thing was triggered after finding out that Online Mode in Outlook 2016 is causing session freezes and horrible overall performance especially when sending/receiving emails with attachment. The only viable alternative was to consider implementing Exchange Cache Mode and host the OST file on a network share with appropriate security permissions and group policies that limits the size of the file to store a month worth of emails.
If users wanted to search for older emails, Exchange Online will kick in and retrieve the data.
So, back to the main topic, the main performance counters that we wanted to monitor were CPU, Memory, Network I/O and Disk I/O.
Configuring Group Policy for Cache mode:
- In Group Policy, load the Outlook 2016 template. You can get them from here https://www.microsoft.com/en-us/download/details.aspx?id=49030
- Open the Group Policy Management Console (GPMC), and in the tree view, expand Domains, and expand Group Policy Objects.
- Right-click the policy object that you want, and click Edit. The Group Policy Management Editor window opens.
- In the tree view, expand User Configuration, expand Administrative Templates, expand Microsoft Outlook 2016, expand Account Settings, and then click Exchange. You can also expand Exchange, and click Cached Exchange Mode.
- Select Enabled, and select an option (if appropriate).
- Click OK.
Configuring the Default OST Location on a Network Share:
- Assuming you have got Outlook 2016 Template from above. Open the Group Policy Management Console (GPMC)
- In the tree view, expand User Configuration, expand Administrative Templates, expand Microsoft Outlook 2013, expand Miscellaneous, and then click PST Settings.
- Double-click Default location for OST files to open it.
- Click Enabled to enable the policy setting.
- In the Default location for OST files text box, enter the default location for .ost files. For example: \\mynetworkshare\%username% where %username% is the dedicated folder for each user that will store the OST file.
Note: Set security settings on the share to assure OST confidentiality as there is no encryption on the OST file level.
Create a new user defined “Data Collector Set” and add the following counters
- Terminal Services Sessions %Processor Time
- Terminal Services Sessions %Privileged Time
- Terminal Services Sessions %User Time
- Memory %Committed Bytes In Use
- Network I/O:
- Network Adapter – Bytes Sent/Sec
- Network Adapter – Bytes Received/Sec
- Disk I/O:
- Physical Disk % Disk Time
Making sure the user has no local profile or any roaming profile with persisting Outlook settings, I ran the Performance Monitor on XenApp 7.6 LTSR Session host – Server was 2012 R2 – 24 Cores X 2 2.60 MHz with 128 GB RAM.
I ran the test in 3 different scenarios: –
- Cached Profile Setup (First Sync)
- Cached Profile fully synced
- Online Profile
In all 3 tests, I could not see a significant difference in performance; spikes were a bit sharper upon first launch which is perfectly justifiable by the fact that the OST file is being built for the first time and that requires more CPU and I/O operations.
Providing a good network link with the file share, implementing Exchange Cache Mode in RDSH environment should have a little and acceptable impact on the session host resources. Results may differ from one environment to another.