On 14/01/05 13:24, Ilya Konstantinov wrote:
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]



Reply via email to