Re: Fork returning EAGAIN

2006-12-09 Thread Stephen Frazier
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

2006-12-08 Thread Jon Brock
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

2006-12-08 Thread Alan Altmark
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

2006-12-08 Thread Jon Brock
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

2006-12-08 Thread Jon Brock
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