Category Archives: Optimizations

Skype for Business – Three-way calling


Based on the questions I’ve received, it seems like Skype for Business is a pretty big deal.  So, let’s take a look at another question I recently received with regard to the Citrix RealTime Optimization Pack for Skype for Business:

How does this work with 3-way calling?

With Skype for Business, in order to do a 3-way (or more) conference call, you need to have the Skype for Business Audio-Video Conferencing Server implemented within your Skype deployment. After initiating a call by communicating over SIP to the Skype Server, all parties within the call have their voice/video (SRTP) pass through the Conferencing Server.

In a Native RDS/VDI deployment that does NOT include the Citrix RealTime Optimization Pack for Skype for Business, the media must traverse additional network hops (For simplicity, I removed the Skype for Business server that is still required for initializing the session.)

without

As you can see, for those users accessing the environment with a virtual desktop, the Skype for Business client gets installed within the virtual desktop (VDA).  Although this deployment model works, it does put more strain on your RDS/VDI infrastructure as we explained in the previous blog.

Now, compare the SRTP path when we implement the Citrix RealTime Optimization Pack for Skype for Business.

Opt3way

From the user perspective, the voice and video data follows a much more direct route, mimicking that of the traditional PC experience. And the impact to the RDS/VDI infrastructure is significantly reduced as the media is processed on the end points.

Skype for Business Blogs

Daniel (Follow on Twitter @djfeller)
XenApp Best Practices
XenApp Videos

Advertisements

Windows 10 Optimization: Part 8 – The Results


Statistics are fun. It is amazing what interesting insights you can get from statistics. For example

  1. About 20% of workers would work harder if their employer offered a $1,000 shopping spree at the store of their choice – You hear that Citrix!
  2. About 20% of the people who watch the Super Bowl do so for football, the rest watch commercials
  3. About 20% of copy machine issues worldwide are caused by people sitting on them – That is awesome
  4. Over the past year, my blogs are 20% funnier

And my absolute favorite statistic is from Homer Simpson (who else):

  1. People can come up with statistics to prove anything Kent, forty percent of all people know that.

As you’ve seen, we’ve been creating a Windows 10 optimization guide. The Windows 10 optimization guide was focused on identifying, for VDI, as many of the extra components that would negatively impact server density, while focusing on balancing the user experience, as stated in the XenApp Best Practice: For the best combination of user experience and resource consumption, optimize appropriately.

Over the course of several blogs, we looked at optimizing the following items:

  1. Default apps
  2. Services
  3. Scheduled tasks
  4. User Interface
  5. Runtime
  6. Release
  7. ICA

Now the big question is

“What impact did these modifications have?”

First, it gave me something to blog about (This is a big deal. After 5+ years of blogging, I’m running out of ideas).

But most of you probably care about the second part… What was the impact on server density? And for this, my minions, I mean the Citrix Solutions Lab, took over. (We joke that the Citrix Solutions Lab should rename themselves to Feller’s Lab because it seems like they do a lot of testing for me – pity them).

For the series of tests, we had two different policies, one would simply turn on the Citrix “High Server Scalability” policy setting. This corresponded to Part 7 of the Windows 10 optimization blog.

The second policy we applied were all of the Windows 10 optimizations we discussed in Parts 1, 2, 3, 4, 5 and 6 of the Windows 10 optimization blog series.

Turning the Citrix Scalability policy on, gave us a 10% bump in user density.

Turning on the custom OS optimization policy gave us almost another 10% bump in density.

Turning both of these options on equaled roughly 20% more users on our physical host.

Definitely, not a bad start

Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 7: ICA


MowerWere you planning to buy that? Nope.

Of course, as you saw in my previous blog, my stupid lawn mower wheel snapped off with only 30 minutes left in the season! D’oh!

Figured I would just head to the local hardware store and buy a new one. Guess what? Hardware stores in Minnesota don’t sell lawn mowers in late October. I guess no one wants to mow snow, although it might look cool. I went home, got online and eventually ordered a new mower, which happened to be battery-powered. I still can’t believe I did it, but here is why:

Pros Cons
Lightweight
(Wonder when kids can start mowing)
Can’t mow all day on single charge
(I wouldn’t do this with gas anyways)
No more gas & oil messes Doesn’t look very manly
No more winterizing mower Doesn’t look very manly
Quiet
(No more ear protection)
Doesn’t look very manly

So in the end,

  1.     I wasn’t planning to buy a lawn mower
  2.     I definitely wasn’t planning to buy a battery-powered lawn mower
  3.     I wasn’t planning to write another portion for the Windows 10 optimization series

