ThinApp Optimise and Book Review

By | May 23, 2014

ThinApp has been around for years and application virtualization is extremely useful.  Although I’ve used ThinApp in the past, I needed to brush up in a few areas, recommit some knowledge back into my memory. Specifically I wanted to focus on a few key areas – such as performance, optimisation of large packages (sandboxes).  I’m a fan of Packt Publishing and recalled them releasing a ThinApp 4.7 Essentials book, so I decided to run through this book and try to gather the information I needed.  The author is Peter Bjork, a VMware Senior Specialist from the EUC EMEA Practice.

ThinApp

As a result, I actually found this publication the most comprehensive and complete guide I could find around ThinApp.  Although the book is over a year old, and in technology that’s a long time, from my understanding, many of the core concepts and principles outlined in this book are still very relevant for today’s latest version (v5.0.1).  You can find a video resource around the major release of ThinApp v5 at the end of this post.

Back to the book, which from back to front, covers all the necessary sections you’d expect, from ThinApp high level overview, architecture in depth, the capturing process, packages and all the detail, settings and configuration.  Many of the sections are accompanied by guides and insightful screenshots to enhance the learning experience.  Additionally all the various enterprise deployment and update methodologies of ThinApp packages are discussed.  Design and implementation considerations is covered, a troubleshooting section and various tools used, finally wrapping up with a useful references section to VMware’s official documentation.

For those of you considering the end user computing VMware VCAP exams (DTD and DTA), ThinApp technology is covered in both.  Although I’m under NDA having taken both exams, what I will say is, master this book and you’ll pretty much take care of the ThinApp questions.  As I was reading through the book, I noticed a couple of things which would have definitely improved and helped during my exam experience.

Returning to my original intent, I decided to round up some notes, which may prove useful for others or myself in the future.  I would encourage anyone wanting to drill deeper, to purchase the book or reference the official VMware docs.

Performance

  • Set user expectations
  • Size of application\package can impact performance (execution)
  • Slowness of applications
    • At launch or during run\execution?
  • Where do ThinApp and Sandbox reside? Removable media, network or local?
  • AV should be set to scan only .exe of package, not data files\folders
  • Detect processes in background causing slowness – Process Explorer and Monitor tools
  • ThinApp log monitor
  • Slow registration of packages
    • Where are packages located? How many packages?
    • Method – ThinReg, MSI or 3rd party
    • Physical, virtual or remote desktops?
  • Performance heavily dependent on network and storage
  • Impact of additional validation like login scripts and 3rd party tools

Isolation Modes

  • Merged
    • Full access to local system, files and registry
    • Will add changes to local system
    • Virtualised elements will end up in sandbox
  • Write\Copy
    • Allows reading of local system, but modifications created in sandbox
  • Full
    • Cannot write or interact with local system, files and registry
    • Protect application from seeing conflicting elements on local system

Prevent Sandbox bloating

  • Size of sandbox depends on isolation mode and behaviour of application
  • How application needs to behave, defines isolation mode
  • Does the application actually require a sandbox?
  • Investigate sandbox during testing of a package, to learn behaviour (files created)
  • Disable application updaters
  • Could be caused by sandbox ‘locking’ upon application closing down.
    • Use Process Explorer tools to trouble-shoot
  • Specific apps may require sandbox elsewhere (away from user profile), if too much bloating
  • Package.ini parameter ‘SandboxPath=’
    • Even if packaging policy specifies a certain location for sandboxes (roaming profile), the policy should allow a different location for those few applications that create massive sandboxes and don’t need to be roamed.
  • Package.ini parameter ‘RemoveSandboxOnExit=
    • Deletes sandbox when app closed, if user settings not required
  • Choose not to sandbox user settings by using the Merged isolation mode on %AppData% and all it’s subfolders
    • Configured using the ##Attributes.in file
    • Sandbox will be smaller and you can more easily manipulate the settings accessing the native location, however all changes made by package are not held in one place

Other tuning options?

  • Package.ini parameter ‘CachePath=’  – i.e. stub executable files
    • Specify location away from Sandbox directory
  • Package.ini parameter ‘CompressionType’= None or Fast
    • For performance, choose none, only files other than executables & DLL are compressed
    • You can change this behaviour using OptimizeFor=Disk
  • Package.ini parameter ‘ExcludePattern=’ – Files\folders to exclude from build
    • Add the parameter into ##Attributes.ini files as well. This way, the exclusion will only be active on that specific folder (where ##Attributes.ini reside)
  • Ensure application is captured on CLEAN operating system (Windows)

Sizing your streaming file share

  • Size repository as with any other file share, the load from packages are the same as any other file types
  • Initial execution of files require disk I\O
  • If application consumes 5 MB when launched (use Wireshark to measure), and ten users launch the application at the same time, the load on the network will be 50 MB.  The first launch of a package will always be slower than the subsequent launches. Upon the first launch the sandbox is initiated, and this will take something like a second or so
  • If the package creates a large sandbox upon the first launch, then the package might not be a very good candidate for streaming
  • Store packages and user sandboxes on different file servers, as  you won’t hit the same server twice across the network during the execution of the package
  • Disable AV scanning of package repository

Resources

ThinApp bootcamp video series – Design, implementation & scripting etc

ThinApp Blog

ThinApp Performance Enhancing

A great video from the above bootcamp series from VMware

ThinApp v5.0 Overview

Leave a Reply