---
title: 'Kota ve Servis Sınırları'
source: 'https://academia.sh/tr/kurslar/bulut-yonetisimi/kota-ve-servis-sinirlari'
course: 'Bulut Yönetişimi, Güvenlik ve Maliyet'
language: tr
updated: '2026-08-17T18:06:55+00:00'
license: 'CC BY-SA 4.0'
---

# Kota ve Servis Sınırları

Ölçek planı kurgu bir sınır tablosuna uygulanır: sekiz sınırın ortalama doluluğu %66,5, altısı beş ekip tarafından paylaşılır ve ikisi hiç artırılamaz. Büyüme planı işletildiğinde ilk dolan sınır en dolu olan değil, en hızlı sürücüye bağlı olandır — 3,1. ayda ad çözümleme, 4,3. ayda işlev eş zamanlılığı; on iki ayın sonunda sekiz sınırın yedisi aşılır. İstek büyümesi %2'den %25'e tarandığında önce dolan sınırın kimliği değişir. Sınıra çarpmanın bedeli davranışa ve artırma süresine bağlıdır: toplam 2.195 kurgu birim ve 116 sınır-gün, bunun %51,7'si tek bir sessiz kısma sınırından gelir.

Önceki ders aşağı yönü ölçtü: neyin küçültülebileceği, neyin silinebileceği. Yukarı yönde de bir
sayı vardır ve faturada hiç görünmez. Kiralanan katmanın her kalemi bir tavanla gelir; o tavan
ödenen tutarla değil, sağlayıcının koyduğu **kotayla** belirlenir.

Kota mekaniğinin kendisi M22/K03'te ölçüldü ve burada tekrarlanmaz. Bu dersin sorusu ölçek
planına aittir: **hangi sınıra kaç birim kaldı**, büyüme sürdüğünde hangisi önce dolar ve
dolduğunda ne olur.

## Sınır Tablosu ve Büyüme Planı

Örnek kurgu **bölgesel ölçüm ağı**dır: beş ekip, üç ortam, kiralanmış makine, ağ, depo, işlev ve
kenar katmanı. Sınırlar, büyüme oranları ve tutarlar kurgudur; **para birimi de kurgudur** ve
`br` diye anılır, gerçek bir fiyat listesine karşılık gelmez.

**BM25:** sekiz sınır vardır; her sınırın bir **kapsamı** (hesap, bölge, ağ, bölme) ve onu tüketen
bir **sürücüsü** vardır. **BM26:** kapsam, sınırın kaç ekip tarafından paylaşıldığını belirler.
**BM27:** büyüme planı sürücü bazındadır; her sürücünün aylık büyüme oranı ayrıdır. **BM28:** her
sınırın artırılabilir bir tavanı ve artırma isteğinin bir süresi vardır; tavan sınıra eşitse sınır
**artırılamaz**. **BM29:** sınıra çarpmanın davranışı dört türdür — oluşturma reddi, istek reddi,
kuyruk, sessiz kısma — ve **fark etme günü davranışa bağlıdır**. **BM30:** sınır doluyken günlük
bir kayıp oluşur; artırılamayan sınırda kayıp otuz gün, yani plan değişene kadar sürer.

Sınır tablosu ve büyüme planı süreç içi bir **modeldir**; gerçek bir sınır listesi yoktur.