This portion of the optimization series was not in my original plan because it was not a specific change to the underlying operating system, but should that matter? Originally, I thought yes it does matter, which is why I wasn’t going to include it in the series. But remember, the entire time we talked about different optimizations, we always came back to the

XenApp best practice of:

For the best combination of user experience and resource consumption, optimize appropriately

We followed this for

  1.     Default apps
  2.     Services
  3.     Scheduled tasks
  4.     User Interface
  5.     Runtime
  6.     Release

So, why not look at ICA?

First, take a look at Mayunk Jain’s blog on Why you should care about HDX.

Ok, I’m sold. So let’s do it.

Optimization Description
High Server Scalability This template balances user experience and server scalability. It offers a good user experience while increasing the number of users you can host on a single server. This template does not use video codec for compression of graphics and prevents server side multimedia rendering.

That’s all I have to do? That’s too easy for me. If you look into this policy template, you see the following being done to ICA (Full list of changes are contained in the HDX Policy Template paper)

Policy Setting
Use video codec for compression Do not use
Target frame rate 16
Target minimum frame rate 8
Visual quality Medium
Desktop Wallpaper Prohibited
Menu animations Prohibited
Optimization for Windows Media multimedia redirection over WAN Prohibited
Windows media fallback prevention Play all content only on client
Flash video fallback prevention Only small content
Multimedia conferencing Prohibited
Audio quality Medium-Optimized for speech
Auto-create client printers Auto-create the client’s default printer only
Universal print driver usage Use universal printing only
Universal printing optimization defaults Image compression = Standard quality

Based on this, we optimize server density by slightly reducing the quality of the experience. Seems like a fair trade-off (although not having my favorite background picture on my desktop would upset me).

Note: Some of these Citrix policy settings can be drastic if your users are on the WAN.  For example, the “Optimization for Windows Media multimedia redirection over WAN” will degrade the user experience for WAN users.  If users will access resources via the WAN, use the “Optimized for WAN” Citrix Policy as the starting point.

BTW, I’m open for suggestions on how to make my mower more manly looking. I’m thinking a beer holder or racing stripes might help.

Note: The complete Windows 10 optimization blog series

 

Windows 10 Optimization – Part 6 – Release


IMG_0754I look forward to winter arriving because it means I’m done mowing the yard for 5-7 months. So you can imagine how excited I was when I was mowing my yard for the final time of the season. I could see the end in sight. I was beginning to think about what I would do with my extra 2 hours of time every weekend.

Almost there. Almost there.

Ummm, why is my mower not moving?

Why is it dragging on the ground?

HEY! Where did my wheel go?

Are you freaking kidding me?

With 30 minutes left of mowing for the season, my wheel fell off. And I don’t simply mean it fell of.  It snapped. And it wasn’t a cheap piece of plastic.  A good sized piece of metal snapped (I guess I’m just too strong).

No matter how far you get, how much you do, it can all be for nothing. As we’ve seen, Windows 10 provides us with many different avenues for optimization. We’ve gone through

  1. Default apps
  2. Services
  3. Scheduled tasks
  4. User Interface
  5. Runtime

All while trying to follow our XenApp best practice of:

For the best combination of user experience and resource consumption, optimize appropriately

And at the end, once we’ve optimized and installed our apps, we have one last thing to do before we are complete and ready for user testing is to optimize the image itself. The image optimization recommendations are manual, but are worthwhile. They include:

Optimization Description
Antivirus definitions If antivirus is installed and running within the virtual desktop, updating the definition file will prevent all desktops from updating on first boot up.
Windows update It is typically advisable to have the latest Windows 10 updates and security fixes before rolling out the image into production. Just remember that if the Windows Update service was disabled, it must be re-enabled to run the update. And if you had to enable it in order to run Windows Update, don’t forget to re-disable it.
App updates Many applications have integrated auto update functionality. These applications should be updated, then the auto update functionality should be disabled.
Disk defragmenter The disk might have become fragmented during installation and configuration, which will lead to less performance. Defragmenting the disk before rolling out will give better performance and reduce storage utilization.

Note: The complete Windows 10 optimization blog series


Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 5 – Runtime


The difference between laziness and ingenious is in the eye of the beholder. For example, operating my telescope can almost all be done remotely. I do have to go outside and manually roll off the roof of the shed but after that, I can connect to my PC remotely and control my telescope, my camera, my focuser and my guide scope.

