İçeriğe atla
Şimdi yükleniyor
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • DevOps
  • cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm
Bulut Altyapı DevOps Konteyner & Kubernetes cgroup v2, cpu shares, cpu weight, Kubernetes, OCI runtime A.KILIÇ 27/07/2026 0 Yorumlar

cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm

cgroup v1 CPU Shares'ten v2 CPU Weight'e Yeni Dönüşüm
Ana Sayfa › Bulut Altyapı › cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm
📑 İçindekiler
  1. Arka plan: shares'ten weight'e geçiş
  2. Eski formülün iki temel sorunu
  3. 1. Kubernetes dışı iş yüklerine karşı düşen öncelik
  4. 2. Yönetilemeyen granülerlik
  5. Yeni dönüşüm formülü
  6. Sorunları nasıl çözüyor?
  7. Uyumluluk ve OCI runtime tarafı
  8. Mevcut kurulumlara etkisi
  9. İlgili İçerikler
  10. Kaynaklar ve İleri Okuma
⏱️ 4 dk okuma📅 27 Temmuz 2026👁️ görüntülenme

Kubernetes ekosisteminde cgroup v2’ye geçiş sürecinde uzun süredir tartışılan bir sorun çözüme kavuştu: cgroup v1 CPU shares değerlerinin cgroup v2 CPU weight değerine dönüştürülmesi için yeni bir formül devreye alındı. Bu değişiklik, cgroup v2 altında çalışan Kubernetes iş yüklerinin CPU önceliklendirmesinde yaşanan bozulmaları gidermeyi ve sub-cgroup düzeyinde daha ince ayarlı kaynak dağılımına imkân tanımayı hedefliyor.

Arka plan: shares’ten weight’e geçiş

Kubernetes ilk tasarlandığında cgroup v1 esas alınmıştı. Bu modelde bir konteynerin CPU shares değeri, CPU request değerinden şu formülle türetiliyordu:

cpu.shares = milliCPU × 1024 / 1000

Buradaki 1024, cgroup v1’de cpu.shares için varsayılan değerdir ve millicore ile doğrudan bir ilişkisi yoktur. Örneğin 1 CPU (1000m) isteyen bir konteyner 1024 shares, 100m isteyen bir konteyner ise 102 shares alıyordu.

cgroup v2’ye geçişle birlikte CPU shares kavramının yerini CPU weight aldı. Shares değeri 2 ile 262144 (yani 2¹ – 2¹⁸) arasında değişirken, weight değeri 1 ile 10000 (10⁰ – 10⁴) aralığında tanımlıdır. KEP-2254 kapsamında bu iki aralık arasında şu doğrusal dönüşüm formülü kullanılıyordu:

cpu.weight = 1 + ((cpu.shares - 2) × 9999) / 262142

Formül basit olsa da doğrusal eşleme, hem performans hem de yapılandırma inceliği açısından önemli sorunlara yol açıyordu.

Eski formülün iki temel sorunu

1. Kubernetes dışı iş yüklerine karşı düşen öncelik

cgroup v1’de cpu.shares için varsayılan değer 1024’tür. Bu, 1 CPU isteyen bir konteynerin Kubernetes kapsamı dışında çalışan sistem süreçleriyle eşit önceliğe sahip olması anlamına gelir. cgroup v2’de ise cpu.weight için varsayılan değer 100’dür; ancak eski formül 1 CPU (1000m) isteğini yalnızca yaklaşık 39 weight değerine dönüştürüyordu. Yani varsayılanın %40’ından bile azına.

Bunun pratik sonucu şudur: cgroup v2’ye geçildiğinde Kubernetes (veya OCI) iş yükleri, Kubernetes dışında çalışan sistem süreçlerine kıyasla fiilen düşük öncelikli hale geliyordu. Kaynak sıkışıklığı yaşanan ve pek çok sistem daemon’unun Kubernetes dışında çalıştığı kurulumlarda bu durum ciddi sonuçlar doğurabiliyordu.

2. Yönetilemeyen granülerlik

Eski formül, küçük CPU istekleri için oldukça düşük weight değerleri üretiyordu. Örneğin 100m CPU isteyen bir konteyner:

  • cgroup v1’de cpu.shares = 102
  • cgroup v2’de (eski formül) cpu.weight = 4

