У меня есть служба systemd для приложения Sinatra, работающего с тонким сервером за обратным прокси-сервером Nginx. Он работает нормально, но поскольку он получает много трафика, я вижу много ошибок nginx о невозможности подключения к восходящему потоку. При проверке службы я заметил, что она никогда не работает очень долго, в лучшем случае всего несколько минут, что объясняет, почему Nginx не может подключиться много раз (во время перезагрузки службы).
Глядя на вывод журналctl
для службы я вижу много этого:
20 декабря, 22:09:48 cs2092 systemd[1]: запущен веб-сайт моего приложения.
20 декабря 22:10:59 комплект cs2092 [11576]: вызывается чистый виртуальный метод
20 декабря 22:10:59 комплект cs2092 [11576]: завершение вызывается без активного исключения
20 декабря 22:10:59 cs2092 systemd[1]: my-service.service: основной процесс завершен, код = убит, статус = 6/ABRT
20 декабря, 22:10:59 cs2092 systemd[1]: my-service.service: Ошибка с результатом «сигнал».
20 декабря, 22:10:59 cs2092 systemd[1]: my-service.service: Время задержки службы истекло, запланирован перезапуск.
20 декабря, 22:10:59 cs2092 systemd[1]: my-service.service: запланированное задание перезапуска, счетчик перезапусков равен 7.
20 декабря, 22:10:59 cs2092 systemd[1]: остановлен веб-сайт моего приложения.
20 декабря 22:10:59 cs2092 systemd[1]: запущен веб-сайт моего приложения.
20 декабря 22:11:19 комплект cs2092 [11828]: вызывается чистый виртуальный метод
20 декабря 22:11:19 комплект cs2092 [11828]: завершение вызова без активного исключения
20 декабря 22:11:19 cs2092 systemd[1]: my-service.service: основной процесс завершен, код = убит, статус = 6/ABRT
20 декабря, 22:11:19 cs2092 systemd[1]: my-service.service: Ошибка с результатом «сигнал».
20 декабря, 22:11:19 cs2092 systemd[1]: my-service.service: Время задержки службы истекло, запланирован перезапуск.
20 декабря, 22:11:19 cs2092 systemd[1]: my-service.service: запланированное задание перезапуска, счетчик перезапусков равен 8.
20 декабря, 22:11:19 cs2092 systemd[1]: остановлен веб-сайт моего приложения.
20 декабря 22:11:19 cs2092 systemd[1]: запущен веб-сайт моего приложения.
20 декабря 22:14:28 комплект cs2092 [11968]: вызывается чистый виртуальный метод
20 декабря 22:14:28 комплект cs2092 [11968]: завершение вызова без активного исключения
20 декабря 22:14:28 cs2092 systemd[1]: my-service.service: основной процесс завершен, код = убит, статус = 6/ABRT
20 декабря, 22:14:28 cs2092 systemd[1]: my-service.service: Ошибка с результатом «сигнал».
20 декабря, 22:14:28 cs2092 systemd[1]: my-service.service: Время задержки службы истекло, запланирован перезапуск.
20 декабря, 22:14:28 cs2092 systemd[1]: my-service.service: запланированное задание перезапуска, счетчик перезапусков равен 9.
20 декабря, 22:14:28 cs2092 systemd[1]: остановлен веб-сайт моего приложения.
20 декабря 22:14:28 cs2092 systemd[1]: запущен веб-сайт моего приложения.
Похоже, приложение регулярно убивают? Почему это происходит?
Вот служба:
[Ед. изм]
Description=Веб-сайт моего приложения
Документация=https://myapp.com
После=network.target
[Оказание услуг]
Тип=простой
Рабочий каталог=/var/www/my-app
Окружающая среда = «RACK_ENV = производство»
ExecStart=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 --max-conns 15360 --max-persistent-conns 2048 --threaded --начало отладки
ExecStop=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 стоп
ExecReload=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 --max-conns 15360 --max-persistent-conns 2048 --threaded --debug перезапустить
Перезапуск = при сбое
Пользователь=жюльен
[Установить]
WantedBy=многопользовательская.цель
Еще одна вещь, которую я не понимаю, как вы можете видеть из службы, с которой я запускаю Sinatra --max-conns 15360
и все же в журналctl
вывод я вижу, что максимальное количество подключений установлено на 1024:
21 декабря 10:24:24 комплект cs2092 [21058]: запуск моего приложения в производстве...
21 декабря 10:24:24 cs2092 bundle[21058]: 2021-12-21 10:22:30 +0000 Тонкий веб-сервер (кодовое имя v1.8.1 Infinite Smoothie)
21 декабря 10:24:24 комплект cs2092 [21058]: 2021-12-21 10:22:30 +0000 Отладка включена
21 декабря 10:24:24 комплект cs2092[21058]: 2021-12-21 10:22:30 +0000 Максимальное количество подключений установлено на 1024
21 декабря 10:24:24 cs2092 bundle[21058]: 2021-12-21 10:22:30 +0000 Прослушивание 0.0.0.0:6903, CTRL+C для остановки
Любая идея о том, что происходит?
Примечание: Ubuntu 18.04.4.