Some people say I’m lazy, but it gives me a much better experience. Some of the clearest and most stable skies are in the winter. But when the temperature is -20F (even 0F) I can’t be out there for too long. And when I need to focus the telescope, it is a struggle to do so while wearing gloves (and painful).

These optimizations allow me to get more use out of my telescope, but it did take time to develop (Even though it is winter, my PC is not a bear, no hibernation allowed).

And the Windows 10 optimizations will allow us to get more use out of our virtual desktop. So far, we’ve gone through

  1. Default apps
  2. Services
  3. Scheduled tasks
  4. User Interface

And all the while, we’ve tried to stick to our XenApp best practice:

For the best combination of user experience and resource consumption, optimize appropriately

The next batch of optimizations are focused those runtime optimizations that don’t directly impact the user, but will provide better efficiencies.

Commands

Optimization Configuration
Disable hibernate Powercfg -h off

Registry updates

Optimization Configuration
Disable NTFS Last Access Timestamps [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]

“NtfsDisableLastAccessUpdate”=dword:00000001

Disable Memory Dump Creation [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]

“CrashDumpEnabled”=dword:00000000

“LogEvent”=dword:00000000

“SendAlert”=dword:00000000

Disable default system Screensaver HKEY_USERS\.DEFAULT\ControlPanel\Desktop

“ScreenSaveActive”=dword: 00000000

Disable Background Disk Defragmentation [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]

“Enable”=”N”

Disable Background Auto-Layout [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]

“EnableAutoLayout”=dword:00000000

Disable the Windows 10 First

Logon Animation

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]

“EnableFirstLogonAnimation”=dword:00000000

Increase Disk I/O Timeout to 200

seconds

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk]

“TimeOutValue”=dword:000000C8

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 4 – User Interface


afterbeforeI think I create my to-do lists wrong. I never feel like I’m making any progress. For example, one item on my to-do list was “Fix sailboat rudder”. It was looking pretty gnarly, plus my tiller broke, which made for an interesting sail back to the mooring.

This one item on my list took me almost 2 weeks to complete! Talk about not making any progress. What I should have done is break the tasks down into small chunks like

  1. Remove rudder hardware
  2. Sand
  3. Fill cracks/holes
  4. Sand and clean
  5. Paint first coat
  6. Sand and clean
  7. Paint second coat
  8. Sand and clean
  9. Paint third coat
  10. Sand and clean
  11. Paint fourth coat
  12. Sand and clean
  13. Paint fifth coat
  14. Sand and clean
  15. Paint sixth coat
  16. Reattach rudder hardware

Now I don’t feel so bad that it took so long.

I’m beginning to feel the same way about this Windows 10 optimization blog. It was a good idea, but WOW, there are quite a few things to cover. So far, we’ve gone through

  1. Default apps
  2. Services
  3. Scheduled tasks

And remember, although it goes without saying, but I’ll say it anyway, adhere to our XenApp best practice:

For the best combination of user experience and resource consumption, optimize appropriately

This batch of optimizations are on the user interface optimizations.

Optimization Configuration
Disable default system Screensaver HKEY_USERS\.DEFAULT\ControlPanel\Desktop

“ScreenSaveActive”=dword: 00000000

Disable the Windows 10 First

Logon Animation

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]

“EnableFirstLogonAnimation”=dword:00000000

Hide Hard Error Messages [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows]

“ErrorMode”=dword:00000002

Settings “Visual Effects to Custom” [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]

“VisualFXSetting”=dword:00000003

