Bosh sahifa Wiki Resource management

Resource management

Resource management — hisoblash tizimidagi CPU vaqti, xotira, disk, tarmoq, ulanish, fayl deskriptori va boshqa cheklangan imkoniyatlarni taqsimlash, kuzatish hamda bo‘shatish jarayonidir. Uning maqsadi faqat yuqori unumdorlik emas, xizmatlar bir-biriga zarar bermaydigan adolatli va bashorat qilinadigan ishlashni ta’minlashdir.

Resurs hayot sikli

Resurs so‘raladi, ajratiladi, ishlatiladi va yakunda qaytariladi. Fayl, socket yoki lock istisno yuz berganda ham yopilishi kerak. RAII, context manager, defer va finally kabi mexanizmlar cleanupni kod yo‘liga bog‘laydi. Qo‘lda bo‘shatish unutilsa resource leak yuz beradi; ikki marta bo‘shatish esa xotira buzilishi yoki boshqa xatoga olib keladi.

Pool qimmat resursni qayta ishlatadi. Ma’lumotlar bazasi connection pooli ulanish sonini server limitiga mos cheklaydi. Pool cheklanmagan navbat bilan ishlasa so‘rovlar xotirada yig‘ilib, kechikish o‘sadi. Acquire timeout va backpressure ortiqcha yukni erta ko‘rsatadi.

Operatsion tizim darajasi

Scheduler CPU vaqtini jarayon va oqimlarga beradi. Virtual memory jarayonlarga manzil makoni taqdim etib, fizik sahifalarni ehtiyojga ko‘ra taqsimlaydi. Quota va limit bitta foydalanuvchi barcha fayl, process yoki descriptorni egallashini cheklaydi. OOM holatida tizim allocationni rad etishi yoki jarayonni tugatishi mumkin.

Container cgroup orqali CPU ulushi, memory limit, I/O va process sonini boshqaradi. Limit reservation emas: podga 2 GB limit qo‘yish fizik xotirani oldindan ajratmaydi. CPU quota tugasa jarayon throttlingga tushadi; ilova ichida CPU past ko‘rinsa ham tail latency oshishi mumkin.

Ilova va cloud boshqaruvi

Ilova har so‘rov uchun vaqt, payload hajmi va concurrency byudjeti belgilaydi. Cancellation pastki qatlamlarga tarqalmasa mijoz ketganidan keyin ham database query va tashqi chaqiriq resurs sarflaydi. Deadline barcha bosqichga qolgan vaqt bilan uzatiladi, har qatlam alohida to‘liq timeout qo‘shmaydi.

Cloud autoscaling yukga qarab instance sonini oshiradi, lekin scaling kechikishi va tashqi xizmat limitlari bor. Faqat CPUga qarash queue backlog yoki database bottleneckni ko‘rmaydi. Capacity planning o‘rtacha bilan birga peak, o‘sish, failover va maintenance paytidagi zaxirani hisoblaydi.

Kuzatuv va adolatlilik

Utilization, saturation va error birga o‘lchanadi. Disk 100 foiz bandligi, run queue, memory pressure, descriptor ishlatilishi va pool kutish vaqti muhim. Yuqori utilization doim muammo emas, saturation navbat va kechikish bilan bilinadi.

Multi-tenant tizimda rate limit va quota noisy neighbor ta’sirini kamaytiradi. Priority kritik ishni oldinga chiqarishi mumkin, ammo past darajadagi vazifani och qoldirmasligi kerak. Weighted fair queue yoki alohida poollar izolyatsiya beradi. Limit o‘zgarishi audit qilinadi, chunki favqulodda istisno doimiy ortiqcha ruxsatga aylanib qolishi mumkin.

Nosozlik paytidagi boshqaruv

Resurs tugashi odatiy control flow sifatida rejalashtiriladi. Ulanish olinmasa so‘rov cheklangan xato bilan tugaydi, yangi ish qabul qilish kamayadi va mavjud kritik ishga zaxira qoldiriladi. Log yozishning o‘zi disk to‘la paytda muvaffaqiyatsiz bo‘lishi mumkin; monitoring alohida kanal va oldindan ajratilgan joydan foydalanadi. Circuit breaker ishlamayotgan dependencyga yangi so‘rovni kamaytiradi, ammo barcha trafik bir vaqtda tiklanmasligi uchun half-open va jitter kerak. Load shedding tanlangan past ustuvor ishni rad etadi. Qaysi vazifa saqlanishi biznes talabi bilan aniqlanadi, tasodifiy queue tartibi bilan emas.

Bog‘liq tushunchalar

Quota, Cgroup, Resource leak, Connection pool, Backpressure, Capacity planning