На прошлой неделе мы обновили небольшой проект, который работал на Rails 3.0.1, до Rails 3.2.2.
Вскоре после обновления мы узнали, что иногда 2-3 раза в день мы наблюдаем огромный процесс Phusion Passenger (1-5 ГБ).
Мы работаем с Phusion Passenger 3.0.11 и Ruby 1.9.3-p0. Мы уже пробовали разные версии Ruby (1.9.2-p290 и 1.9.3-p125) без успеха.
После этого мы попытались отследить использование памяти с помощью Oink . К сожалению, Oink не показывает причину раздувания памяти - кажется, что большие процессы больше не пишут в лог-файлы.
Когда мы вернулись к Rails 3.0.1, проблема исчезла. У кого-нибудь есть подобные проблемы? Мы действительно проверили наш код на возможные утечки памяти, такие как слишком много экземпляров ActiveRecord, но не нашли ни одного.
Думаешь, стоит попробовать Единорога вместо Пассажира? Или, скорее всего, мы столкнемся с той же проблемой?
Любые предложения о том, как отследить утечку памяти, приветствуются. Мы уже настроили newrelic, но он не показывает подробную информацию об утечке памяти.