Утечка памяти в случае кеширующего прокси

Grigory A. Mozhaev zcrendel на gmail.com
Пн Авг 8 22:40:20 UTC 2011


Добрый день!

При использовании nginx как кеширующего прокси 
происходит утечка памяти, совершенно аналогичная описанной здесь:

http://serverfault.com/questions/298761/nginx-memory-leaks-when-acting-as-a-proxy-cache

Используется версия 0.8.55, по ссылке 1.0.5. 
Возможно проблема существует и в более поздних версиях.

после запуска

# pmap -x 11959
11959:   nginx: worker process                                                          
Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000     496     352       0 r-x--  nginx
000000000067c000      64      64      56 rw---  nginx
000000000068c000      56      12      12 rw---    [ anon ]
0000000001632000    9580    9548    9548 rw---    [ anon ]                  <----
00007feb8b24e000  256000   38792   29064 rw-s-  zero (deleted)
....

Через некоторое время

# pmap -x 11955
11955:   nginx: worker process                                                          
Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000     496     352       0 r-x--  nginx
000000000067c000      64      64      56 rw---  nginx
000000000068c000      56      12      12 rw---    [ anon ]
0000000001632000  208128  208120  208120 rw---    [ anon ]              <----- wtf????
00007feb8b24e000  256000   60952   58004 rw-s-  zero (deleted)        
00007feb9ac4e000      44      20       0 r-x--  libnss_files-2.12.90.so
...

Доходит до того, что воркеры начинают занимать по 2Гб памяти 
(согласно top).

Если кеширование отключить - никакой утечки не происходит.

п.с. буду еще перепроверять, но похоже, что утечка происходит при 
кешировании очень больших файлов, порядка нескольких гигабайт.

-- 
С уважением,
Можаев Григорий


Подробная информация о списке рассылки nginx-ru