Re: Fork returning EAGAIN
If you want to ask that question on this list you need to be starting 8500 guests on one VM each running some Linux tasks. We can help you understand that performance problem. If you have one. :) As you are running 8500 tasks under one guest you might get better help on the LINUX-390 list. Your problem is likely to be something internal in the Linux guest and not a VM problem. [EMAIL PROTECTED] wrote: This may not be the correct place to ask this question, but Google isn't helping a ton and I can't bear the thought of posting into most other Linux fora, so I'm going to run this past you folks first. To cut to the chase, as part of an effort to figur out why we had trouble with a prof-of-concept application that ate every CPU cycle our IFL could give it, I have written a couple of small Ruby scripts as a stress-testing mechanism. The basic idea is: * Create a small test database on our problematic MySQL image. (Database = 100,000 rows, each of which has a numeric key and one field consisting of 30 random alphabetic characters.) this part is fine. * On another guest, fork a bunch of processes, each of which will read a random row from the database, generate another random 30-character string, and update the record. This procedure goes fine as long as I fork a few thousand processes. Once I reach 8500 or so, however, I start receiving this: Resource temporarily unavailable - fork(2) (Errno::EAGAIN) According to everything I can find, EAGAIN on fork(2) indicates that the system can not allocate sufficient memory to create the child process, but if I issue free -m while my stress test script is running I show plenty of available memory. Am I hitting a per-user process limit or some such? Any ideas? TIA, Jon -- Stephen Frazier Information Technology Unit Oklahoma Department of Corrections 3400 Martin Luther King Oklahoma City, Ok, 73111-4298 Tel.: (405) 425-2549 Fax: (405) 425-2554 Pager: (405) 690-1828 email: stevef%doc.state.ok.us
Fork returning EAGAIN
This may not be the correct place to ask this question, but Google isn't helping a ton and I can't bear the thought of posting into most other Linux fora, so I'm going to run this past you folks first. To cut to the chase, as part of an effort to figur out why we had trouble with a prof-of-concept application that ate every CPU cycle our IFL could give it, I have written a couple of small Ruby scripts as a stress-testing mechanism. The basic idea is: * Create a small test database on our problematic MySQL image. (Database = 100,000 rows, each of which has a numeric key and one field consisting of 30 random alphabetic characters.) this part is fine. * On another guest, fork a bunch of processes, each of which will read a random row from the database, generate another random 30-character string, and update the record. This procedure goes fine as long as I fork a few thousand processes. Once I reach 8500 or so, however, I start receiving this: Resource temporarily unavailable - fork(2) (Errno::EAGAIN) According to everything I can find, EAGAIN on fork(2) indicates that the system can not allocate sufficient memory to create the child process, but if I issue free -m while my stress test script is running I show plenty of available memory. Am I hitting a per-user process limit or some such? Any ideas? TIA, Jon
Re: Fork returning EAGAIN
On Friday, 12/08/2006 at 02:05 EST, Jon Brock [EMAIL PROTECTED] wrote: This may not be the correct place to ask this question, but Google isn't helping a ton and I can't bear the thought of posting into most other Linux fora, so I'm going to run this past you folks first. :-) Everyone on the LINUX-390 list is gentle! Alan Altmark z/VM Development IBM Endicott
Re: Fork returning EAGAIN
My apologies. I intended to send this to the LINUX-390 list. Thanks, Jon -Original Message- From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] Behalf Of Jon Brock Sent: Friday, December 08, 2006 2:06 PM To: IBMVM@LISTSERV.UARK.EDU Subject: Fork returning EAGAIN This may not be the correct place to ask this question, but Google isn't helping a ton and I can't bear the thought of posting into most other Linux fora, so I'm going to run this past you folks first. To cut to the chase, as part of an effort to figur out why we had trouble with a prof-of-concept application that ate every CPU cycle our IFL could give it, I have written a couple of small Ruby scripts as a stress-testing mechanism. The basic idea is: * Create a small test database on our problematic MySQL image. (Database = 100,000 rows, each of which has a numeric key and one field consisting of 30 random alphabetic characters.) this part is fine. * On another guest, fork a bunch of processes, each of which will read a random row from the database, generate another random 30-character string, and update the record. This procedure goes fine as long as I fork a few thousand processes. Once I reach 8500 or so, however, I start receiving this: Resource temporarily unavailable - fork(2) (Errno::EAGAIN) According to everything I can find, EAGAIN on fork(2) indicates that the system can not allocate sufficient memory to create the child process, but if I issue free -m while my stress test script is running I show plenty of available memory. Am I hitting a per-user process limit or some such? Any ideas? TIA, Jon
Re: Fork returning EAGAIN
Yeah, that's where I thought I was sending it first. Had a slight brain-page fault. Jon snip :-) Everyone on the LINUX-390 list is gentle! /snip