[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Cannot create more than 32K threads?



Here's the content of /proc/meminfo after 32761 threads are created (all
sleeping).

MemTotal:       904388 kB
MemFree:         54120 kB
Buffers:          9696 kB
Cached:          57212 kB
SwapCached:          0 kB
Active:         152840 kB
Inactive:        53612 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       904388 kB
LowFree:         54120 kB
SwapTotal:     3903712 kB
SwapFree:      3903712 kB
Dirty:              56 kB
Writeback:           0 kB
Mapped:         142500 kB
Slab:           374428 kB
Committed_AS:   542648 kB
PageTables:        876 kB
VmallocTotal:   122808 kB
VmallocUsed:      2296 kB
VmallocChunk:   120492 kB

Which numbers should I look at?  It looks like there are still physical
memory left.

Also, the box has 1GB of physical memory.  Even if every thread eats 8KB
of nonpagable, and consider some other stuff occupies part of the 1GB
kernel space, shouldn't the limit still be somewhere around 100K
(1G/8K=128K)?  I think I'm missing some per-process limit.

Feng Zhou

On Thu, 2003-08-07 at 15:37, Robert Love wrote:
> On Thu, 2003-08-07 at 15:29, Feng Zhou wrote:
> 
> > I was using the 'thread-limit' program from
> > http://people.redhat.com/alikins/tuning_utils/thread-limit.c to test the
> > number of threads it could create.  It seems that it was always hitting
> > some limit at 32K threads (cannot create thread 32762, to be exact). The
> > error is ENOMEM.  Here's the kernel/ulimit settings,
> 
> Well, -ENOMEM tends to suggest you are running out of memory.
> 
> Each thread consumes about 8KB in the kernel, which is non-pagable
> memory.
> 
> 	Robert Love
> 
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]