```js
// maliyet/sinir.mjs — kota ve servis siniri tablosu modeli: gercek bir sinir listesi yok. Her
// satir bir sinir, onu tuketen bir *surucu* ve sinira carpildiginda ne oldugu ile birlikte
// tutulur. Kota mekanigi M22/K03'te olculdu; burada olculen sey buyume planinin bu tabloya
// uygulanmasidir. Para birimi kurgudur ve `br` diye anilir.

// ad, kapsam, surucu, mevcut kullanim, sinir, artirilabilir tavan, artirma gunu, davranis,
// sinir doluyken gunluk kayip (br)
export const SINIR = [
  ["bolge basina makine cekirdegi", "bolge", "sayac", 412, 640, 2000, 6, "olusturma reddi", 34],
  ["saniyede nesne yazma istegi", "bolme", "istek", 1850, 3500, 12000, 4, "istek reddi", 61],
  ["islev es zamanli calisma", "hesap", "istek", 640, 1000, 4000, 3, "kuyruk", 18],
  ["saniyede ad cozumleme", "ag", "istek", 7200, 10000, 10000, 0, "sessiz kisma", 27],
  ["hesap basina sabit adres", "hesap", "kenar", 34, 50, 200, 5, "olusturma reddi", 9],
  ["hesap basina sanal ag", "hesap", "ortam", 9, 12, 40, 7, "olusturma reddi", 4],
  ["bolme basina saklama kurali", "bolme", "veri", 62, 100, 100, 0, "olusturma reddi", 6],
  ["kural kumesi basina kural", "ag", "hizmet", 148, 200, 400, 9, "olusturma reddi", 12],
];

// buyume plani: her surucunun aylik buyume orani (kurgu)
export const BUYUME = { sayac: 0.06, istek: 0.11, veri: 0.09, kenar: 0.05, ortam: 0.02,
  hizmet: 0.04 };

// kapsam sinirin kac ekip tarafindan paylasildigini belirler: hesap, bolge ve ag kapsamli bir
// sinirda bir ekibin buyumesi otekilerin basligini tuketir
export const PAYLASAN = { hesap: 5, bolge: 5, ag: 5, bolme: 1 };

// sinira carpmanin davranisi: fark etme gunu ve neden o kadar surdugu
export const DAVRANIS = {
  "olusturma reddi": [1, "istek aninda hata doner"],
  "istek reddi":     [1, "cagiran hatayi gorur"],
  "kuyruk":          [4, "gecikme olarak sizar"],
  "sessiz kisma":    [12, "hicbir hata uretmez"],
};

export const dolmaAyi = (kullanim, sinir, g) =>
  g <= 0 ? Infinity : Math.log(sinir / kullanim) / Math.log(1 + g);
export const topla = (v) => v.reduce((a, b) => a + b, 0);
```

