From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Fri, 10 Jan 2014 08:48:23 -0500 To: 9fans@9fans.net Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] Maximal number of processes Topicbox-Message-UUID: b1f005d6-ead8-11e9-9d60-3106f5b1d025 > 20,000 did not work because it ran out of kernel physical memory. That > preallocation could be adjusted, but at some point the available kernel > virtual address space will limit what it can allocate. at the cost of moving KZERO down 256MB on the pae kernel, ivey# ps|wc 15961 111727 957732 and even more ivey; ps|wc 30064 210448 1803915 ivey# cat /dev/swap 17153769472 memory 4096 pagesize 131072 kernel 271322/4056860 user 0/0 swap 0/17877472 kernel malloc 0/17877472 kernel draw interestingly, the time to launch 1000 sleeps went up in a non-linear way here's the time to launch each 1000 processes 1000 0 2000 0 3000 1 4000 0 5000 1 6000 0 7000 1 8000 1 9000 0 10000 1 11000 1 12000 1 13000 1 14000 1 15000 2 16000 1 17000 2 18000 2 19000 2 20000 3 21000 3 22000 4 23000 4 24000 5 25000 5 26000 5 27000 7 28000 7 29000 8 30000 8 launching 32000 processes was not possible. the kernel got stuck. here's one thing that's not immediately obvious, even when running the kernel. conv.nmach must be less than 0x7fffffff/(1000*1000) = 2147 to prevent reprioritize from doing silly things: /* * fairshare = 1.000 * conf.nproc * 1.000/load, * except the decimal point is moved three places * on both load and fairshare. */ fairshare = (conf.nmach*1000*1000)/load; - erik