Утечка памяти в случае кеширующего прокси
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