Я использую colleideidea delayed_job с моим приложением Ruby on Rails (v2.3.8) и выполняю около 40 фоновых заданий с ним на машине Slicehost 8 ГБ ОЗУ (Ubuntu 10.04 LTS, Apache 2).
Допустим, я зашел на свой сервер без рабочих. Когда я делаю free -m
, я вижу, что я обычно использую около 1 ГБ ОЗУ из 8. Затем, после запуска рабочих и ожидания примерно минуты, чтобы они были использованы кодом, я получаю около 4 ГБ , Если я вернусь через час или два, я буду на 8 ГБ и в памяти подкачки, и мой сайт будет выдавать 502 ошибки.
До сих пор я только что убивал рабочих и перезапускал их, но я бы лучше решил корень проблемы. Какие-нибудь мысли? Это утечка памяти? Или, как предложил друг, мне нужно найти способ запустить сборку мусора?