I Love my Hyper-Wee

October 28, 2009

Yes, there I’ve said it, I’m in love with a technology that’s not from AppSense :-)

We had to present at a recent Microsoft Partner event.

Two things Microsoft wanted us to show:

  1. License control for Microsoft Apps in Citrix/Terminal Server/VDI/Streamed App environments, and
  2. How we can simplify Windows 7 migrations.

After a couple of demos from my trusty partner Jacob, they were also all over us about App-V integration.

There was a problem though – none of my demos were running on Hyper-Wee, I mean Hyper-V (must stop listening to PerfMan, his accent is starting to have an effect on me).

So the challenge.

I don’t normally do much between 12 and 6 in the morning, just lying around the house, so let’s rebuild everything on Windows 2008 and Hyper-V.

So a new disk was already available, remove the old one (Dual boot Vista and Win 2003 running VMware Server for VM’s). Demo laptop is a HP (the best) 6710b 4GB ram Dual core 2.4 GHz, with a 300 GB 7200 rpm disk.

Obtain a license, the media and boot up Windows 2008 – 64 bit – yes that’s right, the person who always said 64 bit was not the answer was now asking the question – can I get 64 bit to run all my apps and more importantly will all my drivers work.

To enable Hyper-V you need 64 bit so there was really no option. :-)

The first thing I noticed, Windows 2008 64 bit took around 20 minutes to load!!!!

I sat there thinking there must be something else I’ve missed, surely you can’t load a new O/S in 20 minutes – including the time to format a 140GB partition !!!

But that was it.

Bit of research on the web and now I have to download and run a service pack to get Hyper-V up and running.

Knew there was a catch – the service pack takes about an hour to install :-)

Still not that much effort and time required to get to a new platform. Now the tricky part, what will be the easiest way to get my demo servers back up and running.

More research – turns out there is a freebee download utility available from here http://vmtoolkit.com/files/folders/converters/entry8.aspx which you point at a VMware VM which converts it to a VHD drive, and voila, it runs on Hyper-V.

I did find some extra info about Vm’s that have a SCSI disk as their base – you need to muck around with them a bit and add an IDE disk, so I decided to convert my VMs that used an IDE drive, and rebuild the ones using SCSI.

The longest part of the process was rebuilding the Windows 2003 DC for my AppSense Management Centre.

One thing I was looking for though – a “sleep” mode so I could have my servers boot quicker. When you are meeting a client the last thing you want to do is spend 15 minutes setting up before you start the preso or demo.

I suppose it’s o.k. if you have a big Irishman with you who can tell bad jokes for a while to distract the client, but most of the time I was by myself at appointments.

By accident I discovered the best feature (in my experience) of Hyper-V. Automatically it will snapshot servers if you turn off the host while they are still running. Very cool.

So here’s how my setup for a demo now goes…

08:30 power on laptop, shake hands, exchange cards

08:31 Login to Windows 2008 64bit

08:33 start Hyper-V consoles for my AppSense Management Centre, and my XP desktop

08:34 Demo Environment Manager Personalisation, the crowd goes…..   Oooh…… AAAAAh

08:35 My work here is done

Well not really, but my point is this sucker boots fast, starts my servers faultlessly, and just works.

Of course I have Performance Manager 64 bit running and I have configured it to favour the VM’s as far as CPU and disk priority goes and this definitely helps.

I’m a bit old school, so if I can get something that works for me, I’ll just stick with it. It takes a rocket – or a Microsoft Partner event – to get me to change.

But now that I’ve jumped the 64 bit fence, I’m glad I’m here :-)

Only thing I do have though, is how do I get my Wireless LAN on my notebook working – damn those 64 bit drivers :-)

Another Happy Performance Manager Tester – More Users, Less servers

August 17, 2009

Spoke to another client today who has been testing our Performance Manager software. We went through the usual questions on the first webinar:

How many users per server? Do you have slow downs or lockups? Do user complain about performance? How many servers etc.  Then, we did the standard 30 minutes setup over the phone, put the product agents on a production box, gave him our normal advice on load balancing and a few days later his results looked like this:

Before AppSense, 15-20 average users per server, some slowdowns experienced during most days.

After AppSense, 26-30 users per server, no slow downs experienced, all users having noticed improvements.  The CIO was on board and Purchase order in the works :-)

While I was on the phone, however, “PerfMan” storms into the office.

No shy and retiring petal our PerfMan, he’s always running around telling people, “You Must Test, You Must Test”. Normally he’s a nice friendly character who, unfortunately was born with a speech impediment, which means he says “WISTA” instead of “VISTA” and “HYPER WEE” instead of “HYPER V”, but on this day he was on a mission.

