Điểm:0

Dịch vụ Systemd cho Sinatra + Thin tiếp tục khởi động lại

lá cờ cn

Tôi có dịch vụ systemd cho ứng dụng Sinatra chạy với máy chủ Thin phía sau proxy ngược Nginx. Nó hoạt động tốt nhưng vì nó nhận được rất nhiều lưu lượng truy cập nên tôi thấy rất nhiều lỗi nginx về việc không thể kết nối với thượng nguồn. Khi kiểm tra dịch vụ, tôi nhận thấy rằng nó không bao giờ chạy quá lâu, tốt nhất chỉ vài phút, điều này giải thích tại sao Nginx không thể kết nối nhiều lần (trong khi dịch vụ đang khởi động lại).

Nhìn vào đầu ra của tạp chí đối với dịch vụ tôi thấy rất nhiều điều này:

Ngày 20 tháng 12 22:09:48 cs2092 systemd[1]: Bắt đầu trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:10:59 Gói cs2092 [11576]: phương thức ảo thuần túy được gọi
Ngày 20 tháng 12 22:10:59 gói cs2092[11576]: kết thúc cuộc gọi mà không có ngoại lệ hoạt động
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: my-service.service: Quá trình chính đã thoát, code=killed, status=6/ABRT
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: my-service.service: Failed with result 'signal'.
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: my-service.service: Hết thời gian tạm dừng dịch vụ, lên lịch khởi động lại.
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: my-service.service: Công việc khởi động lại theo lịch trình, bộ đếm khởi động lại ở mức 7.
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: Đã dừng Trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:10:59 cs2092 systemd[1]: Bắt đầu trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:11:19 gói cs2092[11828]: phương thức ảo thuần túy được gọi
Ngày 20 tháng 12 22:11:19 gói cs2092[11828]: kết thúc cuộc gọi mà không có ngoại lệ đang hoạt động
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: my-service.service: Quá trình chính đã thoát, code=killed, status=6/ABRT
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: my-service.service: Failed with result 'signal'.
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: my-service.service: Hết thời gian tạm dừng dịch vụ, lên lịch khởi động lại.
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: my-service.service: Công việc khởi động lại theo lịch trình, bộ đếm khởi động lại ở mức 8.
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: Đã dừng Trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:11:19 cs2092 systemd[1]: Bắt đầu trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:14:28 gói cs2092[11968]: phương thức ảo thuần túy được gọi
Ngày 20 tháng 12 22:14:28 gói cs2092[11968]: chấm dứt được gọi mà không có ngoại lệ hoạt động
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: my-service.service: Quá trình chính đã thoát, code=killed, status=6/ABRT
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: my-service.service: Failed with result 'signal'.
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: my-service.service: Hết thời gian tạm dừng dịch vụ, lên lịch khởi động lại.
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: my-service.service: Công việc khởi động lại theo lịch trình, bộ đếm khởi động lại là 9.
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: Đã dừng Trang web ứng dụng của tôi.
Ngày 20 tháng 12 22:14:28 cs2092 systemd[1]: Bắt đầu trang web ứng dụng của tôi.

Có vẻ như ứng dụng đang bị giết thường xuyên? Tại sao chuyện này đang xảy ra?

Đây là dịch vụ:

[Đơn vị]
Mô tả=Trang web ứng dụng của tôi
Tài liệu = https://myapp.com
Sau=mạng.mục tiêu

[Dịch vụ]
Loại = đơn giản
WorkingDirectory=/var/www/my-app
Môi trường="RACK_ENV=sản xuất"
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 --debug bắt đầu
ExecStop=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 dừng
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 khởi động lại
Khởi động lại = khi thất bại
Người dùng=julien

[Cài đặt]
WantedBy=multi-user.target

Một điều nữa tôi không hiểu, như bạn có thể thấy từ dịch vụ mà tôi đang bắt đầu sử dụng Sinatra --max-conns 15360 và trong tạp chí đầu ra tôi có thể thấy các kết nối tối đa được đặt thành 1024:

Ngày 21 tháng 12 10:24:24 gói cs2092[21058]: Bắt đầu ứng dụng của tôi trong sản xuất...
Ngày 21 tháng 12 10:24:24 gói cs2092[21058]: 2021-12-21 10:22:30 +0000 Máy chủ web mỏng (v1.8.1 tên mã Infinite Smoothie)
Ngày 21 tháng 12 10:24:24 gói cs2092[21058]: 21-12-2021 10:22:30 +0000 Gỡ lỗi BẬT
Ngày 21 tháng 12 10:24:24 gói cs2092[21058]: 21-12-2021 10:22:30 +0000 Số kết nối tối đa được đặt thành 1024
Ngày 21 tháng 12 10:24:24 gói cs2092[21058]: 2021-12-21 10:22:30 +0000 Đang nghe trên 0.0.0.0:6903, CTRL+C để dừng

Bất kỳ ý tưởng về những gì đang xảy ra?

Lưu ý: Ubuntu 18.04.4

lá cờ jp
Crosspost đã trả lời tại https://unix.stackexchange.com/a/683327/1027
Điểm:0
lá cờ cn

Vì vậy, có vẻ như vấn đề nằm ở máy chủ Thin, khi tôi thay thế nó bằng Puma thì mọi vấn đề đều biến mất.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.