Soğuk Başlangıç (Cold Start) Nedir?

İngilizce: Cold Start

Soğuk başlangıç, serverless veya ölçeklenen ortamlarda yeni çalışma biriminin ilk isteğe hazırlanırken ek gecikme üretmesidir.

Soğuk Başlangıç (Cold Start) Nedir?

Soğuk başlangıç, bir fonksiyonun, container’ın veya çalışma ortamının henüz hazır olmadığı anda gelen ilk isteğin başlatma maliyetidir. Kodun yüklenmesi, runtime’ın açılması, bağımlılıkların hazırlanması ve bazen veritabanı bağlantılarının kurulması bu gecikmeye eklenir.

Bu durum en çok serverless mimarilerde görülür. Bir Lambda fonksiyonu uzun süre çağrılmadığında platform çalışma birimini kapatabilir; yeni istek geldiğinde ortam yeniden oluşturulur. Benzer gecikme otomatik ölçeklenen container sistemlerinde yeni instance açılırken de yaşanabilir.

Nedenleri ve Azaltma Yolları

Soğuk başlangıcı artıran etkenler büyük paket boyutu, ağır framework yükleme süreci, gereksiz global başlatma kodu, yavaş ağ bağlantıları ve ilk istekte yapılan gizli bilgi veya konfigürasyon okumalarıdır. Node.js, Python, Java veya .NET gibi runtime’lar arasında başlangıç davranışı da farklıdır.

Azaltma için küçük bundle, tembel yükleme, bağlantı havuzunu kontrollü başlatma, kritik fonksiyonlarda provisioned concurrency, daha hafif runtime seçimi ve edge çalışma ortamları kullanılabilir. Her fonksiyonu sürekli sıcak tutmak maliyetli olabileceği için karar, gerçek trafik deseni ve kullanıcıya görünen gecikme üzerinden verilmelidir. Serverless function tasarımında p95/p99 gecikme metrikleri ortalamadan daha açıklayıcıdır.