Seems a couple of techos tried to convince him the new Windows System Resource Manager in Windows 2008 R2 was going to take over the world and his product would be relegated to older servers only- yeah right!! I suppose they’re the same techos telling their clients to use NTBACKUP instead of buying a Third Party backup product :-)

True there is more base level functionality built into every new version of Windows and every new version of Citrix, but it’s all about what the clients need, and what the base level can deliver.

We’ve heard it all before, when Citrix introduced base level performance management into their PS3 product, some people told us our Performance Manager product would fade away, and that PerfMan would have to find a new job selling Knackwurst and beer to tourists.

Funny thing was exactly the opposite happened – because clients now had base functionality to test – so guess what – they tested it. So then they looked around at what else was on the market – AppSense Performance Manager of course – tested the product – saw amazing results – bought the product and started saving time and money.

Built-in, base level functionality for any feature will provide benefits to somebody, but usually only for small organizations who have very basic requirements. The reality is, most organizations will gain real benefits and real savings from Performance Manager – they just need to test and see the results.

So remember the chant from PerfMan, “You Must Test” “You Must Test” – test PM properly – see the results – save the money – it’s that simple.

PS – The new CPU/Memory management features don’t make it on Microsofts’ Top Ten reasons for going Win 2008R2, but the new version of NTBACKUP does :-) Better test that as well.

VDI Personalization and Configuration: Profile Management & Logon Scripts – not enough for multiple delivery mechanisms & OS platforms?

July 24, 2009

As a leading user environment management vendor, AppSense are in a unique position in that we have been involved many VDI projects and rollouts, of which the majority vary in architecture, technology and requirements.  One thing that does however remain the same between such projects is that of the requirement for user personalization management.

For many years the roaming profile provided user personalization in SBC environments, however as VDI deployments become more and more complex, with varying methods of desktop and applications delivery, along with multiple desktop operating systems and subsequently, profile versions, the roaming profile is no longer able to provide the user with their required settings in such (complex?) scenarios.

Furthermore, these desktops must now be constructed and configured based on the context of the user and/or connecting device.  i.e. mapping specific printers local to the user and device dependent on the location of the user logging on, or applying security policies to hide or remove access to network drives, folders, data and functionality such as copy and paste or print, again, based on the location of the user.  Whereby the desktop delivered to a user when connected locally inside the corporate LAN is different to that of the desktop delivered to the same user when connecting remotely from outside of the LAN.

One more point to consider is that of enabling the user to freely roam between the server hosted or provisioned virtual desktop, and the users local desktop device such as their PC or roaming laptop.  How do you as IT enable user settings to automically follow the user between different platforms?

AppSense Environment Manager was designed from the ground-up with functionality to accommodate the above requirements, making it, or, other user environment management solutions essential to the mass adoption of VDI on an enterprise scale.  In essence, AppSense provides the ability to encompass multiple delivery technologies and OS platforms by allowing the user to roam between the paradigms without any noticeable change to their desktop or user experience, enabling IT and the organization to benefit from flexibility, agility and lower TCO.  I do at this point want to highlight that this is different to the personalization management provided by the leading VDI vendors (Citrix, Microsoft, VMware etc), as their in-built functionality is typically designed for their delivery platform, not each other’s.   In essence, further to the advanced personalization and simplification of desktop management, AppSense also enables an organization to use combinations of both existing technologies, and (potentially) more importantly, any future VDI delivery technologies and vendors.
I have just found a very nice blog covering the functionality of not only AppSense Environment Manager, but also the base technology inherent within the leading VDI service providers – Citrix, VMware and Microsoft.  Hopefully from this blog post, and the information over at GenerationV, you will see how AppSense bridges the gap between the roaming user and a dynamic, flexible VDI model..

For more information on this, the GenerationV Profile Management blog can be found here

Fair-Sharing CPU usage on Citrix XenApp to ensure Quality of Service and Faster Response Times (With AppSense Performance Manager)

July 23, 2009

The Server Based Computing (SBC) such as Microsoft Terminal Server and Citrix XenApp model offers many unique challenges for both architects and administrators. There are concerns of security, availability of resources, performance and the costs of hardware, licensing and ongoing management. Due primarily to opportunities for cost reduction in hardware purchases however, server consolidation through ‘optimizing performance’ has been the main area addressed. Fewer servers also result in lower licensing costs, lower maintenance overhead, and reduced electricity and cooling costs. However, it has now become apparent the real issue with performance is not just financial, but one of user experience. There is an ongoing tradeoff betweenensuring users receive a consistent ‘end-user experience’ while maintaining the minimum amount of hardware. 


