2015-08-25 2 views
1

Приложение My Ruby on Rails работает на Heroku с динодейством объемом 512 мегабайт оперативной памяти. Он использует почти всю оперативную память прямо из запуска приложения, и от этого становится все хуже. Я не загружаю большие объемы данных из базы данных при запуске, поэтому не понимаю, почему он использует столько памяти.Как профилировать рубиновый продукт на карте памяти rails

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

+0

насчет 'htop'? =) –

+0

Я посмотрел на это, но я использую Mac OSX, и htop кажется багги для этой операционной системы. – Obromios

+0

Вы не можете имитировать утечку в средах разработчиков? Как использование памяти в разработке env? – Emil

ответ

2

Heroku имеет функцию log-runtime-metrics для мониторинга использования памяти.

Вы можете запустить эту функцию, чтобы включить эту функцию:

heroku labs:enable log-runtime-metrics 

и использование памяти будет отображаться на журнал сервера.

Для получения дополнительной информации см. Heroku Labs: log-runtime-metrics.

Кроме того, вы можете использовать New Relic для профилирования памяти.

Для получения более подробной информации см. documentation.

Другой удивительный ресурс, который я рекомендую для профилирования памяти является rbkit

+1

Все это полезно. Хорошее введение в rbkit - это [здесь] (http://rbkit.codemancers.com/docs/getting-started). Можете ли вы безопасно запустить rbkit в производстве? – Obromios

+0

@Obromios Rbkit был создан для решения именно этой проблемы, с которой вы столкнулись, но она все еще не готова к производству, так как мы активно развиваем другие функции, такие как профилирование процессора и, возможно, разбиваем много вещей :) (здесь разработчик Rbkit) – Emil

Смежные вопросы