Threadlocker 128x128

ThreadLocker 2.0 is live!

Threadlocker 128x128Back in 2012 I wrote a utility called “ThreadLocker” for dealing with CPU heavy processes or multi threaded processes that have a nasty tendency to cause sluggish performance or even hangs in shared computing environments.

You can read all about the original concept here. My good friend and fellow CTP Barry Schiffer also wrote a really good article about the need for a product like ThreadLocker here.

 

Some history:

In essence, ThreadLocker was a utility for both shared and 1:1 desktop environments. It allowed you to layer in rules for processes that had a history of high or discruptive CPU usage, to protect the other users (in a shared environment) or to protect other running processes and the users interface (explorer.exe) while a large compute job was occurring.

ThreadLocker exploded with popularity and has received well over 100,000 downloads in the last three years. Alike ThinKiosk, ThreadLocker is a tool I regularly come across in my customers environments while consulting and it always suprised me with it’s uptake and popularity. I have observed ThreadLocker in VDI, SBC and even on stand alone workstations with great levels of success.

 

Moving on:

One of the frustrations I had with ThreadLocker, was any .NET based language (c#, vb.net, etc.) was never quick enough to be able to add an intelligent aspect to the utility without actually making CPU usage worse by implementing. ThreadLocker 1.0 relied on static rules and any new processes would have to be observed and added.

Recently David Coombes and I undertook the side project of redesigning ThreadLocker to run in c++, adding the raw speed we needed to be able to make intelligent decisions based on CPU usage and react in a fraction of a second to a sudden CPU spike. ThreadLocker 2.0 was designed to specifically tackle two issues:

  • Processes comsuming a large % of CPU and is multithreaded.
  • Many buggy or heavy processes, each consuming a core each.

We didnt want to tackle this with the approach of many others, where they’ll pause and resume threads many times a second creating a “SawTooth” effect on the processes CPU usage. We wanted the processes to run as fast as they need up to a certain threshold and only be restricted when contention is likely.

Having experienced other vendors approaches where process priority is dropped, many times this simply does not cut it as a heavy process, even at idle priority, will cause the other users and processes to feel slow and sluggish.

Why is ThreadLocker different?

With ThreadLocker 2.0, you can elect a percentage of your CPU cores that ThreadLocker can use for isolating these processes. When a process violates the ThreadLocking criteria, they are locked into these subset of cores to contend with any other processes that are also ThreadLocked, leaving well behaved processes to be able to take advantage of all cores in system. Once they start to behave again and do so for a certain amount of time, the processes are dropped back into the “wild” unless they decide to misbehave again.

This approach is extremely fast (ThreadLocker consumes less CPU than Microsoft’s own Task Manager) from a processing point of view and also has the benefit of allowing users to multitask with other applications while, for example, Excel hammers the ThreadLocking cores during a calculation.

The end result has been fantastic. Threadlocker can be installed and up and running in seconds. There is no longer a requirement for static rules and out of box, all aspects of the logic can be tuned to suit your environment, but more than likely wont be needed.

 Demo Video:

 


Availability

We are proud to announce the general availability of ThreadLocker 2.0 and more information can be found on our website at http://www.thinscaletechnology.com/threadlocker.

 

Windows_PowerShell_icon

Dealing with multi numbered versions in powershell.

Windows_PowerShell_iconSo here’s a quick little blog about something i discovered in powershell while googling today.

Lots of vendors like to use version numbers including Major.Minor.Build.Revision.

An example of a vendor I was dealing with recently was Citrix themselves.

versionexample

The problem is, in powershell, it’s not that easy to take a string (text) representative of these, split it up then label it yourself. you’re splitting, taking objects in an array, assigning them values… nasty.

string

Did you know .Net has a native ability to do this?

Introducing system.version

Now with system.version, it’s very easy to do comparisons! Just cast your string into a [system.version] as below:

version

 

After that, just compare the major, minor, build or revision at will!

example2

 

Happy version comparing!

Creating an automated VMware Horizon RDS Pool with Horizon 6.2

 

horizonSo VMware Horizon 6.2 was announced at VMworld just a week ago and the one feature I sorely wanted to see was automated provisioning (golden image management) of a Microsoft Remote Desktop Services farm.

The provisioning process is fairly straight forward, so in this blog post I’ll walk you through the steps to avoid any issues.

Prerequisites:

  • Download the Agent, Connection Server and Composer software.
  • Upgrade your Connection Servers to 6.2.
  • Upgrade your Security Servers to 6.2 (remember you’ll need to repair with the connection servers).
  • Upgrade your Composer.
  • A Microsoft RDS server.

Continue reading

New Free Tool: Citrix Director Notification Service

DirectorNotificationCitrix Director for XenApp and XenDesktop can be a great utility for information about your Application / Desktop virtualisation environment. In Director you can find a wealth of information about the provisioned assets, the Controller, Licensing and Hypervisor status and the current running resources.

One area it’s always lacked is real time alerting. In order to really know what’s going on in your environment you need to be logged into director and watching. This is less than ideal and few monitoring vendors have endeavored to actually pull this data into their own solutions.

With the help of Rachel Berry, Prateek Kansal and Sridhar Mullapudi from Citrix. I set about diving into the logic and monitoring options within the FMA architecture. Citrix did a great job here and most if not all of it was readily available in PowerShell and oData. So, with the help of Citrix and a little bit of hard work, I’m very pleased to announce my latest free tool!

Continue reading

ThinKiosk

ThinKiosk 4.5 is here!

ThinKioskJust a quick blog post to let you know ThinKiosk 4.5 is here and with it comes a huge list of new features and functionality requested by you.

ThinKiosk 4.5 is a big update, so without further ado, lets get right to it:

ThinKiosk Broker Service:

  • HA features are now available in the ThinKiosk Broker.
  • The Broker service can now utilise Microsoft SQL for the database and an easy migration utility can be utilised to do so.
  • Brokers can now be load balanced via Citrix Netscaler or Microsoft DNS round robin.
  • The ThinKiosk Broker can now deliver software updates directly to clients.
  • The ThinKiosk Broker can now authenticate against active directory.

ThinKiosk Client:

  • The ThinKiosk receiver functionality has been moved to the applications tab in our new ThinScale Connector functionality.
  • The Client can now communicate directly with Microsoft RDS Broker services. Allowing customers using Microsoft RDS or VDI to use ThinKiosk to connect, enumerate and launch resources within ThinKiosk, without RDP files.
  • The Client now supports password changing and legal notices for the ThinScale Connector.
  • The Client now supports “auto launch” logic to specify which desktops to auto launch on logon.
  • The Client now starts up at least 40% quicker than previous versions.
  • The Client’s communication logic has been redesigned to allow management even when nobody is logged in.
  • The Client now supports central software updates from the Broker, allowing push software updates.
  • The Client now has an authentication API for use with Imprivata tap and go cards or similar technology.
  • The Client is now smart enough to detect DNS round robin when connecting to a Broker and will use the list retrieved from DNS as a broker list to try when starting up.
  • The Clients will delete stale or old user profiles periodically to keep machines clean.
  • Many, many improved administrative features allowing ease of access to the system for administrators.

 

We’re extremely proud of this update and we look forward to hearing from you!