У меня есть приложение Jruby On Rails, которое использует несколько WS для сбора данных. Приложение обрабатывает данные, отображает их для пользователя, пользователь вносит свои изменения и затем отправляет обратно в WS.
Проблема здесь в том, что я храню все в кеше (основанном на сеансе), который использует память. Но время от времени без четкой причины (по крайней мере для меня) появляется эта ошибка:
ActionView::Template::Error (GC overhead limit exceeded)
Я прочитал то, что мог найти об этом, и, очевидно, это означает, что Сборщик мусора тратит много времени на попытки освободить память, и в этом направлении не происходит никакого реального прогресса. Я предполагаю, что, поскольку все хранится в кэш-памяти, как в памяти, GC пытается освободить его и не может сделать это, и выдает эту ошибку.
Итак, вот вопросы.
- Как я могу обойти это?
- Если я переключусь с хранилища памяти на Redis, если мои предположения верны, эта проблема все еще будет появляться.
- Будет ли GC пытаться освободить область памяти Redis? (Это может быть глупый вопрос, но, тем не менее, пожалуйста, помогите :))
Спасибо.