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
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
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!
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.
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.
Thus, if they run an app for some time (e.g. over a few days) they might run up 30 minutes total CPU time with no real problems. On the other hand, someone could start an app, peg it at 99% for 10 minutes and completely hammer the server.
Operating systems like Solaris have add-ons to achieve system limits like CPU allocations to individual users/groups, but that is NOT ulimit.
Fair enough. I was quick to reply, and ulimit cpu limits aren't quite what the guy is looking for. I bet if there was sufficient demand for such a thing, this could be hacked in as another setrlimit (ulimit) value with minimal effort.
Just to continue being a "12 year old microsoft basher" as the AC response put it: Maybe we haven't seen a need in unix because schedulers work better there, and apps are better behaved?
11*43+456^2
Like I said, you can get similar things and Sun sell some resource management software which is used to guarantee that users/groups get a specified amount of CPU time. In short, there can be a need in Unix, although the schedulers do tend to work a little better.