Sanal makinelerle çalışan sistem yöneticilerinin sıklıkla karşılaştığı ama çoğu zaman göz ardı ettiği bir metrik vardır: CPU Ready. Bu blog yazısında ESXi üzerinde çalışan sanal makinelerde vCPU, MHz ve CPU Ready ilişkisinin aslında ne ifade ettiğini ve performansa nasıl etki ettiğini teknik örneklerle anlatacağız.
CPU Ready, sanal bir makinenin işlemci (vCPU) kullanmaya hazır olduğu ama fiziksel host tarafından o anda CPU verilmediği zamanı ifade eder.
Yani: "VM çalışmak istiyor ama hostta CPU meşgul, o yüzden sıraya girmiş bekliyor."
Bu süre ne kadar yüksekse, VM o kadar yavaş çalışır ama sistem monitörlerinde bu çoğu zaman görünmez.
VMware ESXi üzerinde her vCPU için genellikle 1000 MHz gibi sembolik bir değer görünür. Ancak bu, gerçek fiziksel CPU frekansı değildir. Örneğin:
Fiziksel CPU: 2.4 – 2.7 GHz
6 vCPU atanmış bir VM → Toplamda 6000 MHz gibi görünür
Ama bu gerçek performans değil, sadece ESXi scheduler’ın nominal hesaplamasıdır
ESXi host üzerinde şu komutla fiziksel çekirdekleri görebiliriz:
esxcli hardware cpu list
Ayrıca, esxtop
komutu ile anlık CPU Ready durumlarını görebiliriz:
esxtop
Ardından c
tuşuna basarak CPU görünümüne geçin. %RD (Ready) kolonuna bakın:
%RD Değeri | Anlamı |
---|---|
0-5% | ✅ İyi |
5-10% | ⚠️ Uyarı seviyesi |
10%+ | ???? Kritik, performans düşer |
Aynı anda çok fazla vCPU kullanımı olan VM çalışıyorsa
Fiziksel CPU core sayısından fazla vCPU atanmışsa (oversubscription)
ESXi host yetersiz kaynakta çalışıyorsa
vCPU sayısını fiziksel core sayısına uygun ayarla
Kritik VM’lere CPU Reservation yap
VM ayarlarında Latency Sensitivity: High seç
Gereksiz VM’leri kapalı tut veya başka host’a taşı
6 vCPU, 32 GB RAM (ESXi üzerinde)
Apache (mpm_event) + PHP-FPM yapılandırması
6 vCPU, CPU Ready düşükse: 2000-3000 eşzamanlı işlem taşır
3 node ile toplam 6K – 10K arası yük kaldırabilir
CPU Ready yüksekse: 1000 eşzamanlı işlem bile tıkanma yapar
CPU Ready, klasik monitoring araçlarında gözükmeyen ama ESXi üzerinde performansın sessiz düşmanıdır. Sistem yavaşladığında işlemci kullanımı %10 görünüyor olabilir, ama CPU Ready %20 ise → sistem gerçekten CPU alamıyordur.
Bu yüzden sanal makinelerle çalışan herkesin CPU Ready'yi düzenli kontrol etmesi, vCPU sayılarını gerçekçi belirlemesi ve gerektiğinde reservation kullanması gerekir.
???? Hazırlayan: Emrah AK
???? https://eak.llc