Disable “Show translucent selection rectangle” [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“ListviewAlphaSelect”=dword:00000000

Disable “Show shadows under windows” [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“ListviewShadow”=dword:00000000

Disable “Animate windows when minimizing and maximizing” [HKEY_CURRENT_USER \ControlPanel\Desktop\WindowMetrics]

“MinAnimate”=”0”

Disable “Animations in the taskbar” [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

“TaskbarAnimations”=dword:00000000

Disable “Enable Peek” [HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]

“EnableAeroPeek”=dword:00000000

Disable “Save Taskbar Thumbnail Previews” [HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]

“AlwaysHibernateThumbnails”=dword:00000000

Disable “Smooth edges of screen fonts” [HKEY_CURRENT_USER \Control Panel\Desktop]

“FontSmoothing”=”0”

Disable the rest of the visual effects [HKEY_CURRENT_USER \Control Panel\Desktop\]

“UserPreferencesMask”=RegBin: “90,12,01,80”

Disable cursor blink rate Disable “Cursor blink”

[HKEY_CURRENT_USER \Control Panel\Desktop]

“CursorBlinkRate”=”-1″

Disable Internet Explorer First Run

Wizard

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InternetExplorer\Main]

“DisableFirstRunCustomize”=dword:00000001

Reduce menu show delay [HKEY_CURRENT_USER\ControlPanel\Desktop]

MenuShowDelay”, “0”

Now all i have to do is wait until May before I get to put the boat back in the water.

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 3 – Scheduled Tasks


IMG_2856

Living in the cold north, you learn to take vacation during the 3 weeks of summer (it really isn’t that bad). I typically spend this time windsurfing, sailing, biking or camping (notice all outdoor activities).

Unfortunately, when vacation time gets close, I start to see a growing honey-do list. I spent a good portion of my last summer vacation staining 11 interior wood doors, building closet shelving, and shoveling 7 tons of rock (ugh).

All of these “scheduled tasks” hurt my vacation experience.

Scheduled tasks can hurt, and Windows 10 has a lot of scheduled tasks, which is why we want to try and optimize (safely). So far, we have gone through the following optimization recommendations

All the while, we are trying to adhere to the following XenApp Best Practice, and optimizing scheduled tasks will follow the same best practice:

For the best combination of user experience and resource consumption, optimize appropriately

When operating in a pooled virtual desktop mode, where changes are discarded on subsequent reboots, it doesn’t make sense to perform some of these tasks as they will simply consume resources.

Microsoft Customer Experience Program

Tasks Description
Application Experience \ Appraiser Aggregates and uploads Application Telemetry information if opted-in to the Microsoft Customer Experience Improvement Program.
Application Experience \ ProgramDataUpdater Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program
AutoCHK \ Proxy This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program.
Customer Experience Improvement Program \Consolidator If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft.
Customer Experience Improvement Program \KernelCeipTask The Kernel CEIP (Customer Experience Improvement Program) task collects additional information about the system and sends this data to Microsoft. If the user has not consented to participate in Windows CEIP, this task does nothing.
Customer Experience Improvement Program \Uploader This job sends data about windows based on user participation in the Windows Customer Experience Improvement Program
Customer Experience Improvement Program \UsbCeip The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything.

Safety

Tasks Description
Shell \ FamilySafetyMonitor Initializes Family Safety monitoring and enforcement.
Shell \ FamilySafetyRefresh Synchronizes the latest settings with the Family Safety website.
Windows Defender \ Windows Defender CacheMaintenance Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows Defender CacheMaintenance Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows Defender Cleanup Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows DefenderScheduled Scan Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Defender \ Windows DefenderVerification Can be disabled in case an alternative virus and malware protection has been implemented.
Windows Filtering Platform \BfeOnServiceStartTypeChange This task adjusts the start type for firewall-triggered services when the start type of the Base Filtering Engine (BFE) is disabled.

Maintenance \ Optimization \ Protection

Tasks Description
Application Experience \ StartupAppTask Scans startup entries and raises notification to the user if there are too many startup entries.
CHKDSK \ Proactive Scan NTFS Volume Health Scan
Diagnosis \ Scheduled The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through the Action Center.
DiskDiagnostic \ Microsoft-Windows-DiskDiagnosticDataCollector The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program.
DiskDiagnostic \ Microsoft-Windows-DiskDiagnosticResolver This task warns users about faults that occur on disks that support Self-Monitoring and Reporting Technology
Defrag \ ScheduledDefrag This task optimizes local storage drives
FileHistory \ File History Protects user files from accidental loss by copying them to a backup location when the system is unattended
Maintenance \ WinSAT Measures a system’s performance and capabilities
MemoryDiagnostic \ ProcessMemoryDiagnosticEvents Schedules a memory diagnostic in response to system events.
MemoryDiagnostic \ RunFullMemoryDiagnostic Detects and mitigates problems in physical memory (RAM).
Power Efficiency Diagnostics \ AnalyzeSystem This task analyzes the system looking for conditions that may cause high energy use.
RecoveryEnvironment \ VerifyWinRE Validates the Windows Recovery Environment.
Registry \ RegIdleBackup Registry Idle Backup Task
SystemRestore \ SR This task creates regular system protection points.
WDI \ ResolutionHost The Windows Diagnostic Infrastructure Resolution host enables interactive resolutions for system problems detected by the Diagnostic Policy Service. It is triggered when necessary by the Diagnostic Policy Service in the appropriate user session. If the Diagnostic Policy Service is not running, the task will not run

And remember, if you are unsure about turning off a scheduled tasks, LEAVE IT ALONE!

Note: The complete Windows 10 optimization blog series

Daniel ()
XenApp Best Practices
XenApp Videos