From: James A. Sutherland <jas88@cam.ac.uk>
To: Jonathan Morton <chromi@cyberspace.org>
Cc: "Joseph A. Knapka" <jknapka@earthlink.net>, linux-mm@kvack.org
Subject: Re: suspend processes at load (was Re: a simple OOM ...)
Date: Sun, 22 Apr 2001 21:35:14 +0100 [thread overview]
Message-ID: <ssf6etkhgrc2ejgcv22ophdj7pb5fbifbk@4ax.com> (raw)
In-Reply-To: <l03130313b708dedad0c4@[192.168.239.105]>
On Sun, 22 Apr 2001 20:30:50 +0100, you wrote:
>>>>>- Login needs paging in (is suspended while it waits).
>
>>>But login was suspended because of a page fault,
>>
>>No, login was NOT *suspended*. It's sleeping on I/O, not suspended.
>
>So, the memory hogs are causing page faults (accessing memory which is not
>currently resident), login is causing page faults (same definition).
>What's the difference?
The number of page faults, the size of process. One is a huge process
generating large numbers of page faults over a period of time,
contributing a large amount to the VM load.
>>>>Not really. Your WS suggestion doesn't evict some processes entirely,
>>>>which is necessary under some workloads.
>>>
>>>Can you give an example of such a workload?
>>
>>Example: any process which is doing random access throughout an array
>>in memory. Let's suppose it's a 100 Mb array on a machine with 128Mb
>>of RAM.
>
>>How exactly will your approach solve the two process case, yet still
>>keeping the processes running properly?
>
>It will allocate one process it's entire working set in physical RAM,
Which one?
>and
>allow the other to make progress as fast as disk I/O will allow (which I
>would call "single-process thrashing").
So you effectively "busy-suspend" the other process - it's going
nowhere, but eating I/O capacity as it does so.
>When, after a few seconds, the
>entirely-resident process completes, the other is allowed to take up as
>much RAM as it likes.
i.e. it resumes proper execution.
>If I've followed my mental dry-run correctly, the entirely-resident process
>would probably be the *second* process to be started, assuming both are
>identical, one is started a few scheduling cycles after the other, and the
>first process establishes it's 100Mb working set within those few cycles.
>
>If, at this point, your suspension algorithm decided to suspend the
>(mostly) swapped-out process for a few brief periods of time, it would have
>little effect except maybe to slightly delay the resumption of progress of
>the swapped-out process and to reduce the amount of disk I/O caused while
>the first process ran to completion.
If you truly allow the second process to be starved entirely of
memory, yes. At which point, it's suspended, and you've just copied my
solution (and Rik's, and that used by a dozen other Unices.)
>>>I think we're approaching the problem from opposite viewpoints. Don't get
>>>me wrong here - I think process suspension could be a valuable "feature"
>>>under extreme load, but I think that the working-set idea will perform
>>>better and more consistently under "mild overloads", which the current
>>>system handles extremely poorly. Probably the only way to resolve this
>>>argument is to actually try and implement each idea, and see how they
>>>perform.
>>
>>Since the two are not mutually exclusive, why try "comparing" them?
>>Returning to our car analogy, would you try "comparing" snow chains
>>with diff-lock?!
>
>I said nothing about comparison or competition. By "each idea" I *include*
>the possibility of having the suspension algorithm *and* the working-set
>algorithm implemented simultaneously. It would be instructive to see how
>they performed separately, too.
Perhaps, but they tackle different problems.
James.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/
next prev parent reply other threads:[~2001-04-22 20:35 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-19 14:03 Jonathan Morton
2001-04-19 18:25 ` Dave McCracken
2001-04-19 18:32 ` James A. Sutherland
2001-04-19 20:23 ` Jonathan Morton
2001-04-20 12:14 ` Szabolcs Szakacsits
2001-04-20 12:02 ` Jonathan Morton
2001-04-20 14:48 ` Dave McCracken
2001-04-21 5:49 ` James A. Sutherland
2001-04-21 19:16 ` Joseph A. Knapka
2001-04-21 19:41 ` Jonathan Morton
2001-04-22 10:08 ` James A. Sutherland
2001-04-22 16:53 ` Jonathan Morton
2001-04-22 17:06 ` James A. Sutherland
2001-04-22 18:18 ` Jonathan Morton
2001-04-22 18:57 ` Rik van Riel
2001-04-22 19:41 ` James A. Sutherland
2001-04-22 20:33 ` Jean Francois Martinez
2001-04-22 20:21 ` Jonathan Morton
2001-04-22 20:36 ` Jonathan Morton
2001-04-22 19:01 ` James A. Sutherland
2001-04-22 19:11 ` Rik van Riel
2001-04-22 20:36 ` James A. Sutherland
2001-04-22 19:30 ` Jonathan Morton
2001-04-22 20:35 ` James A. Sutherland [this message]
2001-04-22 20:41 ` Rik van Riel
2001-04-22 20:58 ` James A. Sutherland
2001-04-22 21:26 ` Rik van Riel
2001-04-22 22:26 ` Jonathan Morton
2001-04-23 5:55 ` James A. Sutherland
2001-04-23 5:59 ` Rik van Riel
2001-04-21 20:29 ` Rik van Riel
2001-04-22 10:08 ` James A. Sutherland
-- strict thread matches above, loose matches on Subject: below --
2001-04-13 16:20 [PATCH] a simple OOM killer to save me from Netscape Rik van Riel
2001-04-16 12:17 ` suspend processes at load (was Re: a simple OOM ...) Szabolcs Szakacsits
2001-04-17 19:48 ` Rik van Riel
2001-04-18 21:32 ` Szabolcs Szakacsits
2001-04-18 20:38 ` James A. Sutherland
2001-04-18 23:25 ` Szabolcs Szakacsits
2001-04-18 22:29 ` Rik van Riel
2001-04-19 10:14 ` Stephen C. Tweedie
2001-04-19 13:23 ` Szabolcs Szakacsits
2001-04-19 2:11 ` Rik van Riel
2001-04-19 7:08 ` James A. Sutherland
2001-04-19 13:37 ` Szabolcs Szakacsits
2001-04-19 12:26 ` Christoph Rohland
2001-04-19 12:30 ` James A. Sutherland
2001-04-19 9:15 ` James A. Sutherland
2001-04-19 18:34 ` Dave McCracken
2001-04-19 18:47 ` James A. Sutherland
2001-04-19 18:53 ` Dave McCracken
2001-04-19 19:10 ` James A. Sutherland
2001-04-20 14:58 ` Rik van Riel
2001-04-21 6:10 ` James A. Sutherland
2001-04-19 19:13 ` Rik van Riel
2001-04-19 19:47 ` Gerrit Huizenga
2001-04-20 12:44 ` Szabolcs Szakacsits
2001-04-19 20:06 ` James A. Sutherland
2001-04-20 12:29 ` Szabolcs Szakacsits
2001-04-20 11:50 ` Jonathan Morton
2001-04-20 13:32 ` Szabolcs Szakacsits
2001-04-20 14:30 ` Rik van Riel
2001-04-22 10:21 ` James A. Sutherland
2001-04-20 12:25 ` Szabolcs Szakacsits
2001-04-21 6:08 ` James A. Sutherland
2001-04-20 12:18 ` Szabolcs Szakacsits
2001-04-22 10:19 ` James A. Sutherland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ssf6etkhgrc2ejgcv22ophdj7pb5fbifbk@4ax.com \
--to=jas88@cam.ac.uk \
--cc=chromi@cyberspace.org \
--cc=jknapka@earthlink.net \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox