Re: Cannot create more than 32K threads?
Feng Zhou <[email protected]>
| Newsgroups | gmane.comp.lib.phil |
|---|---|
| Message-ID | <[email protected]> |
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 > >