Как отладить, почему приложение Rails на сервере Puma выходит из строя - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть веб-приложение с Rails API, работающее на сервере Puma с базой данных MySQL.Я запускаю пакетный процесс, который записывает много журналов в файл журнала.В определенный момент через некоторое время работающий сервер Puma выходит из строя.В журналах все выглядит хорошо до тех пор, пока, по всей видимости, без причины не сработает.Но я не вижу никакой ошибки.Ни в пума.ерр.Не уверен, связано ли это с сервером или базой данных (что-то связанное с пулом?).Я слепой.Я не знаю, где искать, чтобы отладить проблему.

ОБНОВЛЕНИЕ : Я думаю, что сузил проблему.Я понял, что сервер Puma всегда выходит из строя при попытке загрузить один и тот же элемент.Я попытался сделать тест в разработке, и он работает там.Итак, я думаю, что знаю, что это убивает.Я не уверен, но сильно подозреваю, что элемент, который я пытаюсь загрузить в моем пакетном процессе, выполняет много запросов в одной транзакции в базе данных MySQL.Я думаю, что транзакция не в состоянии обработать все запросы, и по какой-то причине сервер Puma выходит из строя.Я не знаю, имеет ли это смысл, но это мой главный подозреваемый.Я прочитал кое-что о размерах транзакций и файлах журнала Как определить максимальный размер транзакции в MySQL?

Мой новый вопрос: если это действительно происходит, могу ли я увидеть ошибку, связанную сэто в любом файле журнала (Puma или Mysql)?

ОБНОВЛЕНИЕ 2 : я прилагаю информацию об окружающей среде:

РАЗРАБОТКА: MacOS, Процессор: 2,4 ГГц, ОЗУ: 8 ГБ

ПРОИЗВОДСТВО: Ubuntu14, Процессор: 2,5 ГГц, ОЗУ: 3,7 ГБ (экземпляр AWS) Что касается конфигурации Puma, я не очень опытен, но я запускаю сервер с файлом конфигурации всего с двумястроки в средах разработки и конфигурации:

stdout_redirect 'path_to_log_file.log', 'path_to_error_file.log', true
bind 'unix:///tmp/puma.sock' 

При запуске я не вижу и рабочих конфигураций, поэтому я предполагаю, что у меня только один рабочий и число потоков по умолчанию от 0 до 16.

...