Что-то не припомню такой ситуевины еще со времен 1.3.x, т.е. да бывает течет, но это наверное первый раз когда все так замечательно и легко воспроизводится (ну и сами масштабы утечки). Собственно вот:
webui:~# ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r
%MEM %CPU RSS VSZ COMMAND
59.5 0.1 2400364 8331656 /usr/sbin/apache2 -k start
4.2 0.4 172068 868708 /usr/sbin/mysqld
17.2 0.5 694416 1360180 /usr/sbin/apache2 -k start
0.1 0.0 4308 98536 sshd: root@pts/0
0.0 0.0 984 6820 ps -eo pmem,pcpu,rss,vsize,args
0.0 0.0 940 9860 more
0.0 0.0 84 44368 /usr/sbin/exim4 -bd -q30m
0.0 0.0 748 122468 /usr/sbin/apache2 -k start
0.0 0.0 728 177144 rsyslogd -c4
0.0 0.0 4 180 [sort]
0.0 0.0 304 45076 /usr/sbin/sshd
0.0 0.0 272 84416 /usr/sbin/apache2 -k start
0.0 0.0 264 23308 /sbin/init
0.0 0.0 2220 13176 -bash
0.0 0.0 160 21068 cron
Имеем виртуалку с Ubuntu Server 10.04, внутри Apache2 + mod_wsgi, MySQL и само приложение на Django. На машине 2 Гб RAM и где-то 8 Гб swap. В конфиге апача только один сайт, который живет на WSGI - все просто и даже примитивно, но все равно течет. Выставлял MaxRequestsPerChild, но все равно что мертвому припарка. Попробую еще другой MPM может повезет?
Собственно вопрос пользователям mod_wsgi, замечали у себя такое? И как лучше отдебажить? Есть ли how-to какое-нибудь как через gdb посмотреть где течет запущенный процесс?