```js
// maliyet/plan.mjs — buyume plani sinir tablosuna uygulanir: her sinira kac birim kaldigi,
// hangi sinirin once doldugu, istek buyumesi tarandiginda sirdinin degisip degismedigi ve
// sinira carpmanin gunluk bedeli. Sayilar yalniz modelden turer.
import { SINIR, BUYUME, PAYLASAN, DAVRANIS, dolmaAyi, topla } from "./sinir.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const t0 = process.hrtime.bigint();

console.log(`${SINIR.length} sinir, ${Object.keys(BUYUME).length} surucu ` +
  `(kurgu sinir tablosu ve kurgu buyume plani)`);

console.log("\n1. hangi sinira kac birim kaldi");
const A = [-30, -7, 7, 10, 9, 9, 10, 9];
yaz(A, "sinir", "kapsam", "ekip", "kullanim", "sinir", "kalan", "doluluk", "surucu");
for (const [ad, kap, sur, kul, sin] of SINIR)
  yaz(A, ad, kap, PAYLASAN[kap], kul, sin, sin - kul, `%${(100 * kul / sin).toFixed(1)}`, sur);
const dolulukOrt = topla(SINIR.map(([, , , k, s]) => k / s)) / SINIR.length;
const paylasilan = SINIR.filter(([, kap]) => PAYLASAN[kap] > 1);
console.log(`  ortalama doluluk %${(100 * dolulukOrt).toFixed(1)}; en dolu ` +
  `%${(100 * Math.max(...SINIR.map(([, , , k, s]) => k / s))).toFixed(1)}`);
console.log(`  ${paylasilan.length}/${SINIR.length} sinir bes ekip tarafindan paylasilir: ` +
  `bir ekibin buyumesi otekinin basligini tuketir`);
const sabit = SINIR.filter(([, , , , s, tavan]) => tavan <= s);
console.log(`  ${sabit.length} sinir artirilamaz (tavan = sinir): ` +
  sabit.map((x) => x[0]).join(", "));

console.log("\n2. buyume plani uygulaninca: hangi sinir once doluyor");
const B = [-30, 9, 10, 11, 11, 11];
yaz(B, "sinir", "buyume", "dolma ayi", "12. ay", "tavan kati", "artirma");
const sira = SINIR.map((x) => [x, dolmaAyi(x[3], x[4], BUYUME[x[2]])])
  .sort((a, b) => a[1] - b[1]);
for (const [[ad, kap, sur, kul, sin, tavan, gun], n] of sira) {
  const on = kul * Math.pow(1 + BUYUME[sur], 12);
  yaz(B, ad, `%${(100 * BUYUME[sur]).toFixed(0)}`, n === Infinity ? "-" : n.toFixed(1),
    `%${(100 * on / sin).toFixed(0)}`, (tavan / sin).toFixed(2) + "x",
    tavan <= sin ? "yok" : `${gun} gun`);
}
const on12 = SINIR.filter(([, , sur, kul, sin]) => kul * Math.pow(1 + BUYUME[sur], 12) > sin);
console.log(`  ilk dolan: ${sira[0][0][0]} (${sira[0][1].toFixed(1)}. ay); ` +
  `ikinci ${sira[1][0][0]} (${sira[1][1].toFixed(1)}. ay)`);
console.log(`  ilk dolan en dolu sinir degil: en dolu olan ` +
  `${SINIR.reduce((a, b) => (a[3] / a[4] >= b[3] / b[4] ? a : b))[0]}`);
console.log(`  12 ay sonunda ${on12.length}/${SINIR.length} sinir asilir`);

console.log("\n3. istek buyumesi taraniyor: ilk dolan sinir degisiyor mu");
const C = [7, 32, 7, 32, 7];
yaz(C, "istek", "ilk dolan", "ay", "ikinci dolan", "ay");
for (const g of [0.02, 0.05, 0.08, 0.11, 0.16, 0.25]) {
  const b = { ...BUYUME, istek: g };
  const s = SINIR.map((x) => [x, dolmaAyi(x[3], x[4], b[x[2]])]).sort((a, b2) => a[1] - b2[1]);
  yaz(C, `%${(100 * g).toFixed(0)}`, s[0][0][0], s[0][1].toFixed(1), s[1][0][0],
    s[1][1].toFixed(1));
}
console.log(`  istek surucusu uc sinira baglidir; hizi degistiginde sadece tarih degil,`);
console.log(`  once dolan sinirin *kimligi* de degisir`);

console.log("\n4. sinira carpinca ne oluyor ve artirilana kadar ne kaybediliyor");
const D = [-30, -17, 9, 10, 8, 11];
yaz(D, "sinir", "davranis", "fark etme", "artirma", "gun", "kayip br");
let tKayip = 0, tGun = 0;
for (const [ad, , , , sin, tavan, gun, dav, gk] of SINIR) {
  const [fark] = DAVRANIS[dav];
  const sure = tavan <= sin ? fark + 30 : fark + gun;    // artirilamiyorsa kayip surer
  tKayip += gk * sure; tGun += sure;
  yaz(D, ad, dav, fark, tavan <= sin ? "yok" : gun, sure, (gk * sure).toFixed(0));
}
console.log(`  toplam ${tKayip.toFixed(0)} br kayip, ${tGun} sinir-gun; ` +
  `ortalama ${(tGun / SINIR.length).toFixed(1)} gun/sinir`);
const sessiz = SINIR.filter((x) => x[7] === "sessiz kisma");
const hemen = SINIR.filter((x) => DAVRANIS[x[7]][0] === 1);
console.log(`  fark etme gunu davranisa bagli: ${hemen.length} sinir ayni gun gorulur, ` +
  `sessiz kisma ${DAVRANIS["sessiz kisma"][0]}. gunde`);
const sk = topla(sessiz.map((x) => x[8] * (12 + 30)));
console.log(`  sessiz kismanin kaybi ${sk.toFixed(0)} br, toplamin ` +
  `%${(100 * sk / tKayip).toFixed(1)}'i; sinir artirilamaz, plan degistirilir`);