102 shares değeri, ana konteyner içinde sub-cgroup’lar oluşturup farklı süreç grupları için ince ayarlı öncelik atamaya yetiyordu. Ancak 4 weight değeri, alt gruplar arasında anlamlı bir dağılım yapmak için yeterince granüler değildir. Ayrıcalıksız konteynerler için yazılabilir cgroup’lara izin veren çalışmalar (bkz. KEP #5474) ilerledikçe bu konu daha da önemli hale geliyor.

Yeni dönüşüm formülü

Yeni formül eskisine göre daha karmaşık; ama cgroup v1 shares ile cgroup v2 weight arasında çok daha isabetli bir eşleme sağlıyor:

cpu.weight = ⌈10^(L²/612 + 125L/612 - 7/34)⌉, L = log2(cpu.shares)

Bu ikinci dereceden fonksiyon, üç kritik noktadan geçecek biçimde tasarlandı:

  • (2, 1): Her iki aralığın da minimum değerleri
  • (1024, 100): Her iki aralığın da varsayılan değerleri
  • (262144, 10000): Her iki aralığın da maksimum değerleri

Eğri “neredeyse doğrusal” görünse de bu üç kritik noktadan geçecek biçimde özenle şekillendirilmiştir.

Sorunları nasıl çözüyor?

Öncelik hizalaması: 1 CPU (1000m) isteyen bir konteyner artık cpu.weight = 102 alıyor. Bu değer, cgroup v2’nin varsayılan 100 değerine oldukça yakın olduğundan Kubernetes iş yükleri ile sistem süreçleri arasındaki beklenen öncelik ilişkisi yeniden kuruluyor.

Daha iyi granülerlik: 100m CPU isteyen bir konteyner artık cpu.weight = 17 alıyor. Bu değer, konteyner içinde ince ayarlı kaynak dağıtımı için çok daha kullanışlı bir taban sunuyor.

Uyumluluk ve OCI runtime tarafı

Bu değişikliğin önemli bir ayrıntısı, uygulamanın Kubernetes’in kendisinde değil OCI katmanında yapılmış olmasıdır. Dolayısıyla yeni formülün kullanıma girmesi tamamen OCI runtime’ın sürümüne bağlıdır:

  • runc: Yeni formül 1.3.2 sürümünden itibaren etkin.
  • crun: Yeni formül 1.23 sürümünden itibaren etkin.

Mevcut kurulumlara etkisi

Eski doğrusal formülü baz alan bazı araçlar bu değişiklikten etkilenebilir. Özellikle beklenen CPU weight değerlerini eski formüle göre hesaplayan uygulama ve izleme araçlarının güncellenmesi gerekebilir. Bu durum şu alanlarda daha kritiktir:

  • CPU weight değerlerini tahmin eden özel kaynak yönetim araçları
  • Belirli weight değerlerini doğrulayan izleme sistemleri
  • CPU weight değerlerini programatik olarak ayarlayan veya kontrol eden uygulamalar

Bir diğer önemli nokta: cpu.weight değerinden geri milliCPU değerine gitmek her zaman özgün değeri vermez. Bunun iki nedeni vardır. İlki, milliCPU’dan cpu.shares‘e dönüşümde tamsayı kesmesi olur (örneğin 100m, 102.4 değil 102 shares’e karşılık gelir). İkincisi ve daha belirleyici olanı, shares-to-weight eşlemesinin çoktan-bire olmasıdır: örneğin 90 ile 109 arasındaki tüm milliCPU değerleri aynı cpu.weight = 17 sonucunu üretir. Bu nedenle kesin CPU request değerine ihtiyaç duyan araçların, bu bilgiyi cgroup parametrelerinden türetmek yerine doğrudan pod spec’ten okuması önerilir.

Kubernetes projesi, OCI runtime yükseltmesi öncesinde yeni formülün mevcut araç zinciriyle uyumluluğunu üretim dışı ortamlarda test etmeyi tavsiye ediyor.

İlgili İçerikler

  • RDBMS'ten Cosmos DB'ye Geçiş: AI Asistanı Ne Kadar İşe Yarar?
  • PostgreSQL’de Yeni Dönem: Commit’ten Buluta Uzanan Yol
  • Ingress2Gateway 1.0: Ingress'ten Gateway API'ye Geçiş

Kaynaklar ve İleri Okuma

  • kubernetes.io
  • Kubernetes Blog: New Conversion from cgroup v1 CPU Shares to v2 CPU Weight
  • KEP-2254: cgroup v2
  • KEP #5474: Unprivileged konteynerler için yazılabilir cgroup’lar
  • Kubernetes Issue #131216 – teknik analiz ve tartışma
  • runc v1.3.2 sürüm notları
  • crun 1.23 sürüm notları
  • Kubernetes: Konteyner kaynak yönetimi dokümantasyonu
  • SIG Node topluluğu
  • Formül için Go Playground örneği
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı7 Nis 2026
azd Mart 2026: AI Ajanları ve Copilot’la Yeni Dönem
azd Mart 2026: AI Ajanları ve Copilot’la Yeni Dönem31 Mar 2026
Azure Cosmos DB’de Partition Key Değiştirmek: Artık Daha Az Acı Veriyor
Azure Cosmos DB’de Partition Key Değiştirmek: Artık Daha Az Acı Veriyor10 Haz 2026
GitHub Advanced Security’de Bütçe Sınırı: Kontrol Artık Sıkı
GitHub Advanced Security’de Bütçe Sınırı: Kontrol Artık Sıkı31 May 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket cgroup v2 cpu shares cpu weight Kubernetes OCI runtime
A.KILIÇ

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

view all posts
Önceki yazı

Azure Cosmos DB’de Partition Key Değiştirme Yolları

İlginizi Çekebilir

Azure Cosmos DB'de Partition Key Değiştirme Yolları
A.KILIÇ 0

Azure Cosmos DB’de Partition Key Değiştirme Yolları

26/07/2026
Kudu'da Log Görüntüleme: Linux App Service için Yeni Sayfa
A.KILIÇ 0

Kudu’da Log Görüntüleme: Linux App Service için Yeni Sayfa

26/07/2026
GitHub Projects ve Issues'ta Multi-Select Alanlar
A.KILIÇ 0

GitHub Projects ve Issues’ta Multi-Select Alanlar

26/07/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • cgroup v1 CPU Shares'ten v2 CPU Weight'e Yeni Dönüşüm
    27/07/2026 cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm
  • Azure Cosmos DB'de Partition Key Değiştirme Yolları
    26/07/2026 Azure Cosmos DB’de Partition Key Değiştirme Yolları
  • Kudu'da Log Görüntüleme: Linux App Service için Yeni Sayfa
    26/07/2026 Kudu’da Log Görüntüleme: Linux App Service için Yeni Sayfa
  • GitHub Projects ve Issues'ta Multi-Select Alanlar
    26/07/2026 GitHub Projects ve Issues’ta Multi-Select Alanlar
  • Azure Cosmos DB Design Patterns: Çalışan Örnekler
    26/07/2026 Azure Cosmos DB Design Patterns: Çalışan Örnekler
  • Veri Merkezi Güvenilirliği
    09/03/2026 Azure’da Kesintisiz Çalışma: Güvenilirlik ve Kurtarma
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
    30/04/2026 Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
  • GitHub Copilot Kodlama Ajanı ile Azure’u Birleştirmek: Yeni azd Uzantısıyla Sıkıcı Kurulumlara Elveda
    18/03/2026 GitHub Copilot Kodlama Ajanı ile Azure’u Birleştirmek: Yeni azd Uzantısıyla Sıkıcı Kurulumlara Elveda
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

cgroup v1 CPU Shares'ten v2 CPU Weight'e Yeni Dönüşüm
Bulut Altyapı DevOps Konteyner & Kubernetes

cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm

27/07/2026 A.KILIÇ
Azure Cosmos DB'de Partition Key Değiştirme Yolları
Bulut Altyapı Veri & Analitik

Azure Cosmos DB’de Partition Key Değiştirme Yolları

26/07/2026 A.KILIÇ
Kudu'da Log Görüntüleme: Linux App Service için Yeni Sayfa
DevOps Microsoft Azure

Kudu’da Log Görüntüleme: Linux App Service için Yeni Sayfa

26/07/2026 A.KILIÇ
GitHub Projects ve Issues'ta Multi-Select Alanlar
Bulut Altyapı Geliştirici Araçları

GitHub Projects ve Issues’ta Multi-Select Alanlar

26/07/2026 A.KILIÇ
Azure Cosmos DB Design Patterns: Çalışan Örnekler
Bulut Altyapı DevOps Veri & Analitik

Azure Cosmos DB Design Patterns: Çalışan Örnekler

26/07/2026 A.KILIÇ
TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
Bulut Altyapı Geliştirici Araçları

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız

25/07/2026 A.KILIÇ
GitHub Mobile'da Actions Hatalarını Copilot ile Tek
Geliştirici Araçları Microsoft Azure Yapay Zeka

GitHub Mobile’da Actions Hatalarını Copilot ile Tek

25/07/2026 A.KILIÇ
Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
Geliştirici Araçları Microsoft Azure Yapay Zeka

Microsoft Agent Framework için Cosmos DB Tabanlı Bellek

25/07/2026 A.KILIÇ
Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi
Bulut Altyapı Güvenlik & Kimlik Microsoft Azure

Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi

25/07/2026 A.KILIÇ
AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
Bulut Altyapı Geliştirici Araçları Yapay Zeka

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI

24/07/2026 A.KILIÇ
Claude Opus 5 GitHub Copilot'ta Kullanıma Sunuldu
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Claude Opus 5 GitHub Copilot’ta Kullanıma Sunuldu

24/07/2026 A.KILIÇ
GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor

24/07/2026 A.KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL açık kaynak bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry OpenAI otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 301 yazı 🏗️ Bulut Altyapı 256 yazı 🤖 Yapay Zeka 218 yazı 🔧 DevOps 175 yazı ☁️ Microsoft Azure 169 yazı 🔒 Güvenlik & Kimlik 154 yazı 🏢 Kurumsal Teknoloji 64 yazı 📊 Veri & Analitik 55 yazı 🐳 Konteyner & Kubernetes 44 yazı 📧 Microsoft 365 19 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure Cosmos DB’de Parti...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS