My work machine stays up for weeks and often months at a time. In fact, the
only time it gets rebooted is when our office loses power (which is too
frequently, yea I should get a UPS).
People are often shocked at this. How do I keep my system running for so
long, especially given how hard I push it day in and day out while running all
the major components of Object Desktop?
On Windows XP, it's actually pretty easy -- once you know what affects
stability.
It all starts with the task manager. To get to that, hit
CTRL-SHIFT-ESC. When you do that, the task manager in Windows XP will come up.
Whenever you have a problem with your system, whether it be acting slow or
saying it's out of memory or just acting weird, you'll want to pull up the task
manager.
Once you do that, go to the Performance tab. Check and see how
much RAM is in use. A lot of young techies get obsessed with the amount of
memory committed. Don't. Check to see if your CPU meter is pegged too
high, check to make sure you're not using a ridiculous amount of memory (I have
1 gig installed so 419MB in use is no biggie). But most importantly:
Check the handles in use. This is what slows down your system.
The # of handles in use should never grow much beyond 12,000. When you
get to 15,000 handles, weird things can start to happen and you'll feel your
system slow down. This is where most people just reboot. They'll throw up their
hands and say "Well, time to reboot." But that's unnecessary because the task
manager can tell you what program(s) are using up those handles.
So now click on the processes. You'll want to go to View->Select
Columns and choose the items that are chosen here. You want to know
things like the handle count, the GDI objects, and the User Objects. If
any of those numbers are >2,000 on a given item, that item is doing something
bad.
Once you have that set up. Look at the column headers. Sort by the ones I've
highlighted in yellow first. Is something using up most of your CPU? Then kill
it if it's not supposed to. Is something using more than 2000 handles? If so,
you should probably kill that too. Same for User Objects and GDI Objects.
And then finally, sort by memory usage and then VM size. Don't worry too much
about those numbers unless you're running low on RAM. The VM Size column isn't
terribly useful anyway because it double counts libraries being loaded (i.e. a
program that needs to read .PNG files will load a library that uses that but
another one that uses the same library will get that counted too. Mem Usage is
the one to keep an eye on. But again, even there, don't sweat that number
too much unless it's using a signficant percentage of your installed
memory. Internet Explorer is using 21 megs of RAM. Sounds like a lot
right? But that's only 2% of my installed memory. Back in the old DOS days
of 640K 2% would be just over 12K of memory.
CPU, Handles, GDI Objects, User Objects, these are the things to keep an eye
on. If you kill processes that are using up an unusual amount of these
resources, you can keep your system up indefinitely.