const ms = Number(process.hrtime.bigint() - t0) / 1e6;   // ham olcum basilmaz, bant denetlenir
console.log(`\ndort tablo 2000 ms bandinda: ${ms < 2000 ? "evet" : "hayir"}`);
```

```
8 sinir, 6 surucu (kurgu sinir tablosu ve kurgu buyume plani)

1. hangi sinira kac birim kaldi
sinir                         kapsam    ekip  kullanim    sinir    kalan   doluluk   surucu
bolge basina makine cekirdegi bolge        5       412      640      228     %64.4    sayac
saniyede nesne yazma istegi   bolme        1      1850     3500     1650     %52.9    istek
islev es zamanli calisma      hesap        5       640     1000      360     %64.0    istek
saniyede ad cozumleme         ag           5      7200    10000     2800     %72.0    istek
hesap basina sabit adres      hesap        5        34       50       16     %68.0    kenar
hesap basina sanal ag         hesap        5         9       12        3     %75.0    ortam
bolme basina saklama kurali   bolme        1        62      100       38     %62.0     veri
kural kumesi basina kural     ag           5       148      200       52     %74.0   hizmet
  ortalama doluluk %66.5; en dolu %75.0
  6/8 sinir bes ekip tarafindan paylasilir: bir ekibin buyumesi otekinin basligini tuketir
  2 sinir artirilamaz (tavan = sinir): saniyede ad cozumleme, bolme basina saklama kurali

2. buyume plani uygulaninca: hangi sinir once doluyor
sinir                            buyume dolma ayi     12. ay tavan kati    artirma
saniyede ad cozumleme               %11       3.1       %252      1.00x        yok
islev es zamanli calisma            %11       4.3       %224      4.00x      3 gun
bolme basina saklama kurali          %9       5.5       %174      1.00x        yok
saniyede nesne yazma istegi         %11       6.1       %185      3.43x      4 gun
bolge basina makine cekirdegi        %6       7.6       %130      3.13x      6 gun
kural kumesi basina kural            %4       7.7       %118      2.00x      9 gun
hesap basina sabit adres             %5       7.9       %122      4.00x      5 gun
hesap basina sanal ag                %2      14.5        %95      3.33x      7 gun
  ilk dolan: saniyede ad cozumleme (3.1. ay); ikinci islev es zamanli calisma (4.3. ay)
  ilk dolan en dolu sinir degil: en dolu olan hesap basina sanal ag
  12 ay sonunda 7/8 sinir asilir

3. istek buyumesi taraniyor: ilk dolan sinir degisiyor mu
  istek                       ilk dolan     ay                    ikinci dolan     ay
     %2     bolme basina saklama kurali    5.5   bolge basina makine cekirdegi    7.6
     %5     bolme basina saklama kurali    5.5           saniyede ad cozumleme    6.7
     %8           saniyede ad cozumleme    4.3     bolme basina saklama kurali    5.5
    %11           saniyede ad cozumleme    3.1        islev es zamanli calisma    4.3
    %16           saniyede ad cozumleme    2.2        islev es zamanli calisma    3.0
    %25           saniyede ad cozumleme    1.5        islev es zamanli calisma    2.0
  istek surucusu uc sinira baglidir; hizi degistiginde sadece tarih degil,
  once dolan sinirin *kimligi* de degisir

