Proxmox’ta VM’lerin Rol Bazlı Yapılandırılması
Proxmox, tek bir fiziksel sunucu üzerinde birden fazla sanal makine çalıştırmaya imkân tanır. Bu sanal makineler aynı altyapıyı paylaşır ancak üstlendikleri görevler farklıdır. Buna rağmen birçok Proxmox ortamında tüm sanal makineler varsayılan ve aynı ayarlarla oluşturulur.
Oysa bir web sunucusu ile yalnızca veritabanı barındıran bir sanal makinenin ihtiyaçları aynı değildir. Role göre tasarlama, her sanal makinenin yaptığı işe uygun kaynak ve yapılandırmayla çalışmasını sağlamak anlamına gelir.
VM Rolü Nedir ve Neden Önemlidir?
Bir sanal makinenin rolü, o sistemin hangi işi yapmak üzere çalıştığını ifade eder. Proxmox, sanal makinelerin ne amaçla kullanıldığını kendi başına bilmez. Bu nedenle rol tanımlanmadığında tüm VM’ler benzer şekilde davranır ve aynı ayarlarla çalışır.
Web sunucuları hızlı yanıt sürelerine ihtiyaç duyar, veritabanı sistemleri stabil bellek ve disk performansı ister, worker sistemleri ise paralel işlem gücüne odaklanır.
Sanal Makinelerde CPU Rolü
CPU, sanal makinenin işlem gücünü belirleyen ana bileşendir ancak sadece çekirdek sayısıyla değerlendirilmez. Web sunucuları hızlı tepki veren tekil işlemlere odaklanırken, worker sistemler paralel işlem kapasitesine ihtiyaç duyar. Bu yüzden her sanal makinenin CPU ayarı rolüne göre belirlenmelidir.
Proxmox ortamında CPU ayarları, sanal makine seçilerek Hardware sekmesinde bulunan CPU alanından düzenlenir.

Bu ekranda CPU Type alanı kritik bir noktadır. CPU Type değeri host olarak seçildiğinde sanal makine, fiziksel işlemcinin özelliklerini doğrudan kullanır. Bu yapılandırma özellikle web ve uygulama sunucularında gecikmenin azalmasına katkı sağlar.
Aynı ayar terminal üzerinden yapılmak istenirse Proxmox CLI kullanılır.
qm set 101 --cpu host --sockets 1 --cores 4Bu ayarlar tek node çalışan sistemlerde daha kolay yönetilir. Ancak Proxmox cluster yapılarında CPU Type, NUMA ve bellek ayarlarının tüm node’larda birebir 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, ihtiyaç duyduğunda sanal makineden RAM geri alabilir. Bu durum test veya düşük öncelikli sistemlerde genellikle sorun oluşturmaz. Ancak veritabanı gibi kritik servislerde RAM’in anlık olarak düşmesi kilitlenmelere ve ciddi performans kayıplarına yol açabilir. Bu nedenle veritabanı VM’lerinde ballooning kapalı tutulur.
Aynı işlem terminal üzerinden ş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 yer alır. IO Thread aktif edildiğinde disk işlemleri ayrı bir iş parçacığında çalışır. Disk yoğunluğu yüksek olan sistemlerde bu ayar performans üzerinde ciddi fark yaratır. Cache ayarı ise sanal makinenin rolüne göre belirlenmelidir. Veritabanı sistemlerinde güvenli cache seçenekleri tercih edilirken, web sistemlerinde performans öncelikli ayarlar kullanılır.
Terminal üzerinden IO Thread açmak için aşağıdaki komut kullanılır.
qm set 103 --scsihw virtio-scsi-pci --iothread 1NUMA Ayarının Konumu ve Kullanım Amacı
NUMA ayarı, Proxmox arayüzünde CPU düzenleme bölümünde yer alır. Bu ayar, özellikle belirli iş yüklerinde sistem kaynaklarının daha dengeli kullanılmasını hedefler.

NUMA, büyük kaynaklara sahip ve yüksek RAM kullanan sanal makinelerde anlamlıdır. Küçük ve orta ölçekli VM’lerde NUMA’nın açık olması çoğu zaman fayda sağlamaz ve ek gecikmelere yol açabilir. Bu nedenle web sunucuları ve küçük servis VM’lerinde NUMA kapalı tutulmalıdır.
NUMA ayarını terminalden kapatmak için aşağıdaki komut kullanılır.
qm set 104 --numa 0Proxmox Ortamında Role Göre Yapılandırma Mantığı
Role göre yapılandırma, tek seferlik ayar değişikliklerinden oluşmaz. Süreç, belirli bir plan ve mantık çerçevesinde ilerler.
İlk olarak her sanal makinenin hangi görevi üstlendiği belirlenir. Daha sonra CPU, RAM ve disk ağırlıklı çalışan VM’ler ayrıştırılır. Disk yoğunluğu yüksek olan sanal makineler öncelikli olarak ele alınır. Kritik servislerde esnek kaynak davranışları kapatılır. Monitoring, yönetim ve yedekleme gibi yardımcı sistemler üretim yüklerinden 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