Утечка памяти в процессе ruby ​​после обновления до OSX Lion - PullRequest
7 голосов
/ 07 сентября 2011

Я обновился до Lion несколько недель назад, и он полностью испорчен средой Ruby on Rails. У меня установлена ​​RVM, разные версии ruby, и я не могу найти решение для него ... Я думаю, что это было одно из худших решений, которое я мог сделать, перейдя на Lion. Это только доставило мне проблемы.

В любом случае, я понял, что рендеринг страницы моего приложения (которая прекрасно работает на развернутом сервере и локально на других машинах) увеличивает объем памяти процесса ruby ​​на 20-30 МБ, что является безумием. Итак, вы можете себе представить, что через некоторое время мой процесс ruby ​​достигает 2 ГБ используемой памяти, и мой компьютер больше не используется.

Я видел много людей с проблемами при обновлении до Lion, но я не смог найти решение для моего случая.

У кого-нибудь была такая же проблема? Любые идеи, как я могу попытаться решить эту проблему?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2015

Я не знаю, как вы могли бы исправить утечку памяти, но могу предложить один из способов ее устранения и дальнейшего устранения.

Если вы хотите изучать Docker, вы можете содержать свою среду разработки внутриКонтейнер Docker, все при доступе к коду на вашем локальном компьютере, точно так же, как общая папка в Vagrant.

Когда вы запускаете контейнер Docker, который запускается, вы можете указать ограничение на объем памяти, который контейнер может использовать,Ваш rails server процесс может привести к сбою и остановке контейнера, но по крайней мере вам не придется перезагружать компьютер.

Возможно, это даст вам больше возможностей для более глубокого устранения проблемы.

Справочник по Docker Run , см. Раздел «Ограничения времени выполнения на ЦП и памяти».

0 голосов
/ 08 января 2012

Вы можете использовать гем memprof ( Больше не поддерживается и не работает для Ruby выше версии 1.8.7) и memprof.com (Неработающая ссылка), чтобы добраться до сути вопроса.

Также вы можете поэкспериментировать с использованием Passenger, Unicorn или Thin вместо Webrick по умолчанию, чтобы увидеть, дает ли это другое поведение.

...