У меня есть веб-приложение на Ruby on Rails.Для запуска приложения мы используем кластеры mongrel, запущенные на apcahe httpd.Мы столкнулись с проблемой огромного потребления памяти в приложении.(RedHat, Ruby 1.8.7, Rails 2.3.5, RAM 8GB)
Дело в том, что после запуска веб-сервера (запуска кластеров mongrel) использование памяти, похоже, увеличивается.Например, если свободная память (ОЗУ) при запуске веб-сервера составляла 6 ГБ.Через 2 дня объем свободной памяти становится 3 ГБ, даже если на сайте нет трафика.Если веб-сервер не перезагружается в течение недели, кажется, что память увеличивается и использует 8 ГБ ОЗУ и вызывает проблемы «нет памяти для выделения» для таких процессов, как генерация PDF с использованием «PrinceXML», отправка почты с использованием Sendmail (я думаю, что этообъем памяти ).При перезапуске веб-сервера свободная память возвращается к 6 ГБ.
Это случай утечки памяти в приложении Rails?Как проверить приложение на утечки памяти?Я нашел инструмент для проверки утечек памяти bleak_house , но когда я устанавливаю его как драгоценный камень, как показано в этой ссылке , он дает No command bleak found
, когда я запускаю 'bleak / tmp /bleak.5979.000.dump 'для анализа.
Я использую PrinceXML для генерации отчетов в формате PDF и sendmail для отправки почты.На этом сервере также запущен экземпляр Jasper Server. Любой, пожалуйста, помогите .
Вот результат команды top во время перегрузки памяти.
-bash-3.2$ top
top - 10:34:10 up 14 days, 7:40, 2 users, load average: 0.24, 0.40, 0.39
Tasks: 181 total, 1 running, 177 sleeping, 2 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8173984k total, 8011564k used, 162420k free, 10044k buffers
Swap: 2096472k total, 152624k used, 1943848k free, 2012016k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
858 **nt*rsc 15 0 12748 1168 832 R 173.5 0.0 0:00.36 top
1 root 15 0 10356 108 76 S 0.0 0.0 0:17.10 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.10 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.12 migration/1
6 root 34 19 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/1
7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
8 root RT -5 0 0 0 S 0.0 0.0 0:00.70 migration/2
9 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/2
10 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
11 root RT -5 0 0 0 S 0.0 0.0 0:00.67 migration/3
12 root 34 19 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/3
13 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
14 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
15 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/1
16 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/2