DBAtlas · Veritabanı operasyon atlası

Bağlantıları uygulama ve istemciye göre say (bağlantı fırtınası teşhisi)

MongoDBPerformans

Komut

// Toplam, kullanilabilir ve reddedilen baglanti sayisi:
db.serverStatus().connections
// Baglantilari uygulama adi ve istemci IP'sine gore say:
db.getSiblingDB("admin").aggregate([
  { $currentOp: { allUsers: true, idleConnections: true } },
  { $group: { _id: { app: "$appName", client: { $arrayElemAt: [{ $split: ["$client", ":"] }, 0] } }, conns: { $sum: 1 }, active: { $sum: { $cond: ["$active", 1, 0] } } } },
  { $sort: { conns: -1 } },
  { $limit: 20 }
])

Ne yapar?

Sunucudaki toplam ve kullanılabilir bağlantı sayısını, ardından açık bağlantıları appName ve istemci IP'sine göre gruplayıp aktif olanlarla birlikte gösterir.

Ne zaman kullanılır?

Bağlantı sayısı aniden arttığında, 'connection refused' veya pool timeout hatalarında, hangi uygulama sunucusunun bağlantı sızdırdığını bulmak için.

Dikkat

idleConnections: true tüm boşta bağlantıları da döndürdüğü için binlerce bağlantılı sistemde çıktı büyüktür; $group ile özetlemek bu yüzden önemlidir. client alanı null olan satırlar iç thread'lerdir. Her bağlantı yaklaşık 1 MB bellek tüketir; bağlantı fırtınası WiredTiger cache dışındaki belleği de büyütür.

DBAtlas'ta aç →

İlgili