Veritabanı kilit yığılması
SysAdmin Crisis'te veritabanı kilit yığılması: web sunucuları sağlıklı görünür, gecikme ise tırmanır. Log imzasını ve diğer olaylardan farkını öğren.
Son güncelleme:
Örüntü eşlemeyi cezalandıran olay. Raftaki her şey iyi görünür, trafik barı normaldir ve gece yine de dağılmaktadır.
Ne yapar
Bir veritabanı makinesindeki sorgular tamamlanmak yerine kilitleri beklemeye başlar. Hiçbir şey çökmez, hiçbir makine doygunluğa gitmez — ama istekler veritabanının arkasında kuyruğa girer, gecikme tırmanır ve uptime onu izler.
Web katmanı baştan sona sağlıklıdır. Bu olayın karakterinin tamamı bu: belirti filo genelinde yavaşlık, sebep ise asla kızarmayan tek bir makine.
Log imzası
Veritabanı makinesinin PostgreSQL günlüğünde bekleme ve süre satırları, kenarda ise yalnızca gecikme uyarısı görünür:
04:03:11 db-01 postgres[1187]: [2210] LOG: process 2210 still waiting for ShareLock on transaction 48212 after 1000.051 ms
04:03:11 db-01 postgres[1187]: [2210] DETAIL: Process holding the lock: 2207. Wait queue: 2210.
04:03:40 web-01 monit[598]: 'shop-api' failed protocol test [HTTP] at [localhost]:80/healthz [TCP/IP] -- HTTP: response time 2100 ms exceeds 1000 ms
04:04:12 db-01 postgres[1187]: [1187] FATAL: remaining connection slots are reserved for non-replication superuser connections
Kilidi tutan oturum yalnızca süresini yazar; bekleyenler ise kimi beklediklerini
söyler. Zinciri sondan başa yürüyerek kökü bulursun. db_stat
aktif sorguları kimlik, bekleme süresi ve adla listeler ve kilitte takılı
olanları işaretler.
Dokunmazsan
Kilit kuyruğu büyür ve gecikme vardiyanın geri kalanında yüksek kalır. Hiçbir
makine DOWN düşmediği için uptime kaybı tamamen gecikmeden ve ardından
SLA borcundan gelir. Rafın tamamı
yeşilken bu yüzden gece kaybetmek mümkündür.
Ayırt etme
| Benzeyen | Ayıran |
|---|---|
| DDoS seli | İkisi de gecikmeyi yükseltir. Sel ayrıca web makinelerinde CPU'yu yükseltir ve kernel'den SYN uyarıları getirir; kilit yığılması ikisini de getirmez. |
| Kaçak görev | İkisi de bir veritabanı makinesini ilgilendirebilir, ama kaçak görev CPU'yu kilitler ve bir süreç adlandırır; bu, sorgu adlandırır. |
Ne zaman çıkar
| En erken gece | 3 |
| Gerektirir | bir db makinesi |
| Ağırlık | 80 |
| Aynı anda | tek örnek |
Olay, gerçek bir uptime bedeliyle kapanabilir; kapanış satırı bunu temiz kapanıştan ayırır.