Resource limit — process, container, tenant yoki workload iste’mol qilishi mumkin bo‘lgan hisoblash resursining yuqori chegarasidir. CPU, xotira, file descriptor, process soni, storage, network bandwidth, request hajmi va execution time cheklanishi mumkin. Limit resurs tugashidan va bir consumer boshqalarga zarar yetkazishidan himoya qiladi.
Limit va reservation
Limit maksimal iste’molni, reservation yoki request esa kafolatlangan yoki scheduling uchun hisoblangan minimal ehtiyojni bildiradi. CPU limit oshganda workload throttling qilinishi mumkin. Xotira limitidan oshish odatda allocation failure yoki process terminationga olib keladi. Platforma semantikasi aniq tekshiriladi.
Quota ko‘pincha tenant yoki namespace bo‘yicha jami resursni cheklaydi. Bitta request limiti bilan umumiy quota birga kerak: ko‘p kichik request har biri me’yorda bo‘lib, jami resursni tugatishi mumkin.
Tizim darajasidagi limitlar
Operatsion tizim open file, stack size, CPU time va process soniga limit beradi. File descriptor tugasa network connection va log file ochilmaydi. Process limit fork bomb’ni cheklaydi. Core dump size maxfiy memoryning nazoratsiz diskka yozilishini kamaytirishi mumkin.
Container cgroup CPU share, quota, memory va I/O’ni boshqaradi. Container ichidagi monitoring faqat application heap’ni ko‘rib, native memory yoki page cache’ni o‘tkazib yuborishi mumkin. OOM event va cgroup usage birga kuzatiladi.
Application chegaralari
Request body, upload, decompressed size, JSON depth va collection element soni cheklanadi. Faqat compressed fayl hajmini tekshirish decompression bomb’dan himoya qilmaydi. Parser limitga yetganda qisman state’ni xavfsiz tozalaydi.
Timeout connection, read, operation va total deadline darajalarida belgilanadi. Downstream call caller deadline’dan uzoq ishlamasligi kerak. Retry yangi deadline va budgetni hisobga oladi; aks holda resource sarfini ko‘paytiradi. Queue bounded bo‘lib, to‘lsa backpressure yoki aniq rad javobi beradi.
Multi-tenant adolat
Per-tenant rate, concurrency va storage quota noisy neighbor ta’sirini kamaytiradi. Global capacity tugaganda priority va fair scheduling muhim workloadni saqlaydi. Limit faqat account ID bo‘yicha bo‘lsa attacker ko‘p account bilan chetlab o‘tishi mumkin; identity va abuse modelga mos key tanlanadi.
Hard limit qat’iy, soft limit warning yoki vaqtinchalik burst beradi. Burst token bucket bilan nazorat qilinadi. Foydalanuvchi limit, joriy usage va reset vaqtini ko‘rsa xatoni to‘g‘ri boshqaradi.
Sozlash va kuzatuv
Limit average’dan emas, peak, latency target va failure recovery’dan kelib chiqadi. Juda past limit self-inflicted outage, juda baland limit himoyasizlik yaratadi. Load test normal va malicious inputni qamrab oladi. p95 usage, throttling, rejected request, OOM va queue saturation kuzatiladi.
Limit o‘zgartirish versionlangan configuration, canary va rollback bilan amalga oshiriladi. Emergency oshirish root cause’ni yashirmaydi; expiry va capacity reja qo‘shiladi. Alert limitga yetgandan oldin headroom kamayishini ko‘rsatadi.
Chegara tanlash
Limit taxminiy o‘rtacha yukdan emas, o‘lchangan taqsimot va xizmat maqsadidan kelib chiqadi. Juda past xotira chegarasi jarayonni takroran o‘ldiradi, juda baland chegara esa bitta workloadga butun tugunni egallash imkonini beradi. Yumshoq chegara ogohlantirish yoki boshqariladigan sekinlashishni, qattiq chegara esa majburiy rad etishni ifodalashi mumkin. Burst uchun qisqa zaxira berilib, uzoq davom etgan ortiqcha iste’mol cheklanadi. Limit bilan birga so‘rov navbati, backpressure va foydalanuvchiga aniq xato javobi loyihalanadi. Kuzatuv limitga yaqinlashish, throttling va OOM hodisasini ajratib ko‘rsatishi kerak; aks holda muammo oddiy sekinlik sifatida ko‘rinadi.
Bog‘liq tushunchalar
Quota, Resource reservation, Rate limiting, Backpressure, Cgroup, Timeout, Noisy neighbor