When its just about CPU time, the Linux kernel is pretty fair: it won't allow any process to choke the others. However, when I/O comes into picture (e.g. the user needs so much memory that other processes need to the swapped out), then the aggressive process is given way too much time slice for his needs.
Note that there are several separate resources involved here, all of which have rotten balancing and prioritization in Linux:
* Physical disk I/O No balancing whatsoever -- any user can degrade performance by swamping the disk, especially with long head seeks. * Process memory Only hard limits are available (RLIMIT_AS, RLIMIT_DATA, RLIMIT_RSS). And when out of swap, the wrong process (e.g., X) might be killed. * Page and dentry cache No balancing. This means "grep -r foo /usr" or "find /" will bring most Linux systems to a disk-grinding halt. * CPU scheduling Allocated reasonably fairly between processes, but not between users with a different number of processes (and the latter is limited only by the RLIMIT_NPROC hard limit).
It seems the only resource that gets a half-decent balancing and prioritization infrastructure in Linux is the network. But even there, you can't easily balance users without adding queueing rules for each user.
Eran
================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]
