Workspace Streaming

 View Only

Memory Optimization for SWV and SWV Streaming 

Sep 10, 2013 02:37 PM

Many users who use SWV might have problems with performance. Applications might look slower and the overall performance might be slow when activated layers are available. Most of this has to do with Microsoft's inability for using Windows memory manager correct with SWV available.

Now administrators can boost the overall performance for computers, laptops and VDI desktops with a few settings enabling Windows memory manager to perform better.

Below are a few key's that can help you in boosting performance. As always, editing the registry can result in a non function computer or even crashes.

All settings below are tested and optimised for Windows 7 and Windows 2008 r 2, 32 and 64 bit. Always remember to test thoroughly in a test environment prior to putting into production.

Your Windows Registry contains settings related to the management of memory. There are certain values, enclosed in these key's, which can be modified to change the working of system’s activities in managing memory. Described below is the procedure to reach this key.

  • Type ‘regedit’ in the search box, and hit Enter to open Registry Editor
  • Reply with Yes if prompted
  • In the left pane of registry editor, explore Computer node to view registry keys
  • Click to expand HKEY_LOCAL_MACHINE
  • In the dropped down list, find and click to expand SYSTEM key
  • In the disclosed list, locate and expand CurrentControlSet
  • Subsequently, locate and inflate Control key
  • Discover and penetrate the key named Session Manager
  • Finally, select and stay on Memory Management key

 

 

Value 1 ClearPageFileAtShutdown

Page file is the reserved memory on hard drive used as an extension of RAM. This memory contains data that was not recently used by RAM, and transferred to hard disk. It may constitute of the information stored by third party applications. Along with certain personal data, it may include the data like Usernames, Passwords, Credit Card numbers, and other security PINs. Page file can be cleared on shutdown, manually, as Windows does not do so. To clear page file at shutdown:

  • Double click this value to Modify
  • In the Value data field, change the value from 0 to 1
  • Click OK to save your changes

Value 2 DisablePagingExecutive

DisablePagingExecutive permitted systems, load kernel directly to the RAM, rather than Virtual memory, which is comparatively slower. DisablePagingExecutive, when enabled, is also helpful in debugging drivers. A 64-bit Windows may have this feature enabled, by default. 32-bit users can manually enable it by

  • Double click this value to Modify
  • In the Value data field, change the value from 0 to 1
  • Click OK to save your changes

Value 3 LargeSystemCache

An activated LargeSystemCache increases the size of system cache. It usually heightens the system performance, but lessens the physical memory space for other applications and services. This value generally facilitates the servers, whereas, workstations are suggested to shut it down through following steps

  • Double click this value to Modify
  • In the Value data field, change the value from 1 to 0
  • Click OK to save your changes

Value 4 NonPagedPoolSize / PagedPoolSize

Paged pool is a portion of memory that stores the pages with intention to move them to the page file, while non-paged pool is a contrariwise concept that stores the pages but never moves them to page file.

Enabling both the values, require postulating the exact size in bytes. It is suitable to disable these values to put the system in charge of calculating prime value, which adjusts dynamically. The value for Paged Pool size may range between 1MB to 512MB. However, it is recommended to set 192MB.

  • Double click this value to Modify
  • Change the Base from Hexadecimal to Decimal
  • In the filed next to Value data, replace 0 with 192 (making it 192MB)
  • Click OK to save your changes

Value 5 NonPagedPoolQuota / PagedPoolQuota

By enabling these values, you are aimed at limiting the memory resources to each single process. If in case, the process tries to exceed the allocated quota, it would fail. Therefore, it is recommended to leave it disabled or disable it (if enabled). Both the values are enabled by specifying the size of memory, allocated to non-paged pool and paged pool, respectively. This size ranges between 1MB and 128MB, and is assigned through Value data. On the other hand, disabling these values authorize the system to calculate an optimal value for both the entries based on current physical memory, and auto-adjusts in case of change in memory size. To disable these values

  • Double click this value to Modify
  • Make sure the Value data is 0, to make it auto-managed by system
  • Click OK to save your changes

Value 6 PhysicalAddressExtension

