In my lab I have two App-V 5 publishing servers. I use them both to do publishing refreshes. I have a netscaler in my lab, so I figured, why not load balance the publishing servers?

This article describes how to enable load balancing for App-V publishing with Netscaler 10.5.

After login go to Traffic Management > Load Balancing > Servers


Click on Add and add the App-V publishing servers.

After adding the Servers, go to Traffic Management > Load Balancing > Service Groups and click Add


After Add you will see the following screen.


Fill in the Name, Protocol and Click continue. (In this case Name: AppV_Publishing, Protocol: TCP)

When continue is pressed it will take you to the following screen:


Click on members, the next screen will appear


Click inside the Service Group Members field, you will be taken to the following screen:


Click on Add. In the next screen you can add the in the first step created servers here.


Choose Server based. In Server name you add the in the first step created server. In Port you add the port the AppV Publishing server publishes on (in my case 81). After that click create, and repeat to add servers until you have all publishing servers in the Group. If everything went as expected you will see the following result:


Effective state will be UP.

As a last step you need to create a Load Balance server. Go to Traffic Management > Load Balancing > Virtual Servers. Click Add


The screen to add a load balancing server will be shown:

NS_AppV9 NS_AppV10

Add a descriptive name, protocol should be TCP. IP Address Type: IP Address. IP address add an IP Address that is available in your range.

Port should be 81.

After that add and DNS record to DNS for the Load Balance Server.

When the DNS record is added, edit the App-V GPO so that the created DNS record is used as publishing server.

Write comment (0 Comments)

In the previous part of this serie of blogs I wrote resource sharing. Also discussed the different kind of technologies, in this article I want to go into the load test I have performed at the customer.

All tests are performed with the officeworker workload, 150 sessions, 60 second launch interval.

The following test are performed:

  1. Baseline office worker (DFSS/RES WM on (default))
  2. DFSS on RES WM off
  3. DFSS off RES WM on (default)
  4. DFSS off RES WM on (85%)
  5. DFSS off RES WM off

Below is a chart that represents the test results in % relative to the first (baseline) test.

Resource metering comparison

The chart shows that disabling DFSS and RES WM CPU Optimization results in a degraded user experience. The best combination in this situation is disabling DFSS and setting RES WM CPU optimization to start working at 85% cpu usage.

The questions raised in the previous article were:

  • Do we need RES Workspace Manager CPU optimisation on top of Dynamic Fair Share Scheduling?
  • Which technique should we use? (RES or MS?)
  • Do we even need resource sharing in this modern age?

To answer those questions:

  • No we don't. In my tests the best combination is DFSS disabled and RES WM CPU optimization enabled at 85%. I would recommend to test in your specific configuration (with LoginVSI ;) ), but you could use this as a point of departure.
  • See the answer above, I believe it should be RES WM especially because it does log the events and that way you manage your user environment from within one tool.
  • Yes we still do need resource sharing in this modern age. Hardware has made a real big leap in the last couple of years, but the software is still behind in those developments (look at how many multi-threaded applications there are, or how many x64 applications).

I hope you enjoyed this series of posts. I at least have enjoyed working out this series and hope you can take you advantage from this postings. Please feel free to leave a comment below or discuss my methods/results.

Write comment (0 Comments)

Currently I am at a customer that uses RES Workspace Manager on Windows Server 2008R2 XenApp servers.
Because lots of users logon to your XenApp servers, one can consume all the resources on the server. Thankfully Microsoft and Citrix both have their own technologies to prevent users from eating up all the resources. Both Microsoft and Citrix say that if using XenApp 6.x you should use either Dynamic Fair Share Scheduling (Microsoft technology) or Citrix CPU utilization (Citrix Technology).
Most customers I work at that use RES Workspace manager have disabled Citrix CPU optimisation, but still use RES Workspace Manager CPU optimisation on top of Dynamic Fair Share Scheduling.
The goal of this set of articles is to answer the following questions:

  • Do we need RES Workspace Manager CPU optimisation on top of Dynamic Fair Share Scheduling?
  • Which technique should we use? (RES or MS?)
  • Do we even need resource sharing in this modern age?

To answer the above questions I will be using LoginVSI The tests are run at the customer, which has the following specs:

  • HP Proliant DL308p Gen8
  • dual Xeon E5-2640
  • 65 gb Memory
  • DAS for the VM disks

The software configuration:

  • Vmware vSphere 5.1.0 (2000251)

