vCPU Nedir? Fiziksel CPU Çekirdeğinden Farkı (Net Rehber)
vCPU (virtual CPU) nedir, fiziksel çekirdekten nasıl farklıdır? Sanal CPU sayısının performansa etkisini ölçme ve doğru planlama rehberi.
vCPU, özellikle VDS ve VPS gibi sanallaştırma temelli hizmetlerde sunulan işlem gücünü ifade eder. Ancak “vCPU sayısı” ile “fiziksel CPU çekirdeği” bire bir aynı şey değildir; bu fark performans beklentisini doğrudan etkiler. Bu yazıda vCPU’nun teknik olarak neyi temsil ettiğini, fiziksel çekirdekle ilişkisini ve doğru kapasiteyi nasıl ölçeceğinizi adım adım netleştiriyorum.
vCPU ne demek? (Virtual CPU)
vCPU (virtual CPU), sanal makine (VM) üzerinde işletim sistemine görünen CPU birimidir. Hypervisor (ör. KVM, Xen, Hyper-V) fiziksel sunucunun işlemci kaynaklarını parçalara bölerek her VM’e bir veya daha fazla sanal işlem birimi atar. Bu birimlerin “çekirdek” gibi görünmesi, pratikte VM’in CPU planlaması (scheduling) açısından “ne kadar işlem gücü alacağını” temsil etmesi içindir.
Önemli nokta: vCPU, tek başına “tek fiziksel çekirdek” anlamına gelmez. vCPU sayısı; fiziksel çekirdek sayısı, hypervisor’un zaman paylaşımı (time-sharing), CPU oversubscription politikaları ve VM’in çalışma yüküne göre gerçek performansa dönüşür.
vCPU hangi katmanda oluşur?
- Fiziksel sunucuda CPU (çekirdek + iş parçacığı/simtultan iş parçacığı)
- Hypervisor katmanı
- VM’e atanan CPU zaman dilimleri
- İşletim sistemi içinde görülen “CPU/çekirdek” sayısı
Bu nedenle vCPU kavramı, “donanımın kendisi” değil “donanımın sanallaştırılmış tahsisi”dir.
Fiziksel CPU çekirdeği nedir?
Fiziksel CPU çekirdeği, ana işlemcinin üzerindeki gerçek işlem birimleridir. Her çekirdek; komutları yürütme, önbellek (cache) kullanımı, bellek denetleyicisi ile etkileşim gibi doğrudan donanım özelliklerine sahiptir. Ayrıca fiziksel çekirdeklerin: - çekirdek başına performans (IPC) - önbellek hiyerarşisi - CPU frekans/boost davranışı - NUMA (Non-Uniform Memory Access) topolojisi gibi donanım temelli farkları vardır.
VM’in aldığı performans, sadece fiziksel çekirdek sayısına değil; bu donanımın VM ile nasıl paylaşıldığına bağlıdır.
vCPU ile fiziksel çekirdek bire bir mi? Hayır.
vCPU ile fiziksel çekirdeği karşılaştırırken kritik kavram tahsis modelidir.
1) Oversubscription (aşırı tahsis) etkisi
Bazı sağlayıcılar, fiziksel çekirdekleri birden fazla VM’e toplamı fiziksel kapasiteyi aşacak şekilde bölebilir. Bu “oversubscription” durumunda: - Trafik düşükken VM iyi performans alabilir - Eş zamanlı yük artınca VM’in CPU zamanı sıkışır - “vCPU sayısı var ama gecikme artıyor” durumu görülebilir
Bu fark, özellikle aynı host üzerinde çok sayıda VM olan kurulumlarda belirginleşir.
2) Scheduling ve CPU zaman dilimi
Hypervisor, VM’lere CPU zamanı verir. VM’in hazırda bekleme (idle) süresiyle aktif çalıştığı anlar farklıdır. CPU yoğun işlerde VM’in aldığı zaman dilimi azalırsa performans düşer.
3) SMT/Hyper-Threading benzeri mantıksal iş parçacıkları
Fiziksel CPU’larda SMT/Hyper-Threading varsa OS, bir fiziksel çekirdek için birden fazla “mantıksal çekirdek” görebilir. Sağlayıcıdan sağlayıcıya vCPU tanımı; bu mantıksal iş parçacıklarının nasıl sayıldığına göre değişebilir. Örneğin bazı platformlar bir fiziksel çekirdeği 2 vCPU gibi pazarlayabilir; bazıları ise farklı oranlar kullanır.
4) NUMA ve bellek yerelliği
CPU çekirdeği performansı, bağlı olduğu bellek bölgesiyle (NUMA node) birlikte düşünülmelidir. VM’in CPU’su bir NUMA node’da, RAM’i diğer node’da kalırsa gecikme artabilir. Bu durum “vCPU sayısı aynı ama performans değişik” senaryolarını açıklar.
“vCPU sayısı” performansı nasıl etkiler?
vCPU, genellikle iki şeyi etkiler: 1) VM’in aynı anda çalıştırabildiği iş parça sayısı (paralellik) 2) CPU zamanına erişim (ne kadar yoğun olduğunda ne kadar darboğaz yaşandığı)
Ancak performans, CPU yoğunluk dışındaki faktörlerden de etkilenir: - Disk I/O (özellikle SSD/NVMe mi, paylaşımlı mı?) - RAM kapasitesi ve swap davranışı - Ağ gecikmesi - Uygulama mimarisi (single-thread mi multi-thread mi?)
vCPU arttıkça her zaman doğrusal hız artar mı?
Hayır. Tek iş parçacıklı (single-thread) bir uygulamada vCPU artışı sınırlı fayda sağlar. Çok iş parçacıklı (multi-thread) yüklerde daha belirgin artış görülür.
Özetle: vCPU, “potansiyel” sağlar; uygulamanın paralellik düzeyi bu potansiyeli kullanır.
vCPU/CPU karşılaştırmasını doğru yapmak için kontrol listesi
NetKıyas’ta paket karşılaştırırken sadece “vCPU kaç” bilgisine bakmak yerine şu kriterleri de aynı anda değerlendirin.
1) CPU modeli ve nesli
- CPU modeli (örn. AMD EPYC 7xxx, Intel Xeon Scalable)
- Nesil farkı (yeni nesil genelde daha iyi IPC ve bellek denetimi sunar)
Aynı vCPU sayısı olsa bile CPU nesli farklıysa performans farkı oluşur.
2) Frekans/Boost politikası
Bazı sistemlerde boost frekansı kısa süreli yüklerde çalışır; uzun süreli yoğun işlerde düşebilir. Paket dokümanında belirtmese bile pratik test gerekir.
3) Tahsis oranı ve oversubscription ipuçları
Paketlerde “tam tahsis” (dedicated CPU / guaranteed CPU) gibi ifadeler varsa daha güvenilir olur. Belirsizse test planı yapın.
4) Disk ve RAM dengesi
CPU yoğun işlerde bile bekleme süreleri disk veya RAM kaynaklı uzayabilir. Örneğin: - RAM yetersizse swap artar, CPU boşa döner - Disk yavaşsa CPU bekler (I/O wait)
Sahada ölçüm: vCPU farkını gerçekten nasıl anlarsınız?
vCPU/fiziksel çekirdek ilişkisinin kağıt üzerindeki karşılığını testle görmek en hızlı yoldur.
Hız testi (CPU yoğun)
Linux’ta sysbench kullanarak CPU testleri yapabilirsiniz:
sysbench cpu --threads=2 --cpu-max-prime=20000 run
Thread sayısını VM’in vCPU’suna göre kademeli artırın (ör. 1, 2, vCPU/2, vCPU). Amaç: Aynı vCPU’da thread artınca ne zaman doygunluğa ulaştığını görmek.
Paralel yük testi (multi-thread)
CPU yoğunluğunuz thread bazlı ölçekleniyor mu kontrol edin. Uygulamanız Java/Node/Python gibi runtime’larda ise thread modeliniz önemlidir: - Node.js genelde event-loop ağırlıklıdır; CPU-bound işlerde worker thread veya ayrı süreç gerekir. - Java’da JVM optimizasyonları devreye girer.
I/O bekleme testi (gizli darboğaz)
CPU testinden sonra I/O bekleme var mı bakın. iostat ve benzeri araçlarla:
- iowait artıyor mu?
- Disk throughput düşüyor mu?
Eğer I/O wait yüksekse “vCPU yetersiz” gibi görünse bile sorun CPU değil disk olabilir.
vCPU “az” mı “çok” mu: nasıl yorumlanır?
vCPU sayısını yorumlamak için uygulamanızın yük profilini netleştirin.
CPU-bound (işlemciyi dolduran) senaryolar
Örnekler: - Görüntü/video dönüştürme - Kripto madenciliği benzeri CPU yükü - Bazı veri işleme (ETL)
Bu durumda vCPU artışı daha anlamlıdır. Ama oversubscription varsa gecikme artacaktır; bu yüzden aynı zamanda “durgunlukta mı yoksa piklerde mi yavaşlıyor” test edilmelidir.
I/O-bound (disk/ağ bekleyen) senaryolar
Örnekler: - CMS sayfa üretimi (özellikle template/cache ayarlarına bağlı) - Veritabanı sorguları iyi indekslenmemişse
Bu durumda vCPU artışı tek başına çözüm olmaz. RAM, disk türü ve veritabanı ayarları daha belirleyicidir.
Paket okurken vCPU’yu yanlış yorumlamaya yol açan ifadeler
Aşağıdaki ifadeler tek başına yeterli değildir; sağlayıcının açıklamasıyla birlikte değerlendirilmelidir.
- “X vCPU” (tek bilgi, tahsis modeli belirsiz)
- “Turbo var / garanti yok” (yük profiline göre değişir)
- “Sadece çekirdek sayısı” (RAM/disk ile denge yok)
Net kıyas için aynı sayfada en azından şunlar birlikte verilmelidir: - CPU modeli - RAM miktarı - Disk türü (NVMe/SSD, paylaşımlı mı?) - Sanal ağ hızı/limitleri - Yedekleme ve snapshot varsa frekansı
vCPU ile fiziksel çekirdek arasındaki ilişkiyi özetleyen net benzetme
- Fiziksel çekirdek: Spor salonundaki gerçek ağırlık ekipmanı
- vCPU: Her kiracıya tahsis edilen “antrenman planı” birimi
vCPU sayısı çok verilebilir; ancak aynı ekipman aynı anda çok kişi tarafından kullanılıyorsa herkesin temposu düşer. Tam tersi, oversubscription yoksa ve tahsis sabitse vCPU’lar daha öngörülebilir olur.
Sonuç: Karar verirken “vCPU sayısı” tek ölçüt değil
vCPU, VM’e tanımlanan sanallaştırılmış CPU zaman birimidir; fiziksel CPU çekirdeği değildir. Bu yüzden vCPU sayısını tek başına “aynı performans” diye okumak doğru değildir. En iyi yaklaşım: CPU modeli + paket içeriği (RAM/disk) + mümkünse basit sysbench testleriyle ölçeklenmeyi doğrulamak.
Ayrıntılı ihtiyacınızı (CPU-bound mı I/O-bound mı, beklenen eşzamanlı kullanıcı sayısı nedir?) netleştirip, aday paketleri vCPU yanında CPU modeli ve depolama performansı ile birlikte karşılaştırın. Böylece aynı vCPU sayısında bile neden farklı sonuçlar çıktığını görür, gerçek kapasiteye dayalı seçim yaparsınız.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Vultr High Frequency vs Hetzner Cloud: Fiyat/Performans Analizi
Vultr High Frequency ile Hetzner Cloud’u karşılaştırın: CPU performansı, ağ, depolama, ölçekleme ve maliyet hesabıyla net seçim rehberi.
S3, R2, B2 Cloud Yedekleme Karşılaştırması (Net Rehber)
S3, Cloudflare R2 ve Backblaze B2 ile yedekleme maliyeti, veri erişimi, egress ve kilitleme (immutable) farklarını net karşılaştırın.
FTP Pasif/Aktif Modu Sorunları: Hızlı Teşhis Rehberi
FTP’de bağlantı kopuyor veya listeleme gelmiyor mu? Pasif/aktif mod farkını net teşhis adımlarıyla öğrenin ve sorunu çözün.
RAM, CPU, Disk: Sunucu spec’inde hangisi daha kritik?
RAM, CPU ve disk tercihini hangi senaryo belirler? Uygulama türlerine göre kritik kaynağı netleştir, ölçülebilir test adımlarıyla doğru spec seç.