On the previous article we covered the basics of
integrating Windows applications on a Linux workstation network. We explained how an almost seamless integration could be acheived by combining Windows Terminal Services, rdesktop and virtualization.
There is, however, a potential problem to solve should we want to be confident on the smooth performance of the system. The terminal server is a multi-user machine. What happens if one process misbehaves and starts consuming all the CPU power? This is far more serious than having an application crash on a user workstation. Seems that we'd need an automatic way to "punish" misbehaving processes. In other words, we'd need
process QoS or
CPU shaping.
The solution we found is called
Process Lasso. Process Lasso is a proprietary tool written by Jeremy Collake that monitors the CPU activity of each running process and lowers the priority of processes consuming too much CPU.
A proprietary tool on a Linux integration project? Well, if you already accepted running a Windows Server with proprietary applications on top, don't give up on the last mile that will save you from many headaches (one of which would be giving up your stable Linux workstations in case the terminal server solution is not reliable enough). Process Lasso is relatively low priced and the support from
Bitsum has been excelent.
Although it supports complex settings like default priorities and CPU affinities, we found that with minor tweaking of the default configuration we were able to considerably improve the system behavior.

The most important window is the ProBalance Settings window, where the thresholds for Process Lasso actions are configured. On a setup with up to 20 users, each of them running the same two applications, we found the above settings to work well.
In the monitoring window we can see the CPU usage and responsivness. We can also see the Action Logs and discover which process IDs had to be de-prioritized and their corresponding users.

Process Lasso is a very useful tool and well worth the money it costs. Combined with the procedures suggested on the
previous article it will help you integrating legacy Windows applications on your Linux network.
Note:As for Linux, the kernel already lowers the priority of CPU intensive processes:
http://www.ibm.com/developerworks/linux/library/l-scheduler/Watching how effective this is for a multi-user Desktop machine may be the subject of a future article.