ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [emerg] 6428#0: malloc() 3053187144 bytes failed (12: Cannot allocate memory)



Hello!

On Fri, Mar 25, 2011 at 11:53:47AM +0300, Eugene Batogov wrote:

> Приветствую всех.
> Возникли две интересные проблемы, а точнее записи в nginx.log:
> ...
> 2011/03/18 17:34:46 [alert] 6431#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:34:46 [alert] 6429#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:34:46 [alert] 6429#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:35:16 [alert] 6429#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:35:16 [alert] 6429#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:35:46 [alert] 6433#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:35:46 [alert] 6433#0: ngx_slab_free(): chunk is already free
> 2011/03/18 17:36:16 [crit] 6436#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6436#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6433#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6433#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6433#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6433#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6429#0: ngx_slab_alloc() failed: no memory
> 2011/03/18 17:36:16 [crit] 6429#0: ngx_slab_alloc() failed: no memory
> ....
> Почему появляются эти сообщения?
> Кто их инициатор?

Функции ngx_slab_free() и ngx_slab_alloc() используются для работы 
с разделяемой памятью.

Сообщение о "no memory" от ngx_slab_alloc() может быть не 
фатальным (просто память в соответствующей зоне кончилась).

Сообщение "ngx_slab_free(): chunk is already free" явно указывает 
на проблему, вероятнее всего - на некорректную работу с 
разделяемой памятью в стороннем модуле.  Подозреваю, что под 
"сторонним модулем" в данном случае следует понимать 
nginx_http_push_module.

Более подробную информацию можно попытаться получить включив 
debug log[1].

[1] http://wiki.nginx.org/Debugging

> и вторая:
> ...
> 2011/03/18 17:30:16 [emerg] 6428#0: malloc() 3053187144 bytes failed (12:
> Cannot allocate memory)
> ...
> Под что nginx выделяет так много памяти?
> Как это можно узнать?

Аналогично - включать debug log.

[...]

> И еще возникла проблема с остановом nginx после использования
> nginx_http_push_module.
> Он очень долго останавливается, такое ощущение, что ждет окончания
> таймаутов.

Плавное завершение рабочих процессов предполагает, что nginx 
дожидается окончания всех запросов, и только после этого выходит.  
Так что ничего удивительного тут нет.

> --------------
> Наши окружения:
> -----------
> nginx version: nginx/0.7.65

[...]

> nginx version: nginx/0.8.53

Я бы рекомендовал обновиться как минимум до последней версии 
stable, 0.8.54.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.