Before considering CPU usage, management and optimization, it is first necessary to clarify CPU usage. When a figure such as 60% CPU usage is quoted, what is actually meant is the CPU is being utilized at 100% for 60% of the time. This shows a high CPU value is actually an efficient use of resource, rather than a problem.


A CPU utilization of 100%, while considered a problem by many, actually means maximum use is being made of this resource, and therefore achieving maximum return on investment. Problems occur when requests exceed 100% CPU utilization, whereby resource contention and bottlenecks are formed – although, this can be solved by efficiently allocating the resource between the users and running applications.

AppSense Performance Manager is able to control CPU usage in many ways, and may be used to not only resolve CPU usage issues, but also to ensure CPU resource to mission critical applications and users.  In this post I want to cover one specific feature function within AppSense Performance Manager – Smart Scheduling, or sometimes known as CPU Fair Sharing.

Smart Scheduling
With Microsoft operating systems, during process initialization, a priority is assigned for the process to run under. Microsoft Windows 2003 has the following priorities:-
Realtime, High, Above Normal, Normal, Below Normal, Low.

A process which has a higher priority will be allocated CPU prior to a process with a lower priority. Most applications when launched are given a ‘normal’ priority. This means that these processes form a ‘queue’ for the CPU and will receive CPU time only when it is their turn. There are a few standard system processes which are assigned a higher priority, such as the ‘Windows Task Manager’ which is automatically assigned a ‘high’ priority. This ensures should the Task Manager process require CPU time it will be given it immediately.

A process may consume a maximum amount of CPU time, known as the quantum time. If the process does not require the full quantum time, for example if it requires further data, it is able to release the process prior to completion of the quantum time, thereby allowing another process access to CPU resource.

When an application Launches, there are many calls to the disk to access new data, and therefore the process consumes small parts of the quantum time. Processes which involve a large number of calculations, such as highly mathematical applications, tend to use all of the CPU quantum time and are therefore CPU intensive.  If the timeline of processes within the CPU are mapped out the problems become immediately apparent.

For example – Below, Process A is Microsoft Word launching; Process B is a resource intensive Microsoft Excel macro.



Scenario 1:- Only Process A is running in this scenario, the application performs at full speed as it gets CPU resource when required and disk resource when required.


Scenario 2:- Process A and Process B running. In this scenario it is evident that process A has been dramatically slowed down as there is a length of time where it is waiting for process B to relinquish the CPU. This can have dramatic effects on the responsiveness of the process, and obviously increases the time to wait. As process A and B both have equal priorities one process has to wait for the other to finish.

AppSense Performance Manager includes ‘smart scheduling’ technology that is able to share the CPU resource more efficiently between running applications. The priorities of the process are altered dynamically. The result being that processes requiring a small amount of CPU time tend to be given a higher priority than those which tend to monopolize the CPU.


In this way the CPU time is divided equally amongst both processes ensuring that each has a share and no one process is hogging the CPU, causing others to wait. Process B receives much smaller chunks of CPU time but similarly its waiting time is also short, ensuring that the application appears responsive to the user, and therefore still falls within its time to wait. The effect of this process is greatly reduces the CPU queue length.

By interpolating between standard priorities, and dynamically adjusting the priority of each process, AppSense Performance Manager is able to ensure more efficient processor usage. More importantly, from a user perspective, no application is seen to “freeze”, ensuring application responsiveness falls within the acceptable ‘time to wait’ period.

Share Factors
In the above examples we assumed both process A and B are equally important and therefore require an equal use of resources. In most cases this is not a true representation of applications and users. Servers contain both mission critical applications and also users with varying degrees of ‘importance’. By implementing share factors within AppSense Performance Manager, these applications and/or users may be given a higher or lower share of CPU time.

If the process A is a mission critical process then it may be assigned a higher share factor. The effect of this is to raise the priority of the process so that it may have a longer CPU time before process A is given a higher priority.


Here process B has been given a higher share factor resulting in process A waiting on process B. The difference now is the time process A has to wait is a value which is configurable by the Administrator. A further function of AppSense Performance Manager is the ability to apply application or system state control. An application may be defined as having a high share factor when in the foreground, a medium share factor when in the background, and a low share factor when minimized.

If we now look at things from a user point of view, the application they are currently working on will always be guaranteed to receive CPU time, and can therefore always be made to function within its required time to wait, hence “performing well”. Other processes continue to receive a share of CPU time ensuring that they also function. One key system state for SBC systems is the ‘disconnected’ state.

