When allocate memory from PHP memory heap, PHP runtime check the
memory_limit which
in  php.ini, but this can only give a error message and  not to continue to
excute php code, it can't
control the PHP-FPM child process, my idea is that when the  memory out of
limit we set,
kill this child process, we know, though PHP runtime can free its heap
memory, but  it can't give
it back to the system, so we can kill this child process and ensure the
system have enough free
memory. We do check the memory limit is to control the process.

2010/4/15 Jérôme Loyet <jer...@loyet.net>

> 2010/4/15 滕路遥 <tly.phpf...@gmail.com>:
> > We check error log after our server crashed, and we found that php heap
> > memory is out of limit,
> > so I think imagick use emalloc to allocate php heap memory, to check the
> > zend_memory_usage is
> > not a method for imagick, other circumstances which occupy huge memory
> can
> > use this method to
> > ensure the system have enough free memory.
>
> OK,
>
> one thing I didn't understand is "why should you want check de zend
> memory usage when there is a memory_limit parameter in PHP.ini " ?
> does'nt it do the same at PHP layer when allocating ?
>
> >
> > thanks,
> >     looyao
> >
> > 2010/4/14 Rasmus Lerdorf <ras...@lerdorf.com>
> >>
> >> On 04/14/2010 02:01 AM, Jérôme Loyet wrote:
> >> > The patch seems good (I didn't test it yet) but I'm curious about the
> >> > way you check the memory real size:
> >> >
> >> > +                             if(zend_memory_usage(1 TSRMLS_CC) >
> >> > fpm_global_config.term_on_memory_limit){
> >> >
> >> > I don't know much about the zend_memory_usage() function. But does it
> >> > return the real memory size of the process ?
> >>
> >> Right, that will only give you the memory allocated by the memory
> >> manager, obviously.  But, pecl/imagick does seem to use emalloc to
> >> allocate the imagick objects.  However, if the underlying magickwand
> >> library mallocs a bunch of temporary space on its own, this will not get
> >> picked up.
> >>
> >> -Rasmus
> >
> >
>

Reply via email to