Physical Address Extension, generally known as PAE, is the technology that enables 32-bit operating system to access more than 4GB memory, up to 64GB or 128GB, depending on the physical address size of processor. A 64-bit system has the ability to access more than 4GB RAM, and does not necessitate PAE. If you have a 32-bit Windows with sufficient RAM, you need to enable this value in the Registry Editor.

  • Double click this value to Modify
  • In the Value data field, change the value from 0 to 1
  • Click OK to save your changes

Value 7 SessionPoolSize

The registry entry noted above deals with the memory used for the allocation of video drivers. If the size of Session Pool is pre-defined, it limits the active session from using excessive memory, and if it does, the session crashes, with a stop message. To avoid such inconvenience you are suggested to elevate the value of SessionPoolSize.

  • Double click this value to Modify
  • Change the Base, from Hexadecimal to Decimal
  • In the Value data field, change the value to 48 (making it 48MB)
  • Click OK to save your changes

Value 8 SessionViewSize

SessionViewSize is the key that is related to the desktop heaps within the active session on a server or workstation. It allocates to memory to interactive Window Station. Interactive Window Station contains group of desktop objects like Windows and menus. It has the attitude similar to SessionPoolSize, as it freezes the process, when trying to excess the allocated memory.

  • Double click this value to Modify
  • Change the Base, from Hexadecimal to Decimal
  • In the Value data field, change the value to 96 (making it 96MB)
  • Click OK to save your changes

Value 9 SystemPages

SystemPages refer to the number of page table entries (PTE), reserved to store the mapping between virtual addresses and physical addresses. This mapping is performed by dividing RAM into fixed-sized page frames. Information is stored and mapped in these page frames. If value of SystemPages has to be other than 0, it must be allocated with    the maximum value, 0xFFFFFFFF. However, it is recommended to leave it system managed, as system adjusts and calculates the optimum value for this entry, if the Value data is left 0.

  • Double click this value to Modify
  • In the Value data, make sure the text field indicates 0.
  • Click OK to save your changes

Value 10 PoolUsageMaximum

This value identifies the allowed maximum usage of paged pool. The value data of this entry signifies the percentage specification of maximum pool usage. This value may not exist in the registry, by default. In such scenario, create a New DWORD Value, and name it exactly as PoolUsageMaximum. Assigning a value data to this key identifies the range to start the Trimming process.

  • Double click this newly created value to Modify
  • In the Value data field, put ‘50’ to allow 50% usage of total paged pool before trimming starts
  • Click OK to save your changes

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Comments

Oct 10, 2013 09:18 AM

Does this apply to 6.1, 7.5 or both?

Oct 04, 2013 02:17 AM

Martin!  We will try and recompile Matlab using 8dot3 disabled and test again.  Thanks so much!

Oct 03, 2013 03:54 PM

Hi Palvaran,

I have seen great performance improvement on applications that have been created with 8dot3 naming disabled on the package machine during packaging.

The reason for this is that when the 0 byte files are created the ntfs file system creates the 8dot3 naming of the file to. If the package is created with 8dot3 disabled during packaging, the ntfs system do not create the 8dot3 naming of the file and this speeds ud the creatin of 0 byte files.

This is noticeable on large applications with many many files.

See my article http://www.symantec.com/connect/articles/packaging-tip-disable-83-name-creation-ntfs-partitions on how to disable 8dot3.

Please notice that not all applications will allow capture if 8dot3 is disabled. and will fail the capture installation if this is the case.

Kind Regards
Martin

Sep 18, 2013 11:09 PM

Thanks Erik!  This is a great article with a ton of useful information and I am curious to see how they help with large programs with large blocks of data versus large programs with small blocks of data.  When I get into work tomorrow I will try and run some tests in our environment.

Our slowest program to run with virtualization is Matlab.  During the stream, we noticed that the program creates 0 byte files on the local file system prior to the precache data being sent.  The problem occurs in that Matlab has more than 100,000+ small files associated with the program and the file system struggles to create that many 0 byte files and takes several minutes.  It's only then that the precache begins to stream and overwrite those 0 byte files.

Overall, the fortress system does a great job with the way the folder redirection works on the local system in regards to most software underneath 1 GB or so.  The slowdowns that we have experienced appear to be due to when we go past that threshold.

That and mutiuser environments make things interesting.

As always, thanks for your articles Erik.

Related Entries and Links

No Related Resource entered.