In my conversations with customers at our iForum App Delivery Expo in Las Vegas a few weeks ago, the topic of Adobe Flash came up several times. It became apparent to me that many Citrix system administrators are looking for guidance on how best to configure Presentation Server to support access to web sites with Flash content, and they’re wondering what future enhancements Citrix has on our technology roadmap. So here is the first in a series of blog posts about optimizing Flash performance.

Flash is indeed a key focus area for the Citrix Multimedia Virtualization Initiative. Over the past few years we introduced various enhancements and tweaks to Presentation Server to help customers optimize the user experience when viewing Flash animations and videos. We also offer NetScaler to dramatically accelerate the delivery of web applications, including apps with Flash content. And there’s more to come…

The reason for this continued attention to Flash is the growing prevalence of Flash-based content. Based on input I received from two leading Content Delivery Network vendors, it looks like Adobe Flash has now captured at least 10% of the enterprise market and is enjoying rapid growth. And a Forrester survey (“Enterprise Browser and Desktop Trends”) of over 2,000 large enterprises found the Adobe Flash player installed on 98% of desktops.

The obvious starting point in our discussion of Flash performance is the SpeedScreen Flash Acceleration feature (“SpeedFlash” for short) introduced in Presentation Server 3.0. You can enable SpeedFlash to be on at all times or just over low bandwidth connections (less than 150Kbps). SpeedFlash automatically adjusts the Flash player to use simpler graphics (for example, no smoothing or anti-aliasing). These simpler graphics can be more effectively compressed, thereby reducing bandwidth consumption. CPU usage is reduced, too, which translates into higher scalability (more concurrent users per server).

SpeedFlash looks for specific binary file names. Here’s where things can go wrong. The SpeedFlash code in Presentation Server 4.0 looks for flash.ocx and won’t do its trick unless it finds that file. You may be running a version of the Flash player with a different binary file name. Presentation Server 4.5 was updated to also accept flash8.ocx, flash8b.ocx or flash9.ocx. But what do you do if you’re still running Presentation Server 4.0?

There’s a hotfix for PS 4.0 [NOTE: this hotfix is for Windows Server 2003] that adds support for Adobe Flash versions 7a, 8, 8b, 9, 9c, and 9d. You’ll find the details at http://support.citrix.com/article/CTX115426 (login required). [NOTE: If you have trouble with this link even after logging in, just do a search for CTX115426. I’ve noticed that the link can take a long time to resolve. An approved support contract is required to access limited release hotfixes and hotfix articles.] The hotfix number is PSE400R03W2K3091. And I expect there will be future hotfixes as new versions of Flash are introduced that have a different binary file name or require new SpeedFlash code to achieve the task of adjusting the Flash player to use simpler graphics.

[UPDATE: A hotfix for PS 4.0 with HRP04 on Windows Server 2000 was made available on March 10th. Customers with an approved support contract can find the article describing this hotfix at CTX115555. The hotfix number is PSE400R04W2K012. This hotfix adds support for Adobe Flash versions 7a, 8, 8b, 9, 9c, and 9d.]

So, does it work? Obviously the current SpeedScreen Flash Acceleration technology is not as advanced as SpeedScreen Multimedia Acceleration, which leverages client-side resources to greatly improve server scalability and provide a just-like-local user experience for a long list of media types that can be decoded with a DirectShow codec. Yet the measurements I’ve seen for SpeedFlash show an impressive 22% average reduction in bandwidth consumption (the actual figure will vary according to the content).

If your users will be accessing Flash videos, I recommend setting SpeedFlash to be always on, rather than limiting it to just low bandwidth (dial-up) connections.

Audio settings are also important to consider since if you’re watching a Flash video it more than likely has an audio track, too. I recommend Presentation Server’s Medium Quality setting as the best compromise between sound quality and bandwidth consumption. The Low Quality setting does not make for a very good user experience, and the High Quality setting uses up a lot of bandwidth (roughly 1 Mbps). Improvements to audio support are another part of the Citrix Multimedia Virtualization Initiative (see “Now playing – The Ulysses Audio Codec”).

I’ll have some more “secrets” for optimizing Flash performance in a subsequent blog post.

Derek Thorslund
Product Strategist, Multimedia Virtualization