Archives

Tag Archive for: ‘citrix’

On 29th january I visited the VDI Performance Summit which was organized by LoginVSI. Login VSI provides performance insights for virtualized desktop environments such as Citrix XenApp, XenDesktop, Microsoft RDS and VMware Horizon View.
The summit was, of course, organized around the LoginVSI tool. In this blog post I will tell you the 5 quick takes of the conference.

2019-01-29 11.22.02 2019-01-29 08.54.35 

1. Automated testing with LoginVSI

When you put effort in repeatable tests, you can run the test several time’s and see if the performance of the VDI/SBC infrastructure is increasing, stable or decreasing. This is of course for each performance test, but I think in VDI environments it is not common to run a performance test each month or quarter.
As performance tests are always about reducing risks in production. To avoid huge costs, a good scenario is to run the test against one host and see if you have the desired results in terms of response time and capacity for one host.

2. Performance impact of different Windows versions on your VDI infrastructure

With the introduction of Windows 10 Microsoft is releasing new versions of Windows more often. Mark Plettenberg presented the following sheet in his keynote.

2019-01-29 10.33.32

I found it really interesting to see the decrease in number of users per server. The decrease was also related to the Meltdown and Spectre patches introduced in those Windows versions.

3. Removing all Windows Store apps will give a huge performance boost

Rob Beekmans showed us that removing the built-in Windows App (all the games and other things you probably don’t need except the calculator) will give the most of the optimization. All the other minor things will not result in a huge improvement of users per server / and or lower the cpu usage.

More Users per ServerLess CPU usage

Someone, I forgot who said this, stated that in a performance test the background task of Windows will not run because the system does not get idle. So that needs to be considered before only implementing this optimization in a production environment.

4. Power settings in BIOS can affect the performance test

Servers running on a non-high performance profile in the BIOS / Windows settings will give weird results in the performance tests.

Run all the servers in high-performance mode, which is more economic and sustainable than adding more servers to the environment.

5. Which tools do the experts use to tune & prove the performance?

2019-01-29 11.53.40

This were the tools mentioned in the keynote, but there were also some additions from the audience:

 

Verdict

It was an interesting day in the Johan Cruijff ArenA and I hope that the event will be organized again with new content in an another year.

2019-01-29 08.13.07

Why to have detailed logon information from Citrix?
Sometimes anyone is asking you, the performance is not what we like. Within a Citrix environment it is easy to get into the director to see the overview of the logon times.
By default Citrix Director gives the following information about the logon:

citrix director

However average is a good indication, average is not always the best method to measure something. Digging in to the numbers can be needed to get the exceptions clear.
This blog will shortly explain how to get more detailed information from your database.

What kind of results do you get?
My final report shows the following:

graph

This gives more detailed information about how long users need to wait for a logon. The data in this graph is based on the field InteractiveDesktop from the query below.

But also any table with detailed information can be made. Or query on user, query on VDI name, e.g.

My baseline tools
I used the following tools to create this graph:

  • Microsoft Excel
  • SQL Server Management Studio

The results of the query in SQL Server Management Studio can easily copied into Excel. With Pivot tables you can create this kind of graphs.

SQL code
When you run the following query on the Monitoring Database it will give a lot of output.

/* Citrix Director only gives Average information about logon. 
This query gives detailed and calculated information about the logontimes. */

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT LogonDuration = DATEDIFF(Second, [LogOnStartDate], [LogOnEndDate])
      ,[BrokeringDuration]
      ,[AuthenticationDuration]
      ,GpoDuration = DATEDIFF(Second, [GpoStartDate], [GpoEndDate])
      ,InteractiveDesktop = DATEDIFF(Second, [BrokeringDate],[InteractiveEndDate])
      ,FORMAT([BrokeringDate] , 'dd-MM-yyyy') AS EasyDate
      ,FORMAT([BrokeringDate] , 'HH') AS EasyHour
      ,[Name] AS VM
      ,[ClientName]
      ,[ClientAddress]
      ,[ClientVersion]
      ,[ConnectedViaHostName]
      ,[ConnectedViaIPAddress]
      ,[LaunchedViaHostName]
      ,[LaunchedViaIPAddress]     
      ,[LogOnStartDate]
      ,[LogOnEndDate]
      ,[BrokeringDuration]
      ,[BrokeringDate]
      ,[DisconnectCode]
      ,[DisconnectDate]     
      ,[ClientSessionValidateDate]
      ,[ServerSessionValidateDate]
      ,[EstablishmentDate]     
      ,[AuthenticationDuration]
      ,[GpoStartDate]
      ,[GpoEndDate]
      ,[LogOnScriptsStartDate]
      ,[LogOnScriptsEndDate]
      ,[ProfileLoadStartDate]
      ,[ProfileLoadEndDate]
      ,[InteractiveStartDate]
      ,[InteractiveEndDate]     
  FROM [MonitorData].[Connection]
  LEFT JOIN [MonitorData].[Session]
  ON ([MonitorData].[Connection].[SessionKey] = [MonitorData].[Session].[SessionKey] )
  LEFT JOIN [MonitorData].[Machine]
  ON ([MonitorData].[Session].[MachineId] = [MonitorData].[Machine].[Id])
  
  
  WHERE Convert(date,[LogOnStartDate]) = Convert(date,GETDATE())
            AND [IsReconnect] = 0

Conclusion
Citrix is logging a lot of information in the database, but unfortunately the Director is not showing the information. With SQL query’s there are a lot of options to query this information.
All details about the values in the database can be found here: support.citrix.com
Depending on the Citrix license which is purchased, more or less information is stored in the database. Please keep in mind that old records in the database will be cleared automatically. So make you’re report on time, or create something to save the data.