Postgresler rastgele% 100 CPU'ya yükseldi ve normale döndü


0

16.04 Ubuntu'da postgreSQL 9.5 kullanıyorum

Yaklaşık bir saat önce sitemin çok yavaş ve kullanılamaz olduğunu fark ettim. DigitalOcean konsolumu kontrol ettim ve CPU kullanımının% 100'e yükseldiğini fark ettim. topKonsolda koştuğumda suçlular postgres oldu.

Bazı sorun giderme işlemleri yaptım ancak sorunu çözemedim. Bu yüzden sunucuyu kapatmaya ve CPU kullanımının düşüp düşmediğine bakmaya karar verdim. Sunucuyu kapattıktan 5 dakika sonra, CPU kullanımı nihayet% 100'den% 0'a düştü.

Sunucuyu yeniden başlattıktan sonra, site aynı sorunu vardı ve kullanılamazdı. Sunucu yeniden başlatıldıktan 2 dakika sonra, hiçbir şey yapmadan her şey aniden normale döndü.

30 dakika acı

Peki buna ne sebep oldu? Geçmişte benzer bir sorunla karşılaştım, postgres'ler büyük çivilere neden olacak ve web sitesini kullanılamaz hale getirecekti, sadece bir saat sonra kendini düzeltmek için

EDIT: Yine% 100 olarak geri döndü.


Günlükleri kontrol ettin mi?
Nasir Riley,

Web siteniz ne kadar savunmasız ve güvenli? Web sitenizi devre dışı bırakın ve bir zaman çizelgesi varsa, veritabanının geçici olarak çalışmasını sağlayın. Trafik hala devam edip etmediğini kontrol edin. Olmazsa, XSS veya SQL enjeksiyonuna karşı savunmasız olabilirsiniz ve birileri veya botlar size saldırıyor. Diğer bir olasılık ise, sitenizin sivri uçlara neden olan belirli bir işlev altında yazılı olmayan bir sorgusu olmasıdır. Tabii ki, DigitalOcean aracılığıyla daha fazla kaynağa yükseltirseniz, darboğaza girmemek için yeterli olması koşuluyla yükü kaldırabilir.
Brad

Yanıtlar:


1

Büyük olasılıkla çok fazla kaynak kullanan veya çok büyük miktarda veri alan bir sql sorgusu (geçici dosyalara geçiş). Kontrol etmek için log_min_duration_statement ayarını etkinleştirerek sunucunun belirtilen sorgulama süresinin ötesinde bir günlüğe kaydetmesini sağlayabilirsiniz. Bunu yapmak için bu parametreyi postgresql.conf dosyasına uygun süreyle ekleyin (veya uncomment) (2s iyi bir başlangıçtır), sonra yeniden yükleyin (yeniden başlatmaya gerek yoktur). Bir dahaki sefere sorun ortaya çıktığında, günlük dosyası içeriğini kontrol edin. Eğer sorun buysa, hatalı istek (ler) inizin metnini ve ne kadar canlandırdıklarını bile bulacaksınız.

Daha fazla ayrıntı için (bkz. 18.8.2. Ne Zaman Giriş Yapmalı ): PostgreSQL 9.5 doc .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.