Subject: | |
From: | |
Reply To: | |
Date: | Tue, 27 Mar 2001 09:22:10 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
On Tue, 27 Mar 2001 06:06:53 -0800, Mark Bixby <[log in to unmask]> wrote:
>Peter van Boheemen wrote:
>There is no such internal timeout for launching CGI processes.
>
>When an Apache child process receives an HTTP request for a CGI, a fork()
is
>done to clone the Apache child, and then an exec() is done to replace the
>cloned Apache child with the CGI process. The fork()/exec() combination is
>synchronous and happens directly.
>
>IIRC, you were seeing "can't fork, resource busy" errors in the Apache
>error_log. I've seen fork() fail this way for two reasons:
>
>1) The stdin/stdout/stderr file descriptors have been redirected to files
whose
>permissions prevent access by the newly created process. In an Apache CGI
>environment, stdin and stdout are redirected to POSIX pipes, so there
should
>never be any permissions issues there. But stderr is redirected to the
Apache
>error_log, and if you have incorrect permissions set on the error_log,
*ALL*
>CGI requests will fail. But you say this is an intermittent problem, so I
>don't think any of this applies.
Ok that's correct, this does not apply.
>2) The more likely cause is a lack of sufficient contiguous transient disk
>space. The amount and quality of transient space can vary over time, and
this
>would explain the intermittent nature of your problem. I recommend running
>DISCFREE.PUB.SYS and seeing whether your disks are excessively fragmented.
That could very well be the case. I don't think the disks are extremely
fragmented (Even though they have become fragmented over time. I remember
HP telling us we would never have to defragment discs in MPEiX :))
LDEV : 1 -- (MPEXL_SYSTEM_VOLUME_SET:MEMBER1)
LARGEST FREE AREA: 328160 TOTAL FREE SPACE: 1416000
0 BLOCK(S) OF 1- 9 CONTIG. SECTORS = 0 FREE
SECTORS. 0%
803 BLOCK(S) OF 10- 99 CONTIG. SECTORS = 32560 FREE
SECTORS. 2%
593 BLOCK(S) OF 100- 999 CONTIG. SECTORS = 120256 FREE
SECTORS. 8%
100 BLOCK(S) OF 1000- 9999 CONTIG. SECTORS = 391728 FREE SECTORS.
28%
22 BLOCK(S) OF 10000- 99999 CONTIG. SECTORS = 543296 FREE SECTORS.
38%
1 BLOCK(S) OF 100000-AND UP CONTIG. SECTORS = 328160 FREE SECTORS.
23%
----------------------------------------------------------------------------
---
LDEV : 2 -- (MPEXL_SYSTEM_VOLUME_SET:MEMBER2)
LARGEST FREE AREA: 147344 TOTAL FREE SPACE: 6057008
0 BLOCK(S) OF 1- 9 CONTIG. SECTORS = 0 FREE
SECTORS. 0%
3773 BLOCK(S) OF 10- 99 CONTIG. SECTORS = 144720 FREE
SECTORS. 2%
4491 BLOCK(S) OF 100- 999 CONTIG. SECTORS = 1344112 FREE SECTORS.
22%
1072 BLOCK(S) OF 1000- 9999 CONTIG. SECTORS = 2468240 FREE SECTORS.
41%
94 BLOCK(S) OF 10000- 99999 CONTIG. SECTORS = 1952592 FREE SECTORS.
32%
1 BLOCK(S) OF 100000-AND UP CONTIG. SECTORS = 147344 FREE
SECTORS. 2%
----------------------------------------------------------------------------
---
LDEV : 3 -- (MPEXL_SYSTEM_VOLUME_SET:MEMBER3)
LARGEST FREE AREA: 42000 TOTAL FREE SPACE: 5856720
0 BLOCK(S) OF 1- 9 CONTIG. SECTORS = 0 FREE
SECTORS. 0%
4217 BLOCK(S) OF 10- 99 CONTIG. SECTORS = 158336 FREE
SECTORS. 3%
4332 BLOCK(S) OF 100- 999 CONTIG. SECTORS = 1239536 FREE SECTORS.
21%
1353 BLOCK(S) OF 1000- 9999 CONTIG. SECTORS = 3357776 FREE SECTORS.
57%
58 BLOCK(S) OF 10000- 99999 CONTIG. SECTORS = 1101072 FREE SECTORS.
19%
0 BLOCK(S) OF 100000-AND UP CONTIG. SECTORS = 0 FREE
SECTORS. 0%
However, this would explain the fact that this happens when the system gets
busy. We plan to reduce the amount of memory the cgi program initially
allocates. I suppose that would help a lot as well, I suppose.
Peter
|
|
|