4. sinira carpinca ne oluyor ve artirilana kadar ne kaybediliyor
sinir                         davranis         fark etme   artirma     gun   kayip br
bolge basina makine cekirdegi olusturma reddi          1         6       7        238
saniyede nesne yazma istegi   istek reddi              1         4       5        305
islev es zamanli calisma      kuyruk                   4         3       7        126
saniyede ad cozumleme         sessiz kisma            12       yok      42       1134
hesap basina sabit adres      olusturma reddi          1         5       6         54
hesap basina sanal ag         olusturma reddi          1         7       8         32
bolme basina saklama kurali   olusturma reddi          1       yok      31        186
kural kumesi basina kural     olusturma reddi          1         9      10        120
  toplam 2195 br kayip, 116 sinir-gun; ortalama 14.5 gun/sinir
  fark etme gunu davranisa bagli: 6 sinir ayni gun gorulur, sessiz kisma 12. gunde
  sessiz kismanin kaybi 1134 br, toplamin %51.7'i; sinir artirilamaz, plan degistirilir

dort tablo 2000 ms bandinda: evet
```

Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır.

## Kalan Başlık Kimin

Birinci tablo sekiz sınırın kalanını sayar. Ortalama doluluk **%66,5**, en dolusu hesap başına
sanal ağ (%75,0) ve orada kalan **üç birimdir** — üç ortam yerine dört ortam kurmak isteyen bir
ekip bu üç birimi harcar.

Kalanın kime ait olduğu kapsamda yazılıdır. **Sekiz sınırın altısı** hesap, bölge ya da ağ
kapsamlıdır ve beş ekip tarafından paylaşılır. Bir ekip yeni bir sabit adres aldığında ötekilerin
kalanı azalır; kimse kimsenin kotasını görmez. Yalnız iki sınır bölme kapsamlıdır ve tek ekibe
aittir. Bu, önceki derslerin dağıtım sorusunun tersidir: orada maliyet ekiplere bölünemiyordu,
burada **sınır zaten bölünmemiştir** ve ilk gelen tüketir.

İki sınırın tavanı kendi değerine eşittir: saniyede ad çözümleme ve bölme başına saklama kuralı
**artırılamaz**. Bunlar için "kaç birim kaldı" sorusunun tek anlamı vardır, çünkü sayının
büyümesinin bir yolu yoktur.

## Önce Dolan Sınır En Dolu Sınır Değil

İkinci tablo büyüme planını işletir. Sıra doluluğa göre değil, **doluluk ile büyüme hızının
birleşimine** göre çıkar. İlk dolan saniyede ad çözümlemedir: %72,0 doluluk ama %11 aylık büyüme,
**3,1. ay**. İkincisi işlev eş zamanlı çalışmadır (%64,0 doluluk, %11 büyüme, 4,3. ay).

En dolu sınır olan hesap başına sanal ağ **14,5. aya** kadar dolmaz, çünkü onu tüketen ortam
sayısı ayda %2 büyür. Doluluk yüzdesine göre sıralanmış bir kota raporu bu ağda tam ters bir
öncelik listesi üretir.

On iki ayın sonunda **sekiz sınırın yedisi** aşılır. Aşımın büyüklüğü de farklıdır: ad çözümleme
sınırın **%252'sine**, işlev eş zamanlılığı %224'üne çıkar. Tavan katı sütunu bunun karşılığını
verir — işlev eş zamanlılığı dört katına çıkarılabilir ve on iki ayı taşır, ad çözümleme
çıkarılamaz.

## Büyüme Hızı Sınırın Kimliğini Değiştiriyor

Üçüncü tablo tek bir sürücüyü tarar. İstek hızı üç sınıra birden bağlıdır, dolayısıyla planın en
belirsiz değişkenidir.

%2 ve %5'te ilk dolan sınır **bölme başına saklama kuralıdır** (5,5. ay) ve istekle hiç ilgisi
yoktur; veri hacmi tüketir. %8'den itibaren ilk sıraya ad çözümleme geçer ve %25'te 1,5. aya
iner. Değişen yalnız tarih değil, **sınırın kimliğidir**: yavaş büyümede hazırlanılacak sınır
saklama kuralı, hızlı büyümede ad çözümlemedir ve ikisinin hazırlığı ortak değildir — biri
saklama politikası, öteki mimari değişiklik ister.

Büyüme hızı tahmini bir sayıdır. Bu tablonun söylediği şey, tahminin yanlış olmasının maliyetinin
**yanlış tarihe hazırlanmak değil, yanlış sınıra hazırlanmak** olduğudur.

## Çarpmanın Davranışı ve Artırmanın Süresi

Dördüncü tablo sınır dolduktan sonrasını sayar. Fark etme günü davranışa bağlıdır: oluşturma
reddi ve istek reddi çağıranın gördüğü bir hata üretir ve **aynı gün** fark edilir; kuyruk
gecikme olarak sızar (4 gün); sessiz kısma hiçbir hata üretmez ve **12 gün** sürer.

Artırma isteğinin süresi bunun üstüne eklenir: 3 ile 9 gün arasında. Toplam **116 sınır-gün** ve
**2.195 birim** kayıp çıkar; sınır başına ortalama 14,5 gün. Nesne yazma isteği en hızlı
kapanan olaydır (5 gün, 305 birim) çünkü hem hemen görülür hem dört günde artırılır.

Sayının **%51,7'si tek bir satırdan** gelir: saniyede ad çözümleme. Sessiz kısma 12 gün fark
edilmez ve sınır artırılamadığı için kayıp bir istekle kesilmez; 42 gün sürer ve **1.134 birim**
tutar. Artırılamayan bir sınırda "artırma süresi" diye bir sayı yoktur, yerine **plan değiştirme
süresi** vardır ve o süre bu tabloda ölçülmez.

## Özet

- Sekiz sınırın ortalama doluluğu **%66,5**; en dolusunda kalan üç birimdir. **Altısı beş ekip
  tarafından paylaşılır**: sınır bölünmemiştir ve kalanı ilk büyüyen tüketir.
- İki sınır hiç artırılamaz (tavan = sınır); onlar için kalan sayısı tek anlamlıdır.
- **Önce dolan sınır en dolu sınır değildir**: ilk dolan %72,0 dolulukta ama %11 büyüyen ad
  çözümlemedir (3,1. ay); %75,0 ile en dolu olan sınır %2 büyüdüğü için 14,5. aya kadar dolmaz.
- On iki ayın sonunda sekiz sınırın **yedisi** aşılır; ad çözümleme sınırının %252'sine çıkar.
- İstek büyümesi %2'den %25'e tarandığında önce dolan sınırın **kimliği değişir** — saklama
  kuralından ad çözümlemeye. Tahminin yanlışlığı yanlış tarihe değil, **yanlış sınıra**
  hazırlanmak demektir.
- Çarpmanın bedeli davranış ile artırma süresinin toplamıdır: 116 sınır-gün, 2.195 birim. Bunun
  **%51,7'si** tek bir sessiz kısma sınırından gelir — 12 gün fark edilmez, artırılamaz, 42 gün
  sürer ve 1.134 birim tutar.

## Sonraki Adım

Bu dersin her satırında aynı şey duruyor: sınırın değerini de, artırılıp artırılamayacağını da,
artırmanın kaç gün süreceğini de kiralanan taraf belirliyor. Artırılamayan iki sınırda tek çıkış
yolu planı değiştirmektir ve o değişiklik ağın kendi kararı olmaktan çıkmıştır. Sıradaki ders bu
bağımlılığın toplamını okur: kaç kalem taşınabilir, taşınamayanın yerine ne konur ve taşımanın
faturası ne tutar.
