Bosh sahifa Wiki Cold start

Cold start

Cold start — serverless funksiya, container yoki xizmat uchun tayyor execution instance mavjud bo‘lmaganda yangi muhitni yaratish va dastlabki so‘rovga tayyorlash kechikishi. U odatiy ishlayotgan “warm” instance’dagi request latency’siga qo‘shimcha vaqt qo‘shadi. Atama ko‘pincha FaaS bilan bog‘lanadi, biroq JVM, cache, database va autoscaled web xizmatlarda ham uchraydi.

Bosqichlari

Platformaga qarab cold start quyidagi ishlarning bir qismini o‘z ichiga oladi:

  1. VM, microVM yoki container sandbox ajratish.
  2. Runtime va deployment image’ni yuklash.
  3. Network namespace, identity va secretlarni ulash.
  4. Modul va dependency’larni import qilish.
  5. Global initialization kodini bajarish.
  6. Ilovani readiness holatiga keltirish.

Provider nazoratidagi provisioning va dasturchi nazoratidagi initialization alohida o‘lchanadi. Sekin secret API yoki migration tekshiruvi handler’dan oldin bajarilsa, muammo platformada emas, init kodida bo‘lishi mumkin.

Yuzaga kelish holatlari

Birinchi deployment, uzoq idle davr, instance’larning recycle qilinishi va trafikning keskin ko‘payishi yangi instance talab qiladi. Scale-out burst’ida bir nechta cold start parallel sodir bo‘ladi. Version yoki konfiguratsiya yangilanganda eski warm pool yangi revision uchun yaroqsiz bo‘lishi mumkin.

Cold start har bir so‘rovda yuz bermaydi, shuning uchun o‘rtacha latency uni yashiradi. p95, p99 va cold/warm tegli histogram foydaliroq. Kam trafikdagi endpointda sovuq chaqiruv ulushi yuqori, katta doimiy trafikda esa warm instance’lar ko‘proq saqlanadi.

Ta’sir qiluvchi omillar

Omil Ta’sir mexanizmi
Image yoki paket hajmi Yuklash va unpack vaqtini oshiradi
Runtime JIT, interpreter yoki framework startup’i
Dependency soni Import va classpath tekshiruvini ko‘paytiradi
VPC ulanishi Network interface va route tayyorlashni talab qiladi
Init I/O Database, DNS yoki secret xizmatini kutadi

Ko‘proq memory tanlash ba’zi platformalarda ko‘proq CPU beradi va initialization’ni tezlashtiradi, ammo bu universal qoida emas. Minimal image foydali, lekin zarur sertifikat yoki timezone ma’lumotini olib tashlash funksional xato keltirishi mumkin.

Kamaytirish usullari

Initialization’dan keraksiz ishlar chiqariladi: barcha modulni oldindan yuklash o‘rniga zarur qismini lazy import qilish, katta konfiguratsiyani ixchamlashtirish va tarmoq chaqiruvini cache qilish mumkin. Handler ichida har safar bajariladigan ish bilan bir martalik init ishini ajratish muhim.

Provisioned concurrency yoki minimum replica instance’larni oldindan warm holatda saqlaydi. Bu predictability beradi, lekin nol trafikda ham resurs sarflaydi. Scheduled warming request platforma instance’ni baribir almashtirmasligiga kafolat bermaydi va sun’iy trafik yaratadi.

Latency juda qat’iy bo‘lsa, doimiy service yoki edge’da oldindan ishga tushirilgan instance ma’qul bo‘lishi mumkin. Arxitektura tanlovi faqat cold start emas, throughput, state, operatsion yuk va narxni birga ko‘radi.

Container va JVM holati

Kubernetes’da pod cold start image pull, scheduling, volume mount, application startup va readiness probe vaqtlaridan tuziladi. Image node cache’da bo‘lsa pull qisqaradi; pod scheduling esa cluster capacity yetishmasa uzoqlashadi. Har bosqich uchun alohida event va metric mavjud.

JVM ishga tushgach ham JIT compiler tez-tez bajariladigan kodni keyin optimallashtiradi. Dastlabki requestlar startup’dan o‘tgan bo‘lsa-da steady-state tezligiga yetmagan bo‘lishi mumkin. Class-data sharing, ahead-of-time compilation va profile guided optimization bu davrga ta’sir qiladi.

To‘g‘ri o‘lchash

Client tomondagi to‘liq latency DNS, TLS va network vaqtini ham o‘z ichiga oladi. Platforma init duration’i esa faqat server ichidagi bosqichni o‘lchashi mumkin. Trace cold request’ni belgilab, provisioning, init va handler spanlarini ajratadi.

Benchmark bir xil region, paket, memory va concurrency bilan takrorlanadi. Faqat birinchi chaqiruvni o‘lchash distribution bermaydi; instance qachon recycle bo‘lishi ham nazorat qilinmaydi. Real traffic telemetry synthetic test bilan birga tahlil qilinadi.

Bog‘liq tushunchalar

Function as a Service, Startup time, Warm instance, Provisioned concurrency, Auto scaling, Container image, Tail latency