Veritabanı kilit yığılması
Sağlıklı web sunucuları, dikleşen bir gecikme eğrisi ve birbirini bekleyen sorgular.
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ı
Sorgu kimlikleri, onlarca saniyelik bekleme süreleri ve bir işlem adıyla
birlikte LOCK WAIT ifadesi:
04:03:11 [db-01] yavaş sorgu #9412: 34000ms — LOCK WAIT (checkout_tx)
04:03:40 [db-01] bağlantıların %62'si kilit bekliyor
04:04:02 ortalama gecikme 2100ms — hedefin üstünde
db_stat aktif sorguları kimlik, bekleme süresi ve adla
listeler ve kilitte takılı olanları işaretler. Bunun içini görebilen tek komut
odur; olayı doğrulamanın ya da elemenin en hızlı yolu da bu.
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 bant genişliği barını ve web makinelerinde CPU'yu yükseltir; kilit yığılması ikisini de yükseltmez. |
| 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 kapatan kısmi bir çıkış yolu da var — kapanış log satırı onu temiz olandan ayırır.