By assigning a relatively low priority to all other states we can ensure that users who disconnect from the server without logging out properly, do not continue to consume valuable CPU resource which is then made available to all other users.

In conclusion, Microsoft Windows operating systems go some way to addressing how applications make use of system resources, but it is clear that in situations of high resource usage, such as in SBC environments, they are challenged. AppSense Performance Manager addresses these shortcomings. It provides many methods of controlling critical system resources such as CPU, Memory (both physical and virtual) and Disk. It’s CPU scheduling algorithm ensures that even in times of maximum CPU usage the server remains responsive for each user and application. If necessary, weighting may be given to ensure minimum response times for mission critical applications and/ or users.

AppSense Technical University Training For Partners

July 22, 2009

I am excited about writing this one, the much awaited 2009 AppSense Technical University is soon upon us! It will take place in October and November!!  Following on from our previous events, there are some exciting new developments at AppSense that we would like to share with you; amongst other topics:

  • User Introduced Applications (UIA) Technology – do we need, and how do we enable, users to install applications into non-persistent VDI sessions, and have the applications (and settings and preferences) remain available in the next non persistent vdi session?!
  • AppSense Management Suite Version 8.1 Product RoadMap
  • ‘Policy & Personalization’ best practices across virtual and multi OS platform environments



Why attend the AppSense Technical University?

The AppSense University is a ‘free of charge’ event to our AppSense Certified Solution Partners, and is a great chance to meet up with the AppSense Technical teams, as well as your peers from within the community. As a valued member of our Certified Solutions Partner program, you are invited to this comprehensive technical update and networking event.

The 2 day event will include in-depth, hands on training designed to enable you to provide consultancy services and implement the AppSense Management Suite for prospects and customers.

Register for further information

As always, AppSense is hosting several Technical University events in locations around the globe. If you are interested in attending an AppSense Technical University, click on the country or region most relevant to you and we will keep you informed of the event details:

United States, November 2009 

United Kingdom, October 2009

Norway, November 2009

DACH Region, November 2009

BeNeLux, November 2009

Australia, October/November 2009

We look forward to seeing you there!

Best Regards,

The AppSense Technical University Team.

Website: http://www.appsense.com
Email: university@appsense.com
Telephone: +44 (0)1928 793 444

More Users Per Citrix XenApp Server With AppSense When Using JD Edwards

July 7, 2009

Oracle’s JD Edwards is a leading ERP solution that is commonly delivered using Microsoft Windows Terminal Server and/or Citrix XenApp.  AppSense Performance Manager can be deployed in this scenario to ensure a maximum Return On Investment by increasing the number of users per server, to reduce infrastructure and server management costs, overall TCO, and improve end user experience & quality of service.

Applications which use large amounts of Physical and Virtual memory limit and reduce the number of concurrent user sessions which can be supported on each server. Typically with JD Edwards EnterpriseOne, the number of concurrent users will be in the range of 25 – 35 before resource issues start to impact end user performance, application responsiveness and overall quality of service.

As you can see in the screenshot below, JD Edwards typically uses a very large amount of Memory and CPU:


With the introduction of AppSense Performance Manager to automatically trim back allocated, but unused, phyic al memory (allowing it to be redistribuated back into the resource pool), the screenshot below shows how the JD Edwards applications now use only a fraction of the Memory they used to:



You can see the effect primarily by the lower numbers in the “Mem Usage” column. This column shows the amount of Physical Memory in use by the application. In many cases less than 1MB of memory is used by the application.

When the activeConsole.exe process is started, when it goes idle, when a user disconnects, and when their session enters a “desktop locked” state, the physical memory is trimmed back. Any excess memory allocated to the application, but not used, will be returned to the Available Memory pool, ensuring there is always free memory for new user processes. Virtual memory is reduced by creating shareable copies of application components. These components are only loaded once, and can be shared across many users. This can result in typical Virtual memory savings of up to 40Mb per JD Edwards user..

By efficiently managing CPU, Disk, Physical and Virtual Memory resources, the number of concurrent users per server can be increased by at least 40%. This means 25-35 concurrent users can easily become 35 – 50 users per server.

Application deployment via Microsoft Terminal Services or Citrix XenApp is a common method of providing greater access with centralized management to ERP applications like JD Edwards EnterpriseOne.

AppSense Performance Manager can improve the Return On Investment of these application deployments by managing critical system resources, and increasing concurrent user numbers by at least 40%.