LINUX.ORG.RU

Оптимизация использования ruby on rails оперативной памяти

 ,


0

2

Приветствую всех! Подскажите пожалуйста, какие знаете способы по оптимизации RoR ресурса, чтобы меньше кушала оперативную память? буду благодарен за любые советы и ссылки! появилась проблема с хостингом 1gb.ru, ограничение в 64mb, раньше на превышение не обращали внимание, а теперь дают 10 дней иначе заблокируют. а у меня самый простой сайт без динамики, практически один текст - и то 70 mb ... вот и схватился за голову. Пока только мысли улучшить кэширование, и проверка индексов Заранее благодарен за ответы!

★★★★

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

jessey ()

А кешировать ты куда собрался?

Но вообще если ты илитный рельс программист - купи себе более другой хостинг. Опять же не очевидно что у тебя за вебсервер.

zz ★★★★ ()

самый простой сайт без динамики, практически один текст

У вас же, у рубистов, есть Sinatra, по идее оно должно жрать значительно меньше.

Про рельсы рассказывают ужасающие вещи - мол шаг вправо-шаг влево - и начинается шаманство.

Hoodoo ★★★★★ ()

простой сайт без динамики, практически один текст
RoR

это ты зря)

Проверь, что не грузятся лишние джемы. Глянь, что за руби на хостинге. Переключись на REE, если там очень старая версия.

Замерь, сколько ест только что запущенный в production инстанс.
Cравни сколько он есть через пару часов. Cможешь сказать течет что-то или он такой жирный сразу.


PS а вообще я бы переписал на чем-то легком, типа синатры.

kelyar ★★★★★ ()

Во-первых, в качестве интерпретатора - только MRI (т.к. все альтернативные, использующие JIT, жрут памяти больше). Во-вторых, в качестве сервера - ни в коем случае не Unicorn, ибо жрет, как не в себе. Из серверов малым пожиранием памяти хвастается Puma. Проверь, нет ли в твоем Gemfile чего лишнего. Проверь, что запускается именно production, а не development.

Ну если все это сделано и ничего не помогло - тогда шамань над кодом. А лучше - купи какой-нибудь другой хостинг. Даже бесплатные RoR-хостинги при всей их огороженности и ущербности обычно не имеют ограничений, описанных в ОП.

Deleted ()

а теперь дают 10 дней иначе заблокируют

что за быдлохостинг такой, который из-за своего неасиляторства банит клиентов?

поставь watchdog, который будет рестартить твой сервер: на превышение лимита памяти, плюс по крону каждую полночь (каждые 6 часов?).

не юзай динамически генерящиеся исходники. Они забивают память, которая никогда не очистится сама. Не юзай to_sym по той же причине (таблица символов - глобальный кэш, который не чистится).

не юзай аргументы функций в split и gsub — они текут в этом случае (решение - вначале копировать значение аргумента в локальную переменную, и потом уже сплитать именно ее)

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

зануляй все ссылки на объекты. вообще сократи глубину ссылок

купи шапочку из фольги

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

вот спасибо за хорошие советы) нашел что подчеркнуть себе

DILIN ★★★★ ()

Привет.

1) только 1.9.3 2) если у тебя статика - то бери sinatra, сами создатели рельс жалуются на то, что в третьих нереального размера стак-трейс :) 3) попробуй puma, оно кажется жрет в 10-ки раз меньше памяти (если сранивать с unicorn)

pechorin ()
Ответ на: комментарий от pechorin

ок, спасибо. сам пользую 1.9.3, по поводу puma - не смотрел, сейчас ознакомлюсь поближе что за зверь такой )

DILIN ★★★★ ()

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

anonymous ()

переписать на asm.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.