Setting CPU Priority on NT/Citrix?
Broue Master asks: "I was recently faced with the task of finding a way to prevent some users from taking 100% cpu time in Citrix. I'm no MS certified anything (but I am a Citrix certified admin) and I couldn't find a built in way to do this. After someone on the NTSysAdmin List suggested trying to set the CPU priority to low from the command line, I investigated and found a small freeware that did the trick: PrioSet. I don't have a big user base: 3 power users (who are my problem with their Access and Excel use) and 10 regular users (and the people most affected by the problem). I'd like to know if any of you have previously tried this software, or if you've run into the particular problem when one user is getting 99% of the CPU for a long time while all other users only share the spare 1%. Did the software solve the problem or did you solve the situation by other means?"
...like the old days...
Though if you could find a way to do that, you might be able to convince your 'power users' to mind their manners. How about a contest every week...whoever uses the least CPU gets free beer?
After someone on the NTSysAdmin List suggested trying to set the CPU priority to low from the command line, I investigated and found a small freeware that did the trick: PrioSet.
/? into the prompt - it can start processes at different priorities. So you can replace direct shortcuts to your applications with .bat files that in fact start the application at a different priority.
Type start
Change the shortcut that users launch Access & Excel with to point a CMD, shell or Perl script that launches Access or Excel, then sets drops the priority. It's pretty easy to use Perl to launch and control office applications.
Another route may be to move the access database to an RDBMS, which may use less CPU horsepower than using Access as a client/server.
Conformity is the jailer of freedom and enemy of growth. -JFK
NT on Citrix ? Wow, that's an archeological found :D !
just kiddin'
n-e
Access is a terrible resource hog. The best thing you could do is tell them to stop using it, they will thank you for it in a short time.
If the problem is 16 bit DOS apps, Tame can help.
Also, when you installed Office, did you run the appropriate app-tuning script afterward? (Search in x:\wtsrv for *.cmd and you'll find a whole bunch of them.) These scripts can make a big difference with certain versions of Windows.
You might also try the MetaFrame Installation and Tuning Tips. You might find a more recent version if you dig around.
"Lawyers are for sucks."
- Doug McKenzie
You can reduce the priority of the given app but any system processes used by it (api calls, drivers, software raid etc) can still use up that cpu/io anyway. Don't think I ever saw a workable solution for this, which is why i'm glad I don't have to write software anymore where I get told at the last minute 'oh by the way all the users will be running on the same citrix box'
seany
Dear slashdot; Some of my users are doing actual work, and it's making the rest of the users look bad. By doing work they show that we've bought underpowered hardware for too many users. How can I make them not do work so I get to keep my job?
How many DECADES have unices had ulimit support working by default? Wake up Micro$loth, here's another innovation you're completely missed the boat on.
11*43+456^2
ask microsoft or citrix. go buy their books or their cdrom reference libraries.
you paid for licenses and support, now go get your money's worth. why are you asking a bunch of (mainly) free software people who probably don't know the best answer?
and if you think we do, why don't you use the software we use?
US Citizen living abroad? Register to vote!
You can set the priority of any given task by right-clicking on the process in Task Manager. If you've got admin rights, and have "Show All Processes" ticked, you'll be able to set the priority for any user's task from within your Citrix session. I'm not sure whether this information will persist between sessions; you'll have to try that yourself. If you've got more than one server, put the three power users on one, and the other 10 on the other.
Or most other BSD's out there include per user resource managment, you can restrict every resource imaginable.
Fascism should more appropriately be called Corporatism because it is a merger of State and corporate power.
As long as the suspensions are done quick and often there is usually no visible difference, except that the process takes a lower percentage of cpu time. Admittedly I've only used this sytem before to make processes self throttling, but there is no reason why it shouldn't work for third party processes.
Obviously it would take a bit of tuning to get right, particularly if the access processes aren't competing with anything else most of the time, but it shouldn't take more than a hundred lines of code.
Erm, yeah, or you could just run them at a lower priority.
I once heard of a similar problem with a NT server running Terminal Server and several users accessing it from a UNIX machine. The CPU usage of Excel would suddenly go to 100% and stay there.
Apparently, users used Shift + arrow key to switch to another virtual desktop. Unfortunately Excel went into a busy loop after the Shift key was pressed (it was busy waiting for the next key) and stayed there until the user switched back to the Terminal Server window. This resulted in Excel taking the entire CPU.
Without knowing any of the technical details (nor ctrix, nor Windows), may I suggest you buy two boxes. Put the three power users on one, and let them fight over the cpu. Put the remaining nice users on the other, they'll have a lot of power. Everybody gets what they deserve. for a price that is probably less than it would cost to locate and implement a fair sharing system.
Use MetaFrame for UNIX and OpenOffice instead!
We found in the past that even without power users single-CPU Citrix boxes have stinky performance. Dual CPU's help a lot - single Excel or Word threads still leave the other CPU available. We typically have 20-30 users per dual CPU box and don't get complaints.
I know this is not the answer you are looking for, but wouldn't it just be so much easier to let the three power users run Excel locally on their own PCs rather than on the server? They are probably already using 800MHz+ PCs as the 'thin clients' - that is more than adequate for most Excel tasks.
Unless they really need to jump from desk to desk, I'm sure they'd get much better performance, and the other users would be happier too.
You buy proprietary software because you expect it to be supported. Go ask there. Or ask yourself why you are not. Or why you think you can run a product that you are not trained to administer.
You could try products from the company I work for. Check out http://www.aurema.com. Allows setting of CPU shares by user, and is highly customisable.
In Soviet Russia, the CPU sets YOUR priority!
Likewise Excel can be a CPU hog or a disk hog, depending on what people are using it for, keeping lists of things or doing monster LP problems.
How is the citrix server set up, does it contain all the apps and user data or is some off loaded onto other networked servers? I would suggest you need 300MHz of CPU per a user so for example 10 users=3GHz, say 2x1.5GHz Xeons/P4's, and at least one m/c to store user either user data on OR the applications i.e. seperate them to help avoid disk bottlenecks
This is a common problem with both NT4.0 Terminal Servers and Terminal Services under Win2K. Many applications, often written for the desktop, just don't play well in a multi-user environment like this.
There are a lot of methods to calm down CPU-hogging apps. Some can be tamed by registry settings, others by utilities (like Tame), and others by server tuning apps like TScale, made by RTO Software.
All of these things are discussed on TheThin.Net website (and the associated mailing list), considered by many to be the best source of freely-available thin client computing info on the 'net. I suggest you check it out, and read the FAQs and archives.
-Jeff Gunn