Char said:
I was trying to get past the 'probably' and on to the 'definite'.
Watching a program allocate available memory reminds me of one of my
customers for whom deleting a file takes three steps:
1. Delete the file.
2. Navigate to the Recycle Bin to make sure it's there.
3. Empty the Recycle Bin ("to make room for the next thing".
Anyway, if a program allocates a bunch of memory that is otherwise
just sitting there unused, my reaction is, "So what?" That's what
memory is for, and if the program eventually crashes the system,
reboot and come back to let us know because crashing the system isn't
normal, but using available memory is perfectly normal.
I'm puzzled by all the comments I can find on this subject, that
engineering anything to use all available resources is a good
thing. Windows is a multi-account system, with stuff which can
be scheduled to start at any time. Inadvertently, a user could
be running a CHKDSK, at the same time some other (hog) process has
been launched. Perhaps the combination of the two, results
in extremely sluggish performance, with neither process finishing
when desired (i.e. the CHKDSK you wanted done overnight, is not
complete).
If this was such a good engineering call, perhaps CHKDSK could
shut down the OS completely, evict all other processes, and run
exclusively itself. Then, there would be no argument about
the engineering call. If CHKDSK owned the entire machine, like
sitting in an MSDOS black windows, chomping on your disk drive,
you'd be in no position to argue with it, or do other work. There
would then be no questions in your mind, about memory usage,
because there is basically nothing you can do...
At least on the Unix boxes I used years ago, there was an easy
thing to use called a memory quota. You could set it as a user,
so that the processes you were forking, could not "run away" on
you. In the situation OREALLY is in, you could on the Unix box,
set the quota to half available memory, and then the other half
of memory can be used for other things. That leaves room for
all the processes which may be automatically scheduled to start,
that you don't have control over.
The quota scheme was "per process", and it would not prevent
a system from being bogged down. If you set the limit to half
of the available memory, and launched three programs that
went to the limit, there would be swapping. But what that
limiter did do for you, is give you control over the exact
kind of behavior CHKDSK is exhibiting. Namely, the ability
to take a program with "infinite" appetite, and determine
"what it could eat". If you know a single program has "bad behavior",
the quota setting for memory would take care of it.
Windows may have a similar functionality, but it isn't nearly
as easy to get to. I haven't seen the exact registry entry
yet, to do that. Maybe some policy editor has a setting for it.
Paul