Gözetim mekanizmamız, bilerek durdurduğumuz servisleri yeniden başlattı

Operasyonlar

Gözetim mekanizmalarımızdan biri, etkin ancak çalışmayan servislerimizi başlatır. Ekim ayında iki kez, bilerek durdurduğumuz servisleri başlattı. İkinci seferde, sitelerimizden birini ziyaret edenler yaklaşık 45 dakika boyunca hatalarla karşılaştı.

Bu gözetim mekanizmasının var olma nedeni

SIGTERM aldığında temiz bir şekilde çıkan bir servis, örneğin adıyla sonlandırıldığı için, systemd açısından "başarısız" sayılmaz. Restart=on-failure onu geri getirmez ve systemctl --failed onu listelemez. Biri fark edene kadar kapalı kalır. Bu yüzden gözetim mekanizması, etkin ancak çalışmayan servisleri arar ve onları başlatır.

Sorun şu ki, elle durdurduğunuz bir servis tıpatıp aynı görünür.

İlk sefer

7 Ekim'de, iş kuyruğunu düzenlemek için 12:47'de systemctl stop komutuyla bir video işçisini durdurduk. 12:55'te tekrar çalışıyordu: gözetim mekanizması onu başlatmıştı.

İkinci sefer

21 Ekim'de, sitelerimizden ikisine de hizmet veren makinenin belleğine bir model testi için ihtiyacımız vardı. Bir betik, sitelerin web uygulamalarını, bir senkronizasyon işini ve bir veritabanı konteynerini yine systemctl stop ile durdurdu. Yaklaşık beş dakika sonra siteleri izleyen bir zamanlayıcı ve 19:14'te gözetim mekanizması, tüneli ve web uygulamalarını geri getirdi.

Tünel tekrar trafik almaya başladı, ancak web uygulamaları yanıt veremiyordu: test edilen model, makinenin belleğinin 114 GiB'ini işgal ediyordu. Yaklaşık 19:14'ten 20:00'e kadar bazı ziyaretçiler 502 hataları aldı. 20:00'de tüneli, web uygulamalarını ve senkronizasyon işini devre dışı bıraktık ve izleme zamanlayıcısını durdurduk.

Şu anda kullandığımız kural

Aynı aylardan iki systemd tuzağı daha

Factory Floor, etkin ancak çalışmayan hizmetleri izler. Varsayılan olarak yalnızca bunları raporlar ve ancak siz açarsa başlatır. 1.0.3 sürümünden itibaren uyarısı, bir hizmeti kasıtlı olarak nasıl duraklatacağınızı da söyler ve runbook aynı bilgiyi içerir.

Güncellendi: