Назад | Перейти на главную страницу

CentOS 7: коммит Github, порождающий новые процессы Ruby и максимизирующий память на сервере

У меня установлен сервер Linux (CentOS7), и на нем запущено несколько cronjobs. Ничего особенного, но за последнюю неделю дважды сталкивался с проблемой.

Это рубиновый процесс (скорее, задача Rake), который выполняется каждые 15 минут в час. Эта задача запускает запрос от удаленного сервера SQL и создает текстовые файлы для каждой записи. Каждые 15 минут может создаваться от 5 до 20 текстовых файлов. Эти текстовые файлы (очень маленькие по размеру) затем отправляются на общий сервер Windows, где они обрабатываются отдельным приложением.

То, что произошло раньше, и я не понимаю, почему это не только породит 4 новых процесса Ruby (на основе (2) задач Rake, которые должны быть запущены, а не только полностью случайных процессов Ruby), но и полностью уничтожит всю память в Linux. сервер, и нам пришлось выполнить жесткую перезагрузку. Я сделал небольшой git commit на сервер CentOS (буквально изменила одну строчку кода), и это породило 4 новых процесса, все Ruby, и уничтожило память на сервере.

Я не какой-то добросовестный администратор сервера, поэтому будет признателен за любое понимание того, как избежать этого в будущем. Из того, что я вижу, эта проблема появления / зависания возникает только тогда, когда происходит фиксация Github.

ОБНОВИТЬ:

Хорошо, это не похоже на git commit является корнем проблемы, но задача rake выполняется как задание cron.

Вот работа cron:

0,15,30,45 * * * * /bin/bash -l -c 'cd /var/www/heatfst && RAILS_ENV=production bundle exec rake send_fst_tickets --silent >> /var/www/heatfst/log/cron/standard.log 2>> /var/www/heatfst/log/cron/error.log'

Когда он запускается, и я проверяю cpu% с помощью top, он увеличивает до ~ 40% памяти процессора и просто зависает там ненадолго, никогда не возвращаясь к нормальному уровню (1-2%).