From: Daniel Hazelton <dhazelton@enter.net>
To: Andi Kleen <andi@firstfloor.org>
Cc: Arjan van de Ven <arjan@infradead.org>,
Adrian Bunk <bunk@kernel.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Shawn Bohrer <shawn.bohrer@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: x86: 4kstacks default
Date: Mon, 21 Apr 2008 13:34:33 -0400 [thread overview]
Message-ID: <200804211334.33912.dhazelton@enter.net> (raw)
In-Reply-To: <20080421075102.GB14446@one.firstfloor.org>
On Monday 21 April 2008 03:51:02 Andi Kleen wrote:
> > Never said it worked on a 32bit system. I was pointing out that there can
> > be workloads that do reach
>
> Ah your point was that people might do this on 64bit systems?
My point was that people might try to make such a system work on a 32bit
system and fail. The fact that the limit does exist and changing the stack
size doesn't really help things is a key there.
My point is that you can get a few more threads out of a machine with 4K
stacks, even on 32bit. Sure, the difference is basically negligible, but it
does happen. That extra available space may be the difference between a
poorly coded program triggering random crashes (and the OOM killer) and the
system surviving it.
While it's true that I feel that the job of the kernel isn't to protect the
incompetent, it should protect the competent admins from the incompetent
developers (and middle management).
> They could indeed. It would not be very efficient but it should work
> in theory at least with enough memory. Of course they don't need 4k
> stacks for it. They can also try it on 32bit and it will work
> to some extent too, just not scale very far. And 4k stack more or less
> won't make much difference for that because the stack is only
> a small part of the lowmem needed for a blocked thread with
> open sockets.
True. But having that tiny bit of extra memory might be the difference between
a crash and a somewhat memory starved but surviving system.
> But this thread clearly was about 32bit systems only.
I didn't say otherwise. I was pointing out that 50K threads isn't out of the
question when looking at the workload provided (and ignoring all other memory
concerns.
However, I had hoped I wouldn't have to spell out the stuff I've had to point
out in this mail.
> > that 50K thread-count that you seem to be
> > calling "stupid".
>
> Note I didn't come up with that number, it was quoted to me earlier
> (but one of its authors has distanced itself from it now, so it
> seems to becoming more and more irrelevant indeed now)
Yes, I know you didn't come up with it. But in seeing the original commit-log
for it, I'm thinking that the '50K' number was initially meant as either a
small joke or a dream of a maximum.
> Stupid in this case just refers to the general observation that
> it is quite inefficient to do one thread per request on servers
> who are expected to process lots of long running connections.
Remember, you're talking about people that write the code in Java. It's going
to spawn all kinds of threads anyway. I, personally, would write the code in
a language giving me better control over the available resources. However,
I'm not employed by any major company because I will almost always refuse to
work on a project if it's being done in an inefficient manner.
> Perhaps I could have put that better I will give you that. Please
> assume I always meant "inefficient" when I wrote "stupid".
In that case I agree. It is very inefficient to do things that way.
> > talking about. If I had been running 4K stacks on that machine I probably
> > would have survived the mis-configuration without the reboot it took to
> > make
>
> Now that is a very doubtful claim. You realize that a functional network
> server thread needs a lot more lowmem than just the stack?
There was nothing else running on the machine and it was reporting lowmem free
in the logs, just none "usable". Since the two biggest hogs on that box are
Apache2 and MySQL - and since repairing the Apache2 config damage has halted
further OOM's on that machine, I'm pretty much certain that it was Apache2 at
fault, though since there were reports of free lowmem, I'm pretty certain it
was a combination of fragmentation and Apache2.
DRH
--
Dialup is like pissing through a pipette. Slow and excruciatingly painful.
next prev parent reply other threads:[~2008-04-21 17:34 UTC|newest]
Thread overview: 162+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200804181737.m3IHbabI010051@hera.kernel.org>
2008-04-18 21:29 ` x86: 4kstacks default Andrew Morton
2008-04-19 14:23 ` Ingo Molnar
2008-04-19 14:35 ` Oliver Pinter
2008-04-19 15:19 ` Adrian Bunk
2008-04-19 15:42 ` Oliver Pinter
2008-04-20 1:56 ` Eric Sandeen
2008-04-20 7:42 ` Adrian Bunk
2008-04-20 16:59 ` Chris Wedgwood
[not found] ` <480AA2B9.10305__23983.3358479247$1208657639$gmane$org@sandeen.net>
2008-04-20 11:48 ` Andi Kleen
2008-04-19 14:59 ` Shawn Bohrer
2008-04-19 18:00 ` Arjan van de Ven
2008-04-19 18:33 ` Ingo Molnar
2008-04-19 19:10 ` Stefan Richter
2008-04-20 2:36 ` Eric Sandeen
2008-04-20 6:11 ` Arjan van de Ven
2008-04-20 22:53 ` David Chinner
2008-04-20 8:09 ` Adrian Bunk
2008-04-20 8:06 ` Alan Cox
2008-04-20 8:51 ` Adrian Bunk
2008-04-20 9:36 ` Alan Cox
2008-04-20 10:44 ` Adrian Bunk
2008-04-20 11:02 ` Alan Cox
2008-04-20 11:54 ` Adrian Bunk
2008-04-20 11:37 ` Alan Cox
2008-04-20 12:18 ` Adrian Bunk
2008-04-20 14:05 ` Eric Sandeen
2008-04-20 14:21 ` Adrian Bunk
2008-04-20 14:56 ` Eric Sandeen
2008-04-20 15:41 ` Arjan van de Ven
2008-04-20 16:03 ` Adrian Bunk
2008-04-21 3:30 ` Alexander E. Patrakov
2008-04-23 8:57 ` Helge Hafting
2008-04-21 7:45 ` Denys Vlasenko
2008-04-21 9:55 ` Andi Kleen
2008-04-21 13:29 ` Eric Sandeen
2008-04-21 19:51 ` Denys Vlasenko
2008-04-21 20:28 ` Denys Vlasenko
2008-04-22 1:28 ` David Chinner
2008-04-22 2:33 ` [PATCH] xfs: do not pass size into kmem_free, it's unused Denys Vlasenko
2008-04-22 3:03 ` [PATCH] xfs: do not pass unused params to xfs_flush_pages Denys Vlasenko
2008-04-22 3:14 ` [PATCH] xfs: use smaller int param in call " Denys Vlasenko
2008-04-22 3:18 ` Eric Sandeen
2008-04-22 4:10 ` David Chinner
2008-04-22 9:42 ` [PATCH] xfs: remove unused parameter of xfs_qm_dqpurge Denys Vlasenko
2008-04-22 10:16 ` [PATCH] xfs: remove unused parameter of xfs_iomap_write_allocate Denys Vlasenko
2008-04-22 11:20 ` [PATCH] xfs: #define out unused parameters of xfs_bmap_add_free and xfs_btree_read_bufl Denys Vlasenko
2008-04-22 11:48 ` [PATCH] xfs: #define out unused parameters for seven functions in xfs_trans.h Denys Vlasenko
2008-04-22 11:51 ` Denys Vlasenko
2008-04-22 13:32 ` [PATCH] xfs: remove unused params from functions in xfs_dir2_leaf.h Denys Vlasenko
2008-04-22 13:40 ` [PATCH] xfs: remove unused params from functions in xfs/quota/* Denys Vlasenko
2008-04-22 13:46 ` [PATCH] xfs: expose no-op xfs_put_perag() Denys Vlasenko
2008-04-22 14:08 ` Eric Sandeen
2008-04-22 23:16 ` David Chinner
2008-04-22 23:08 ` [PATCH] xfs: remove unused params from functions in xfs/quota/* David Chinner
2008-04-22 22:47 ` [PATCH] xfs: #define out unused parameters for seven functions in xfs_trans.h David Chinner
2008-04-22 14:28 ` [PATCH] xfs: #define out unused parameters of xfs_bmap_add_free and xfs_btree_read_bufl Adrian Bunk
2008-04-22 16:17 ` Denys Vlasenko
2008-04-22 17:21 ` Adrian Bunk
2008-04-22 17:26 ` Eric Sandeen
2008-04-22 17:50 ` Denys Vlasenko
2008-04-22 18:28 ` [PATCH] xfs: #define out unused parameters of?xfs_bmap_add_free " Adrian Bunk
2008-04-22 19:32 ` Denys Vlasenko
2008-04-22 23:53 ` Adrian Bunk
2008-04-22 20:46 ` [PATCH] xfs: #define out unused parameters of xfs_bmap_add_free " Denys Vlasenko
2008-04-22 22:43 ` David Chinner
2008-04-22 22:33 ` [PATCH] xfs: remove unused parameter of xfs_iomap_write_allocate David Chinner
2008-04-22 22:11 ` [PATCH] xfs: remove unused parameter of xfs_qm_dqpurge David Chinner
2008-04-23 8:18 ` Christoph Hellwig
2008-04-22 22:08 ` [PATCH] xfs: use smaller int param in call to xfs_flush_pages David Chinner
2008-04-22 3:15 ` [PATCH] xfs: do not pass unused params " Eric Sandeen
2008-04-22 8:57 ` Denys Vlasenko
2008-04-22 9:56 ` Jakub Jelinek
2008-04-22 10:33 ` Denys Vlasenko
2008-04-22 12:51 ` Eric Sandeen
2008-04-22 22:07 ` David Chinner
2008-04-22 3:09 ` [PATCH] xfs: do not pass size into kmem_free, it's unused Eric Sandeen
2008-04-22 3:35 ` Eric Sandeen
2008-04-22 22:02 ` David Chinner
2008-04-22 12:48 ` x86: 4kstacks default Denys Vlasenko
2008-04-22 13:01 ` Adrian Bunk
2008-04-22 13:51 ` Denys Vlasenko
2008-04-27 19:27 ` Jörn Engel
2008-04-27 23:02 ` Denys Vlasenko
2008-04-27 23:08 ` Eric Sandeen
2008-04-28 0:00 ` Denys Vlasenko
2008-04-20 12:37 ` Andi Kleen
2008-04-20 12:27 ` Andi Kleen
2008-04-20 12:32 ` Adrian Bunk
2008-04-20 12:47 ` Willy Tarreau
2008-04-20 13:06 ` Andi Kleen
2008-04-20 13:30 ` Adrian Bunk
2008-04-20 13:34 ` Willy Tarreau
2008-04-20 14:04 ` Adrian Bunk
2008-04-28 17:56 ` Bill Davidsen
2008-04-20 13:21 ` Adrian Bunk
2008-04-23 9:13 ` Helge Hafting
2008-04-23 23:29 ` David Chinner
2008-04-24 15:46 ` Eric Sandeen
2008-04-28 18:38 ` Bill Davidsen
2008-04-20 13:27 ` Mark Lord
2008-04-20 13:38 ` Willy Tarreau
2008-04-20 14:19 ` Andi Kleen
2008-04-20 16:41 ` Jörn Engel
2008-04-20 17:19 ` Andi Kleen
2008-04-20 17:43 ` Jörn Engel
2008-04-20 18:19 ` Andi Kleen
2008-04-20 18:50 ` Arjan van de Ven
2008-04-20 20:09 ` Andi Kleen
2008-04-20 21:50 ` Andrew Morton
2008-04-20 21:55 ` Andi Kleen
2008-04-21 14:29 ` Ingo Molnar
2008-04-20 20:32 ` Jörn Engel
2008-04-20 20:35 ` Jörn Engel
2008-04-20 14:09 ` Eric Sandeen
2008-04-20 14:20 ` Willy Tarreau
2008-04-20 14:40 ` Eric Sandeen
2008-04-20 15:44 ` Daniel Hazelton
2008-04-20 17:26 ` Andi Kleen
2008-04-20 18:48 ` Arjan van de Ven
2008-04-20 20:01 ` Andi Kleen
2008-04-20 20:43 ` Daniel Hazelton
2008-04-20 21:40 ` Andi Kleen
2008-04-20 22:17 ` Bernd Eckenfels
2008-04-20 23:48 ` Avi Kivity
2008-04-21 1:45 ` Daniel Hazelton
2008-04-21 7:51 ` Andi Kleen
2008-04-21 17:34 ` Daniel Hazelton [this message]
2008-04-20 22:33 ` Arjan van de Ven
2008-04-20 22:33 ` Arjan van de Ven
2008-04-20 23:16 ` Andi Kleen
2008-04-21 5:53 ` Arjan van de Ven
2008-04-21 3:06 ` Eric Sandeen
2008-04-20 21:45 ` Andrew Morton
2008-04-20 21:51 ` Andi Kleen
2008-04-22 18:20 ` Romano Giannetti
2008-04-23 5:03 ` Denys Vlasenko
2008-04-23 5:21 ` Daniel Hazelton
2008-04-23 5:25 ` david
2008-04-23 5:41 ` Daniel Hazelton
2008-04-23 7:46 ` Romano Giannetti
2008-04-23 11:24 ` Stefan Richter
2008-04-23 12:15 ` Romano Giannetti
2008-04-23 15:59 ` Lennart Sorensen
2008-04-20 13:22 ` Mark Lord
2008-04-19 17:49 ` Andrew Morton
2008-04-25 17:39 ` Parag Warudkar
2008-04-20 3:29 ` Eric Sandeen
2008-04-20 12:36 ` Andi Kleen
2008-04-21 14:31 ` Ingo Molnar
2008-04-23 5:27 ` Benjamin Herrenschmidt
2008-04-23 23:36 ` David Chinner
2008-04-24 0:45 ` Arjan van de Ven
2008-04-24 9:52 ` Christoph Hellwig
2008-04-24 12:25 ` Peter Zijlstra
2008-04-24 15:41 ` Chris Mason
2008-04-24 18:30 ` Alexander van Heukelum
2008-04-24 0:56 ` Benjamin Herrenschmidt
[not found] <ak6tq-32p-7@gated-at.bofh.it>
[not found] ` <ak6tq-32p-5@gated-at.bofh.it>
2008-04-19 10:56 ` Bodo Eggert
[not found] ` <akFri-4yB-25@gated-at.bofh.it>
[not found] ` <akGQg-7TX-1@gated-at.bofh.it>
[not found] ` <akKhi-91-37@gated-at.bofh.it>
2008-04-20 20:23 ` Bodo Eggert
2008-04-20 20:59 ` Daniel Hazelton
2008-04-21 20:05 ` Bodo Eggert
2008-04-22 15:34 ` Daniel Hazelton
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=200804211334.33912.dhazelton@enter.net \
--to=dhazelton@enter.net \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=arjan@infradead.org \
--cc=bunk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=shawn.bohrer@gmail.com \
--cc=tglx@linutronix.de \
/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