Proxmox, tek bir fiziksel sunucu üzerinde birden fazla sanal makine çalıştırmayı sağlar. Bu sanal makineler aynı sistemi kullanır ama farklı işler yapar. Buna rağmen çoğu ortamda hepsi aynı ayarlarla kurulur.
Fakat bir web sunucusu ile sadece veritabanı çalışan bir sanal makinenin ihtiyacı aynı değildir. Role göre tasarlamak, her sanal makineyi yaptığı işe uygun şekilde yapılandırmak demektir.
VM Rolü Nedir?
Bir sanal makinenin rolü, o sistemin ana görevini ifade eder. Proxmox, VM’lerin ne iş yaptığını bilmez. Bu nedenle rolü biz tanımlamazsak tüm VM’ler aynı davranır.
Web sunucuları hızlı yanıt ister, veritabanları stabil bellek ve disk ister, worker sistemleri paralel işlem gücüne ihtiyaç duyar.
CPU Ne Demek ve Neden Role Göre Değişir?
CPU, sanal makinenin işlem gücünü belirler ancak sadece çekirdek sayısından ibaret değildir. Web sunucuları hızlı tekil işlemlere ihtiyaç duyar, worker yapılar ise çok çekirdekten daha fazla fayda sağlar. Bu yüzden her sanal makineye aynı CPU ayarını vermek doğru değildir.
Proxmox’ta bir sanal makinenin CPU ayarları, ilgili VM seçilip Hardware bölümündeki CPU alanından değiştirilir.

Bu ekranda CPU Type alanı kritik noktadır. CPU Type olarak host seçildiğinde sanal makine fiziksel işlemcinin özelliklerini doğrudan kullanır. Bu ayar özellikle web ve uygulama sunucularında gecikmeyi azaltır.
Aynı ayar terminalden yapılmak istenirse Proxmox CLI kullanılır.
qm set 101 --cpu host --sockets 1 --cores 4Bu ayarlar tek node sistemlerde daha kolay yönetilir. Ancak Proxmox cluster yapılarında CPU Type, NUMA ve bellek ayarlarının tüm node’larda aynı olması gerekir. Aksi halde live migration sırasında uyumsuzluklar, performans farkları ve VM açılış sorunları ortaya çıkabilir.
Bellek RAM ve Ballooning Nasıl Ayarlanır?
RAM ayarları da yine Hardware sekmesinden yapılır. Memory satırına girildiğinde ballooning seçeneği görülür.

Ballooning açık olduğunda Proxmox gerektiğinde VM’den RAM geri alabilir. Bu test sistemlerinde sorun değildir. Ancak veritabanı gibi kritik servislerde RAM’in anlık düşmesi kilitlenmelere ve ani yavaşlamalara yol açar. Bu nedenle veritabanı VM’lerinde ballooning kapatılır.
Aynı işlem terminalden şu şekilde yapılır.
qm set 102 --memory 8192 --balloon 0Disk ve IO Ayarları
Disk performansı yalnızca kapasiteyle ilgili değildir. IO, diske yapılan okuma ve yazma işlemlerini ifade eder.
- Disk tipi,
- Cache ayarı,
- IO Thread
gibi ayarlar yer alır.
Disk ayarları da yine Hardware sekmesinde Hard Disk satırından düzenlenir.
Bu ekranda IO Thread seçeneği bulunur. IO Thread aktif edildiğinde disk işlemleri ayrı bir iş bölümünde çalışır. Disk yoğunluğu olan sistemlerde bu ayar ciddi fark yaratır. Cache ayarı ise role göre seçilmelidir. Veritabanlarında güvenli, web sistemlerinde performans öncelikli ayarlar tercih edilir.
Terminalden IO Thread açmak için bu komut kullanılır.
qm set 103 --scsihw virtio-scsi-pci --iothread 1NUMA Ayarı Nerede ve Ne Zaman Kullanılır?
NUMA ayarı CPU düzenleme ekranında bulunur.

NUMA büyük ve yüksek RAM’li VM’ler için anlamlıdır. Küçük ve orta ölçekli VM’lerde açık olması genellikle fayda sağlamaz ve gecikmeye neden olur. Web ve küçük servis VM’lerinde kapalı tutulmalıdır.
Terminalden kapatmak için bu komut kullanılır.
qm set 104 --numa 0Proxmox Üzerinde Role Göre Yeniden Yapılandırma
Role göre yeniden tasarım, tek tek ayar değiştirmekten ibaret değildir. Süreç belirli bir mantıkla ilerler.
Önce her sanal makinenin ne iş yaptığı netleştirilir. Ardından hangi VM’in CPU ağırlıklı, hangisinin RAM veya disk ağırlıklı çalıştığı ayrıştırılır. Disk yoğunluğu olan VM’ler özellikle belirlenir. Kritik servislerde esnek kaynak davranışları kapatılır. Monitoring, yönetim ve yedekleme gibi yardımcı VM’ler üretim yüklerinden mantıksal olarak ayrılır.
Sık Sorulan Sorular
Veritabanı sunucusu belirli saatlerde kilitleniyor?
Veritabanı VM’inde ballooning kapatılır ve bellek sabitlenir. Bu, RAM dalgalanmasını tamamen ortadan kaldırır.
qm set 102 --memory 16384 --balloon 0Monitoring veya backup VM’i çalışırken production sistemler yavaşlıyor?
Yardımcı VM’ler mümkünse ayrı storage planına alınır veya IO davranışı sınırlandırılır. En azından disk yoğunluğu saatleri production yükünden ayrılır.
NUMA açıkken küçük VM’lerde gecikme artıyor?
Web ve küçük servis VM’lerinde NUMA kapatılır. NUMA yalnızca büyük VM’lerde test edilerek kullanılır.
qm set 104 --numa 0
