On Mon, Apr 26, 2010 at 8:45 PM, Antony Dovgal <t...@daylessday.org> wrote:

> On 26.04.2010 22:25, Ferenc Kovacs wrote:
> >
> >     If you have any problems with third-party libs leaking memory not
> >     accounted by Zend MM, you can always lower
> >     the max_requests parameter in your config file.
> >
> >     That's all. Problem solved.
> >
> >
> > Its not the best idea. If you feed imagick with random images, then your
> > memory leak will be pretty random.
>
> Random actions end up with random results.
> Thank you, captain!
>
>
You are so kind. I'm so proud of you!!
But sticking with a real world scenario:
you have to convert what they upload, and thats pretty random.


> > If you set the max_requests low, then you will see fewer memory limit
> > exhausted, but the overall overhead will be much bigger, because you
> > will respawn a decent amount of worker unnecessary
>
> Respawn overhead is almost zero if you compare it to the overall cost of
> executing, say, 1000 of scripts.
>
>
if you have to set the max_request to for example 10, because of the aborted
scripts, then it is not zero

> > if you set it high,
> > the overhead will be lower, but you will see much more aborted scripts.
>
> Aborted scripts?
> Since when do they abort when some third-party lib leaks some memory?
>
>
When the leaked memory causes a memory limit was exhausted fatal error?


> > With the ability, to respawn processes based on the memory allocation,
> > you could serve the maximal amount of request, without unnecessary
> > respawn or aborted scripts.
>
> My point was and is that with Zend MM enabled, it takes care of any leaks
> that might
> happen in PHP and they won't accumulate, as each time a request starts, we
> start with
> clean Zend MM pool.
>

Yeah, but if you followed the thread, you can see that the external libs are
the problem.


> In order to prevent leaks happening in third party libraries (which Zend MM
> is unable
> to control) to blow up your PHP processes, you need to use the non-portable
> solution I
> implemented in memtrack, not the one proposed in the original patch.
>

http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/port/getrusage.c?rev=1.18;content-type=text%2Fx-cvsweb-markup


> And even that is not required as you can always adjust max_requests and
> live happily ever after.
>
>
Yeah, sure. :)

Tyrael

Reply via email to