2013-09-26 3 views
1

У меня есть процесс sidekiq, который работает на Heroku, что взрывает после него уже работают некоторое время с этим сообщением об ошибке:Sidekiq на Heroku - Ошибка R14 (квота памяти превышена)

Ошибка R14 (квоты памяти превышен)

Может ли кто-нибудь указать мне, как начать диагностику того, что происходит?

Нет ничего очевидного, что могло бы вызвать это.

ответ

1

Мы сталкиваемся с той же проблемой и решили позволить Newrelic сделать тяжелый подъем и помочь нам с диагностикой. Есть некоторые бесплатные планы Newrelic, которые вы могли бы использовать для этого, но если ни один из них не заходит достаточно глубоко в ваш код, вы можете подумать о том, чтобы заплатить за версию Pro в течение одного месяца, чтобы помочь вам профилировать ваше приложение.

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

Если вы не хотите использовать NewRelic, Heroku также имеет лабораторную функцию, которая будет профилировать использование памяти и сообщать в журналы, включить его:

heroku labs:enable log-runtime-metrics 

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

Ошибка, которую вы получаете, - это когда память на Heroku превышает квоту памяти. Heroku это сказать об этом:

динамометрические стенды которых процессы превышают свои квоты памяти идентифицируются R14 ошибки в журналах. Это не завершает процесс, но он предупреждает об ухудшении условий приложения: память, используемая выше квоты , будет заменена на диск, что существенно ухудшит динамическую производительность.

This page имеет дополнительную информацию.

0

Попробуйте уменьшить параллелизм. По умолчанию Sidekiq - 25. Я опустил его до 15, и он резко сократил использование памяти и удалил ошибку свопинга памяти.

Memory Usage Graph

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