Node.js
Production tuning
Production tuning ve Node.js flags öğrenirsin.
Production tuning
Production tuning, Node.js uygulamasını üretimde en iyi performansla çalıştırmak için yapılan ayarlar bütünüdür. Bellek için --max-old-space-size, CPU için flame graph, GC için --expose-gc ve kütüphane seçimi buraya girer.
Bir tuningAdvice(issue) fonksiyonu bu kararları modeller: 'memory' için 'limit heap', 'cpu' için 'profile flame', diğerleri için 'check flags' döndürür. Üretimde her ayarın maliyeti vardır; yanlış bayrak beklenmedik çökmelere yol açabilir. Bu yüzden ayarlar aşamalı uygulanır ve her değişiklikten sonra ölçüm yapılır. Bu basit model, sorunu bir kategoriye indirgeyip uygun ayarı işaret eder; gerçek ortamda her ayar ayrı bir deney gerektirir.
Bayrak ve ölçüm
Üretimde bir bayrağı değiştirmeden önce ölçüm şarttır. --max-old-space-size yığın üst sınırını yükseltir ama bellek sızıntısını gizleyebilir. --expose-gc manuel çöp toplama çağrısına izin verir ama yanlış kullanım gecikmelere yol açar.
Örnek: tuningAdvice('memory') 'limit heap' döner; bu, öncelikle yığını sınırlamayı işaret eder. tuningAdvice('cpu') 'profile flame' döner; bu, alev grafiğiyle darboğazı bulmayı söyler. Her ayar tek başına anlamlı değildir; uygulamayı çalıştıran gerçek yük altında test edilmelidir. Bu yüzden iyi bir takım ayarları 'deney - ölç - karşılaştır' döngüsüyle uygular. Yanlış ayar, doğru amaç için bile sorun yaratabilir.
Uygulama Tuning advice fonksiyonu yaz
function tuningAdvice(issue) yaz. if (issue === 'memory') return 'limit heap';, if (issue === 'cpu') return 'profile flame'; ve return 'check flags'; ekle. console.log(tuningAdvice('memory')) ve console.log(tuningAdvice('cpu')) yazdır.
Örnek çözümü göster
function tuningAdvice(issue) {
if (issue === 'memory') return 'limit heap';
if (issue === 'cpu') return 'profile flame';
return 'check flags';
}
console.log(tuningAdvice('memory'));
console.log(tuningAdvice('cpu'));
Kendini test et
-
Memory dalını tamamla
if (issue === 'memory') return '____';
Cevabı göster
if (issue === 'memory') return 'limit heap';
-
CPU darboğazı için tuningAdvice ne döndürür?
tuningAdvice('cpu')
- limit heap
- check flags
- profile flame
- more memory
Cevabı göster
profile flame — cpu için 'profile flame' döner; alev grafiği darboğazı gösterir.
-
Parçayı rolüne eşle
- memory
- limit heap
- cpu
- profile flame
- --max-old-space-size
- Yığın üst sınırı
- --expose-gc
- Manuel GC
Sıradaki ders: Özet - Performans mühendisliği