Virtual Machines running:

  • 3x XenApp 6.5 worker
    - 8 vCPU
    - 16 GB memory
    - XenApp 6.5
    - RES Workspace Manager 2014 SR1
    - RES Automation Manger 2014 agent
    - Office 2010
    - AppV 4.6 SP1
    - Adobe Reader X

VSI workload: Officeworker

User shares

  • On NetApp filer

Before I will go into the technical stuff, first let me start off to explain a little about what the different kinds of technologies do.

RES WM CPU Optimization

This particular technology doesn't really optimize the CPU, in that way it is a little misleading. What it does, is if a process in a user session goes above a set threshold for a set period of time it sets the process priority in windows on low priority. Windows will give the process less CPU cycles then other processes on the server. This has a side effect on the user side, a user may experience "hung" applications, or inresponsive applications. On the server side the results are that you can handle more users on your server, because one user can't claim all the CPU cycles to themselves.
Dynamic Fair Share Scheduling

Fair Share CPU Scheduling is a new feature included with Remote Desktop Services in Windows Server 2008 R2. Fair Share CPU Scheduling dynamically distributes processor time across sessions based on the number of active sessions and load on those sessions by using the kernel-level scheduling mechanism included with Windows Server 2008 R2. On an RD Session Host server, one user will not affect the performance of another user's session, even if the RD Session Host server is under a high load.(Source: Microsoft)

Citrix CPU Utilization Managment

The CPU utilization management feature can be used to improve the ability of a farm to manage resources and normalize CPU peaks when the farm’s performance becomes limited by CPU-intensive operations. When you enable CPU utilization management, the server manages the share of the CPU allocated to each user. By default, this is an equal share. This prevents one user from impacting the productivity of other users and allows more users to connect to a server. This feature allows you to control the share.

The CPU utilization management feature ensures that CPU resources are equitably shared among users by having the server allocate an equal share of the CPU to each user. This is accomplished by providing CPU reservation and CPU shares.
  • CPU reservation is a percentage of your server’s CPU resource that is available to a user. If all of a reserved allocation is not being used, other users or processes can use the available resource, as needed. Up to 20% of the work capability of a single CPU on a server is always set aside for the local system account and is not available to users.
  • CPU shares are percentages of the CPU time. By default, CPU utilization management allocates four shares for each user. If two users are logged on to a server and the local system account does not need any of the resources on the system, each user receives 50% of the CPU time. If there are four users, each user receives 25% of the CPU time.
    (Source: Citrix)

So far the background about the differnt kinds of technologies, the reasons why I am going to blog this series.

Stay tuned for the next post, which I hope to be able to do soon, but first I need to repair my RAID set :)

Please feel free to discuss, call me mad, give feedback or what so ever.



Ok so a little update. The second post in this series is taking up some time, because we are remoddeling our house and I cannot access my lab server at the moment.
I have purchased a samsung 1 tb SSD to host my VM's because I was seeing a performance degradation due to IO misbehaviour, probably due to SATA/RAID issues. Have updated the post above to reflect the new test setup.




Little update again. Remoddeling is taking a little longer. I have performed the tests on an isolated server at the customer. Updated the article with all information.


Write comment (2 Comments)

Do you recognize the following? You get a call for support about an issue an user is experiencing. The service desk provides you with some information in the call, but you require more information. Especially, how to reproduce the error? At this point you can do two things. The first is go to the service desk, ask them to call the user and let them figure out what the user is doing  to get the error. The second is, you can call the user yourself and ask them how to reproduce the error.

A problem with both methods is: I am not really good at remembering how applications work, where to click etc, especially if I don't know the application.

Here comes in the ever so handy Problem Step Recorder (psr.exe). You can ask your users to reproduce the problem with PSR enabled and have them attach the recording to the call. This way you won't have to remember how, where and what to click, enter, or whatever. It is well documented and easy to follow.

Write comment (0 Comments)

Setting up LoginVSI is quite easy and fun to do. But when you get into the mix with for-instance RES Workspace Manager, where several options (includig managed applications) are enabled, it will take a while to be able to run a successfull test.

To make life a little easier, I created building blocks for the most commenly used components run from LoginVSI. When importing these building blocks only  thing you need to do, is change the access control, so that you target your LoginVSI users.

Basic steps you need to do:

  • Create a variable called VSISHARE and give it the value of \\<servername>\<vsisharename>
  • Import the building blocks attached to this post and edit the Logon script to be applied to the LoginVSI group
  • Edit the authorized files (the admin note has LoginVSI in it) to be targeted on the LoginVSI group.

Once you are done with this, your environment is set to run the VSI tests.

Download the BB here:

Write comment (0 Comments)
feed-image RSS