pm2 start ...
ile sunucumu çalıştırıyordum ve pm2 monit
bana 2 saat sonra 3GB memory
gösteriyordu. Bu yüzden memwatch ekledim, şimdi 2 saat daha bekledim ve tekrar pm2 monit
tarafından gösterilen bellek 3GB
'a ulaştı.Node.JS bellek sızıntısı PM2 ile
Bu nedenle, oluşturulan günlükleri denetledim.
{ before: { nodes: 75659, size_bytes: 11141702, size: '10.63 mb' },
after: { nodes: 73226, size_bytes: 10840598, size: '10.34 mb' },
change:
{ size_bytes: -301104,
size: '-294.05 kb',
freed_nodes: 5141,
allocated_nodes: 2708,
Ve başka: bana gösterdi O pm2 monit
büyük bellek sızıntısı gösterdi oluşturulan günlükleri eminim böylece
{ before: { nodes: 72591, size_bytes: 10728318, size: '10.23 mb' },
after: { nodes: 73284, size_bytes: 10798062, size: '10.3 mb' },
change:
{ size_bytes: 69744,
size: '68.11 kb',
freed_nodes: 5931,
allocated_nodes: 6620,
Şimdi gerçekten karıştı, bu son kayıtları.
Neden memwatch
neden 10MB+
bellek ve 3GB+
gösteren pm2 monit gösteriyor?
Şimdi kaçak devam edip etmediğini öğrenmek için
forever
veya
monit gibi bir şey geçiş.
Biraz daha fazla arka plan
- ben profil ve sızıntıyı bulmak için uğraşıyorlar ve profillerinde sadece herhangi bir sızıntı gösteren yoktur.
- Bir müşteri bağlandığında ve istemci bağlantı kesildiğinde fark alındığında, memwatch farklılığı başlatılır.
Bu konuda, son 2 gündür onu izlemeye çalışıyordum ve sadece bulamıyorum. Bu yüzden sonunda inanılmaz, devasa hafıza ve performans farkı olan Golang'a geçmeye karar verdim. Çok verimli. Sonunda kafa karıştırıcı sızıntı yok. Artı kodlama oldukça kolay, javascript bir günden daha az bir sürede golang için. – majidarif