SSD Nodes Learn 🎉 VPS $5.50/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-13

Oyun sunucusu için VPS seçerken nelere dikkat edilmeli?

Oyun sunucusu kiralamadan önce dikkat etmeniz gereken kritik donanım kriterlerini öğrenin. Tek çekirdek hızı, RAM kapasitesi ve lokasyon bazlı gecikme sürelerini analiz edin.

Hangi tür oyun VPS'inden bahsediyorsunuz?

Oyun sunucuları için bir VPS, tek bir iş için iyi bir yatırımdır: sizin ve arkadaşlarınızın kendi makinelerinizden bağlandığınız özel bir sunucuyu çalıştırmak. Bu ifadeyle insanların kastettiği diğer durum, yani oyunu uzak masaüstü üzerinden doğrudan VPS üzerinde oynamak için ise kötü bir tercihtir. Bu iki iş, birbirine zıt donanım gereksinimlerine sahiptir. Özel bir sunucu, hızlı bir CPU çekirdeğine ve oyun dünyasını bellekte tutacak kadar RAM'e ihtiyaç duyar. Oyun oynamak ise bir GPU (grafik işlem birimi) gerektirir ve standart bir VPS planında bu donanım bulunmaz.

Aşağıdaki her şey ilk iş tanımıyla ilgilidir. İkinci durum için ayıracağınız iki dakika önemlidir, çünkü birçok kişi bu amaçla yanlış sunucuyu satın almaktadır.

Neden bir VPS üzerinde oyun oynayamazsınız

Standart bir VPS size sanal CPU çekirdekleri sağlar ve grafik kartı sunmaz. Fiziksel ana bilgisayardan hiçbir donanım aktarımı yapılmadığı için oyunun kullanabileceği bir donanım oluşturucu (renderer) bulunmaz. Gerçekte neye sahip olduğunuzu şu komutla görebilirsiniz:

sudo apt install -y pciutils
lspci | grep -iE "vga|3d"

Alacağınız yanıt, Cirrus Logic veya virtio GPU aygıtı gibi sanal bir görüntü bağdaştırıcısıdır. Bu aygıt, sağlayıcının web konsolunun size bir ekran gösterebilmesi için mevcuttur ve arkasında herhangi bir 3D hızlandırma özelliği yoktur. Bunun üzerine bir masaüstü ortamı ve VNC sunucusu kurarsanız, glxinfo -B oluşturucusunu llvmpipe olarak raporlar; bu, Mesa'nın CPU üzerinde çalışan yazılımsal oluşturucusudur. CPU tarafından çizilen modern bir 3D oyun saniyede yalnızca birkaç kare hızında çalışır, bu nedenle daha sistemden çıkmadan oynanamaz hale gelir. Windows örnekleri de aynı engelle farklı bir noktadan karşılaşır. Birçok oyun, Direct3D aygıtı oluşturamadığına dair hata vererek açılışta kapanır; çünkü bunu oluşturacak bir görüntü bağdaştırıcısı yoktur.

İkinci sorun ise size geri dönüş yoludur. Uzak bir sunucuda oyun oynamak, her karenin videoya kodlanması, internet üzerinden gönderilmesi ve ekranınızda çözülmesi anlamına gelir. Bu durum, oyunun kendi girdi gecikmesinin üzerine kodlama ve kod çözme süresi ekler; ayrıca RDP ve VNC, saniyede 60 karelik hareketler için değil, masaüstü kullanımı için tasarlanmıştır. Bulut oyun servisleri bu sorunu gerçek GPU donanımı ve özel olarak oluşturulmuş bir yayın protokolü ile çözer. Sıradan bir VPS'de bunların hiçbiri yoktur. Oyun oynamak istiyorsanız GPU süresi kiralayın. Barındırma yapmak istiyorsanız okumaya devam edin.

Adanmış bir oyun sunucusunun gerçek gereksinimleri

Oyun sunucusu bir simülasyon döngüsüdür. Dünyayı bellekte tutar ve saniyede sabit sayıda kez ilerletir. Bağlı olan her oyuncuya, dünyanın görebildikleri kısmı gönderilir.

Donanımı belirleyen bu yapıdır. Döngü büyük oranda tek bir iş parçacığı (thread) üzerinde çalıştığından, çekirdek hızı çekirdek sayısından daha önemlidir. Dünya bellekte yaşadığı için RAM genellikle karşılaşılan ilk sınırdır. Disk, oyun sırasında sessizdir ancak yükleme ve kaydetme işlemlerinde yoğundur. Ağ yolunuz ping süresini belirler ve hiçbir plan seviyesi bunu değiştirmez.

Tek çekirdek hızı, çekirdek sayısından daha önemlidir

Çoğu oyun sunucusu, dünya simülasyonunu tek bir ana iş parçacığı (thread) üzerinde yürütür. Minecraft'ın tick döngüsü ve Source motorunun sunucu karesi (frame) bu şekilde çalışır. Bu tick işleminin bir süresi vardır. Minecraft Java saniyede 20 tick hızında çalışır; bu da her tick için 50 milisaniyelik bir bütçe sağlar. İşlem bu süreye sığmadığında, sunucu tam olarak şu çıktıyı verir:

[12:04:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2547ms or 50 ticks behind

Bu satır, bir iş parçacığının süresinin dolduğu anlamına gelir. Çekirdek eklemek, o iş parçacığına daha fazla zaman kazandırmaz. 2 hızlı vCPU içeren bir plan, 8 yavaş vCPU içeren bir planın düşürdüğü tick hızını koruyabilir; çünkü bu 8 çekirdekten sadece biri asıl işi yapmaktadır.

Herhangi bir taahhütte bulunmadan önce tek iş parçacığı hızını ölçün:

sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

events per second satırını okuyun. Bu sayı tek başına bir anlam ifade etmez ancak karşılaştırma yapıldığında her şeydir; bu nedenle iki aday plan üzerinde çalıştırın ve sonuçları yan yana koyun. Tam bir VPS benchmark çalışması, disk ve ağ performansını da aynı şekilde kapsar.

Ekstra çekirdekler yine de işe yarar. İkinci oyun sunucusunu, veritabanını, gece yedeklemelerini ve chunk ön oluşturucusunu (pre-generator), ana tick iş parçacığından zaman çalmadan çalıştırırlar. Sunucu yazılımları da iş yükünü dağıtmayı öğrenmiştir; popüler bir Minecraft sunucu çatalı olan Paper, bazı işlemleri ana tick iş parçacığından ayırır. Bu nedenle satın alınması gereken yapı, çok sayıda yavaş çekirdek değil, az sayıda hızlı çekirdektir.

Bir plan sayfasında asla görünmeyen ancak ödediğiniz hızlı çekirdeğin gerçekten size ait olup olmadığına karar veren bir sayı vardır:

vmstat 1 5

st sütunu, sanal CPU'nuzun çalışmaya hazır olduğu ancak fiziksel ana bilgisayarın çekirdeği başka birine verdiği sürenin yüzdesidir. st değerinin sürekli olarak yüzde birkaç puanın üzerinde olması, ana bilgisayarın kapasitesinin üzerinde satıldığını (oversold) gösterir. Sunucunuzda top boşta CPU gösterse bile, oyuncular bunu takılma olarak hisseder; çünkü o boş zaman sizin kullanımınıza açık değildir.

Bir oyun sunucusu ne kadar RAM'e ihtiyaç duyar?

ChartCommon starting RAM per game server (published guidance, not a measurement)
The data behind this chart
[
  {
    "label": "Minecraft Java, vanilla",
    "players": 10,
    "ram_gb": 2
  },
  {
    "label": "Minecraft Java, large modpack",
    "players": 10,
    "ram_gb": 8
  },
  {
    "label": "Valheim",
    "players": 10,
    "ram_gb": 4
  },
  {
    "label": "Palworld",
    "players": 32,
    "ram_gb": 16
  }
]

Bunlar, Ağustos 2026 itibarıyla oyun ve mod paketi belgelerinde yayınlanan başlangıç tahsisleridir. Bunlar tek bir sunucuda ölçülmüş kesin değerler değil, rehber niteliğindeki rakamlardır. Vanilla Minecraft Java, yaklaşık 10 oyuncu için 2 GB heap alanı ile rahat çalışır. Aynı oyuncu sayısına sahip büyük bir mod paketi ise 8 GB talep eder; çünkü modlar, heap içinde yer kaplayan varlıklar ve oluşturulmuş yapılar ekler. Valheim'ın listelenen minimum gereksinimi 2 GB'tır, ancak küçük bir dünyaya sahip operatörler sürecin 3 GB civarında sabitlendiğini bildirmektedir; bu nedenle 4 GB, başlamak için makul bir değerdir. Palworld, 32 oyuncu sınırı için Pocketpair tarafından önerilen 16 GB değeri ile istisnai bir durumdur.

RAM, bağlantı sayısıyla doğru orantılı olarak ölçeklenmez. Yüklenen dünya boyutuyla ölçeklenir. Her oyuncu kendi çevresindeki bölgeyi yüklü tutar; bu nedenle yan yana duran iki oyuncunun maliyeti, haritanın zıt köşelerini keşfeden iki oyuncudan çok daha düşüktür. "Oyuncu başına RAM" ifadesinin sadece kaba bir rehber olmasının, "aktif alan başına RAM" ifadesinin ise asıl belirleyici olmasının nedeni budur. Keşfetmeyi seven küçük bir grup, kendilerinden iki kat daha kalabalık bir grup için planlanmış bir sunucuyu aşabilir.

Java sunucuları için iki ek kural vardır. JVM'in yeniden boyutlandırma için duraklamaması adına minimum ve maksimum heap değerlerini aynı yapın:

java -Xms4G -Xmx4G -jar server.jar nogui

Ardından boşluk bırakın. JVM, verdiğiniz heap alanı dışında thread yığınları ve native buffer'lar için bellek kullanır; çekirdek ise dünya dosyalarını hızlı okumak için page cache'e ihtiyaç duyar. 6 GB'lık bir sunucuda 4 GB heap mantıklıdır, ancak 6 GB heap mantıklı değildir.

İki bellek hatası birbirinden tamamen farklı görünür, bu yüzden her iki ifadeyi de öğrenin. Çok küçük bir heap, Java içinde hata fırlatır ve sunucu genellikle topallayarak çalışmaya devam eder:

java.lang.OutOfMemoryError: Java heap space

Sunucudan daha büyük bir heap, tüm sürecin dışarıdan öldürülmesine (kill) neden olur. Konsol sadece Killed mesajını verir ve kanıt çekirdek günlüğünde (kernel log) yer alır:

sudo dmesg -T | grep -i "out of memory"

Swap eklemek, sorunu çözmeden öldürülmeyi durdurur. Dünyasını swap üzerinden okumak zorunda kalan bir tick döngüsü her zaman sınırını kaçırır; bu yüzden oyuncularınız çökmüş bir sunucu yerine donmuş bir sunucuyla karşılaşır.

Ağustos 2026 itibarıyla güncel bir sürüm notu: Minecraft Java 1.20.5 ve sonrası Java 21 gerektirir. Daha eski bir runtime başlatılırsa, ilk kez karşılaşıldığında derleyici mesajı gibi görünen ve herkesin kafasını karıştıran "unsupported class file version" hatası ile başarısız olur.

sudo apt install -y openjdk-21-jre-headless
java -version

Disk hızı bir oyun sunucusu için önemli midir?

Oyun sırasında insanların beklediğinden daha az, ancak iki özel anda oldukça önemlidir. Dünya, başlangıçta belleğe yüklenir ve otomatik kaydetme sırasında diske geri yazılır; bu nedenle disk hızı, yavaş bir açılış ve kaydetme işlemi sırasında yaşanan bir duraksama olarak kendini gösterir. Bu iki an arasında, okuma işlemlerinin çoğu RAM üzerinden gerçekleştirilir.

İki durum, diskin bu özetten daha önemli hale gelmesine neden olur. Keşif sırasında oyuncular hareket ederken diskten yeni parçalar veya bölgeler yüklenir ve bu okuma işlemi, tick bütçesi dahilinde gerçekleşir. Büyük bir dünyada otomatik kaydetme işlemi aynı anda çok fazla veri yazar; yavaş bir diskte bu yazma işlemi, döngüyü yukarıdaki "Can't keep up" uyarısını verecek kadar uzun süre bloke eder. Bunların her ikisi de veri aktarım hızından ziyade gecikme sorunlarıdır; bu yüzden bir VPS üzerinde NVMe ile SATA SSD arasındaki fark, manşetlerdeki saniye başına megabayt değerlerinin önerdiğinden daha önemlidir. Önemli olan, tek bir küçük işlemin ne kadar sürdüğüdür.

Diski büyüme payını gözeterek boyutlandırın. Bir dünya, birisi yeni bir yere her gittiğinde büyür ve yedekleriniz, mevcut boyutun katlanmasına neden olur. Bir ay boyunca haftada bir kez du -sh world komutunu çalıştırın; böylece gerçek büyüme hızınızı öğrenmiş olursunuz.

Tick rate, ping ve aralarındaki fark

Tick rate, sunucunun dünyayı saniyede kaç kez yeniden hesapladığını ifade eder. Minecraft Java 20 değerinde çalışır. Source motoru kullanan sunucular genellikle 64 değerinde çalışır. Minecraft'ta daha yüksek bir değer satın alınamaz, çünkü bu oran oyun tasarımının bir parçasıdır; bu nedenle hedef, bu değeri aşmak değil 20 seviyesinde sabit tutmaktır.

Ping, bir oyuncu ile sunucu arasındaki gidiş-dönüş süresidir. Bu iki kavram farklı şikayetlere yol açar, bu yüzden harcama yapmadan önce bunları birbirinden ayırın. Sunucu tick kaçırdığında, herkes aynı anda takılma (rubber-banding) yaşar ve sunucu günlüğü bunu açık bir metinle belirtir. Bir oyuncunun ağ yolu uzun olduğunda ise sadece o oyuncu gecikme yaşar, grubun geri kalanı sorunsuz devam eder. Daha güçlü bir CPU, ikinci durumu asla düzeltmez.

Gecikme konuma bağlıdır, plan seviyesine değil

Fiber optik kablolardaki ışık, milisaniyede yaklaşık 200 kilometre yol alır. Gidiş-dönüş süresi mesafeyi iki kez kat ettiği için, oyuncu ile sunucu arasındaki her 100 km için alt sınır yaklaşık 1 ms'dir. Hiçbir servis sağlayıcı bu sınırı aşamaz ve hiçbir plan yükseltmesi bunu değiştiremez.

ChartRound trip floor by distance, fibre physics only
The data behind this chart
[
  {
    "label": "Toronto to New York",
    "distance_km": 550,
    "rtt_floor_ms": 5.5
  },
  {
    "label": "Dallas to Chicago",
    "distance_km": 1290,
    "rtt_floor_ms": 12.9
  },
  {
    "label": "Dallas to Los Angeles",
    "distance_km": 1990,
    "rtt_floor_ms": 19.9
  },
  {
    "label": "New York to London",
    "distance_km": 5570,
    "rtt_floor_ms": 55.7
  },
  {
    "label": "Los Angeles to Sydney",
    "distance_km": 12070,
    "rtt_floor_ms": 120.7
  }
]

Bunlar, büyük daire mesafesi üzerinden hesaplanan alt sınırlardır. Gerçek fiber hatlar düz bir çizgide ilerlemez ve yol üzerindeki her yönlendirici (router) küçük bir gecikme ekler; bu nedenle gerçek dünyadaki iyi bir sonuç, bu alt sınırın yaklaşık iki katı civarındadır. Toronto'dan 550 km uzaklıktaki New York'taki bir sunucuya bağlanan bir oyuncunun alt sınırı 5.5 ms'dir ve genellikle 10-20 ms arası bir değer görür. Los Angeles'tan Sidney'e olan hat için alt sınır 120.7 ms'dir ve ne kadar ödeme yaparsanız yapın bu süre kısalmaz.

Bu yüzden sunucuyu, üzerinde oynayan kişilere yakın bir yere konumlandırın. Eğer grubunuz bir okyanusun iki yakasına bölünmüşse, bir taraf uzun yolu kullanmak zorunda kalacaktır; adil olan çözüm genellikle oyuncuların çoğunluğunun bulunduğu bölgeyi seçmektir.

Tahmin etmek yerine yolu ölçün:

sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10

Önce son satırı okuyun. O satır sunucuyu temsil eder; oyun deneyimini belirleyen tek şey, o noktadaki paket kaybı ve gecikmedir. Orta bir sekmede görülen ancak son sekmede temiz olan paket kaybı, neredeyse her zaman o yönlendiricideki ICMP hız sınırlamasından kaynaklanır. Yönlendiriciler, gerçek trafiği normal şekilde iletirken test paketlerine verilen yanıtları düşük öncelikli tutarlar. Her oyuncunun kendi yolu farklı olduğundan, her birine sunucuya doğru test yaptırın.

Gidiş-dönüş alt sınırı nasıl hesaplanır

Cam içindeki ışık, vakumdaki hızının yaklaşık üçte ikisi ile hareket eder; bu da milisaniyede 200 km'ye denk gelir. Gidiş-dönüş mesafeyi iki kez kat ettiği için, milisaniye cinsinden alt sınır, kilometre cinsinden tek yönlü mesafenin 100'e bölünmesiyle bulunur. New York ile Londra arası 5.570 km'dir; 5570'in 100'e bölümü 55.7 ms sonucunu verir. Ölçülen her değer bundan daha yüksek çıkar çünkü kablolar kıyı şeritlerini takip eder ve yönlendiricilerin işlem yapması zaman alır.

Yalnızca oyunun ihtiyaç duyduğu portları açın

Bir oyun sunucusu, sadece bir veya iki portun açık olmasına ihtiyaç duyar, fazlasına değil. Yaygın varsayılanlar şunlardır:

  • Minecraft Java Edition: TCP 25565
  • Minecraft Bedrock Edition: UDP 19132
  • Valheim: UDP 2456 ve UDP 2457
  • Palworld: UDP 8211
  • Counter-Strike 2 gibi Source motoru oyunları: UDP 27015

Oyunun kendi dokümantasyonunu kontrol edin, çünkü birçok oyun ek bir sorgu portu kullanır. Valheim bunun en net örneğidir: 2456 numaralı port oyun trafiğini taşırken, 2457 numaralı port sunucunuzun tarayıcı listesinde görünmesini sağlayan Steam sunucu sorgusuna yanıt verir. Bu numaraları TCP üzerinde açmak hiçbir işe yaramaz, çünkü Valheim yalnızca UDP kullanır.

Güvenlik duvarını etkinleştirmeden önce SSH erişimine izin verin, aksi takdirde kendi sunucunuza erişiminizi kaybedersiniz:

sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

Birçok sağlayıcı, sunucu üzerindeki güvenlik duvarından bağımsız olarak kontrol panellerinde bir ağ güvenlik duvarı daha çalıştırır. ufw içinde açık olan ancak orada kapalı tutulan bir port bağlantıları reddeder; dışarıdan bakıldığında belirti aynıdır, bu nedenle yapılandırma dosyalarını düzenlemeye başlamadan önce her iki yeri de kontrol edin.

Başka bir makineden bir TCP portunu kontrol etmek kolaydır:

sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565

UDP bu şekilde test edilemez. Kapalı bir UDP portu normalde sessiz kalır, bu nedenle yanıt alamadığınız bir sorgu size hiçbir şey söylemez. Bunun yerine sunucu tarafından doğrulama yapın ve oyun sürecinin beklediğiniz porta bağlı olup olmadığını kontrol edin:

sudo ss -lunp | grep 2456

Uzaktan konsol protokolü olan RCON'u asla internete açmayın. Bu protokol, varsayılan olarak 25575 numaralı port üzerinden düz metin bağlantısıyla gönderilen tek bir paroladan ibarettir. Onu 127.0.0.1 adresine bağlayın ve bir SSH tüneli üzerinden erişin. Ayrıca oyun sunucusunu kendi yetkisiz kullanıcısı ile çalıştırın; böylece bir moddaki hata makinenin geri kalanına erişemez. Yeni bir VPS üzerindeki ilk on dakika bölümü, bu kısmın halihazırda yapıldığını varsaydığı kullanıcı hesabı ve SSH sıkılaştırma işlemlerini kapsar.

Sunucuyu systemd altında çalıştırarak yeniden başlatılmasını sağlamak

Bir SSH oturumunda manuel olarak başlatılan sunucu, oturum kapandığında durur ve yeniden başlatma sonrasında çalışmaz. systemd her iki sorunu da çözer. /etc/systemd/system/minecraft.service dosyasını oluşturun:

[Unit]
Description=Minecraft Java server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar server.jar nogui
Restart=on-failure
RestartSec=15
TimeoutStopSec=180

[Install]
WantedBy=multi-user.target

Restart=on-failure ayarı, sunucunun bir çökme sonrasında otomatik olarak ayağa kalkmasını sağlar, ancak temiz bir kapatma işleminden sonra kapalı kalır; istenen davranış budur. Restart=always ayarı, sunucuyu kasıtlı olarak durdurduğunuzda bile onu tekrar başlatmaya çalışarak sizi engeller. TimeoutStopSec=180 ayarı göründüğünden daha önemlidir. systemctl stop komutu SIGTERM sinyali gönderir; standart Minecraft sunucusu bu sinyali yakalar, dünyayı kaydeder ve ardından kapanır. Zaman aşımı dolduğunda ise systemd, SIGKILL sinyali gönderir. Büyük bir dünya dosyasının yazılması varsayılan 90 saniyeden uzun sürebilir; SIGKILL geldiğinde diske yazılmamış olan tüm veriler kaybolur.

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo journalctl -u minecraft -f

Sağlıklı bir başlatma işlemi Done (12.345s)! For help, type "help" gibi bir satırla biter. Eğer birim activating ve failed durumları arasında gidip geliyorsa, journalctl -u minecraft -n 50 hata nedenini içerir; bu genellikle WorkingDirectory içindeki yanlış bir yol veya sunucunun kapasitesinden büyük bir heap boyutu kaynaklıdır.

systemd etkileşimli bir konsol sunmaz, bu yüzden bunu önceden planlayın. Komutlar için localhost üzerinde RCON kullanın veya sunucuyu bir tmux oturumu içinde çalıştırın; bu, uzun süreli bir Claude Code oturumunu VPS üzerinde canlı tutmak için kullanılan alışkanlığın aynısıdır.

Steam üzerinden dağıtılan oyun sunucuları, tüm bunlardan önce SteamCMD gerektirir. Ubuntu paketi 32 bit bir binary dosyasıdır, bu yüzden mimari satırı gereklidir. O satırı atlarsanız apt herhangi bir kurulum adayı bulunamadığını bildirecektir:

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

Bazı oyun sunucularının bellek kullanımı çalıştıkça artar; bu durumda bir düzeltme yerine, sessiz saatlerde planlanmış bir yeniden başlatma kabul görmüş bir geçici çözümdür. systemctl restart komutunu çağıran bir systemd zamanlayıcısı, bir cron girdisinden daha anlaşılırdır çünkü systemctl list-timers komutu zamanlayıcının bir sonraki çalışma zamanını tam olarak gösterir.

Dünyayı bir takvime göre yedekleyin

Oyun sunucusundaki her şey, world dizini ve oyuncu verileri hariç, yeniden oluşturulabilir. Oyunun yeniden kurulması dakikalar sürer. Grubunuzun inşa ettiklerini yeniden yapmak ise aylar alır.

Güvenli bir yedek, hiçbir yazma işleminin yapılmadığı sırada alınan yedektir. Sunucuyu bir dakikalığına durdurmak, bunu garanti etmenin en basit yoludur:

sudo systemctl stop minecraft
sudo tar czf /var/backups/mc-$(date +%F).tgz -C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft

Gece yapılan bir kesinti kabul edilemezse, önce dünyayı diske yazmaya zorlayın (flush). Minecraft konsolunda save-off otomatik kaydetmeyi durdurur, save-all flush bekleyen tüm verileri yazar ve save-on kopyalama işlemi bittiğinde otomatik kaydetmeyi tekrar açar. Sunucu yazma işlemi yaparken dünyayı kopyalamak, yarısı yazılmış bir bölge dosyasının alınmasına neden olabilir; bunu ancak geri yükleme yapmanız gereken gün fark edersiniz.

En az bir kopyayı makinenin dışında tutun. Aynı diskteki bir yedek, disk arızalandığında kurtarılamaz. Sağlayıcı anlık görüntüleri (snapshot) bir yedekleme değil, kolaylık aracıdır; çünkü bu görüntüler, erişiminizi kaybedebileceğiniz aynı hesapta tutulur. Site dışı depolamaya planlanmış restic yedekleri, saklama süresi ve tekilleştirme işlemlerini yönetir; böylece bir aylık gece yedekleri diskinizi doldurmaz.

Ardından bir yedekleme geri yükleyin. Hiç geri yüklemediğiniz bir yedek, sadece bir tahmindir. Dün geceye ait arşivi boş bir dizine çıkarın, bir test sunucusunu bu dizine yönlendirin ve dünyanın yüklendiğini, yapıların bıraktığınız yerde olduğunu doğrulayın.

Taahhüt vermeden önce kontrol edin

Bir yıllık yerine bir aylık satın alın ve gerçek oyuncularla bir akşam boyunca test yapın. Tek iş parçacıklı sysbench değerini çalıştırın, ardından her oyuncunun sunucuya doğru mtr çalıştırmasını sağlayın. Tam VPS kıyaslama prosedürü, bu araçların nasıl kullanılacağını adım adım açıklar ve kötü bir sonucun neye benzediğini gösterir; bir VPS'in aylık gerçek maliyeti ise, plan sayfasında en büyük puntolarla yazılan kaynağa değil, sunucunuzu kısıtlayan kaynağa ödeme yaptığınızdan emin olmanıza yardımcı olur.

İki yazı, bu rehberin bittiği noktadan devam etmektedir. Bir VPS üzerinde Minecraft sunucusu kurmak, yukarıda anlatılan her şeyin, insanların genellikle başladığı oyun üzerinden adım adım uygulamasını içerir. Bir VPS'in çalıştırabileceği daha geniş kapsamlı şeyler listesi, sunucunun oyun geceleri dışında da yararlı bir iş yapmasını istiyorsanız okunmaya değerdir.

FAQ

Oyun oynamak için oyun bilgisayarı almak yerine VPS kullanabilir miyim?

Hayır. Standart bir VPS'te GPU bulunmaz; yalnızca sağlayıcının konsolu için sanal bir görüntü bağdaştırıcısı vardır. Bu nedenle bir masaüstü ortamı kurulduğunda glxinfo -B yazılım tabanlı işleyiciyi llvmpipe olarak raporlar ve 3D oyunlar saniyede birkaç kare hızında çalışır. GPU takılı olsa bile, uzak bağlantı her karenin gidiş-dönüş süresine video kodlama ve kod çözme yükü ekler; RDP ve VNC bu amaçla tasarlanmamıştır. VPS, grubunuzun bağlandığı özel sunucuyu barındırmak içindir. Oyun oynamak istiyorsanız GPU kiralayın veya bulut oyun servislerini kullanın.

Bir oyun sunucusu kaç CPU çekirdeğine ihtiyaç duyar?

Çoğu oyun için iki hızlı çekirdek, sekiz yavaş çekirdekten daha iyidir. Bunun nedeni, dünya simülasyonunun tek bir ana iş parçacığı (thread) üzerinde çalışması ve ek çekirdeklerin bu iş parçacığının 50 ms'lik zaman sınırını yakalamasına yardımcı olamamasıdır. Aday planları sysbench cpu --cpu-max-prime=20000 --threads=1 run ile karşılaştırın ve saniye başına olay (events per second) değerini inceleyin. Aynı makinede ikinci bir sunucu veya veritabanı çalıştırıyorsanız ek çekirdekler için ödeme yapmaya değer; çünkü bu iş yükleri, tick iş parçacığından zaman çalmadan çalışabilir.

Bir Minecraft sunucusu ne kadar RAM'e ihtiyaç duyar?

Yaklaşık 10 oyuncu içeren standart bir dünya için 2 GB yığın (heap) belleği, aynı oyuncu sayısına sahip büyük bir mod paketi için ise 8 GB yeterlidir. -Xms ve -Xmx değerlerini aynı ayarlayın ve işletim sistemi için makinede 1 GB ile 2 GB arası boş alan bırakın. JVM, yığın dışında da bellek kullanır ve çekirdeğin sayfa önbelleğine (page cache) ihtiyacı vardır. Makinenin kapasitesinden daha büyük bir yığın boyutu, sürecin çekirdek tarafından sonlandırılmasına neden olur; bu durum dmesg içerisinde bir Java hatası olarak değil, bellek yetersizliği (out of memory) satırı olarak görünür.

Sunucuda boş CPU ve RAM olmasına rağmen oyuncularım neden gecikme (lag) yaşıyor?

Bu durumun iki temel nedeni vardır. Sunucu günlüğünde Can't keep up! Is the server overloaded? ifadesini kontrol edin; bu, tek ana iş parçacığının 50 ms'lik tick bütçesini aşarken diğer çekirdeklerin boşta kaldığı anlamına gelir. Eğer bu satır yoksa sorun ağ yolundadır; bu durumda her oyuncunun kendi bilgisayarında sunucu adresinize karşı mtr -rwzc 100 203.0.113.10 komutunu çalıştırmasını ve son satırı incelemesini isteyin. Ayrıca vmstat 1 içerisindeki st sütununu kontrol edin; birkaç yüzde üzerindeki "steal time" değeri, sunucunun aşırı satıldığını (oversold) gösterir; yani gördüğünüz boş CPU aslında kullanımınıza açık değildir.

Bir oyun sunucusu için hangi portları açmam gerekir?

Yalnızca oyunun kendi portunu ve SSH portunu açın. Minecraft Java TCP 25565, Minecraft Bedrock UDP 19132, Valheim UDP 2456 ve 2457, Palworld ise UDP 8211 portunu kullanır. ufw enable komutunu çalıştırmadan önce SSH kuralını ekleyin, aksi takdirde makineye erişiminizi kaybedersiniz. Birçok sağlayıcının kontrol panelinde ikinci bir güvenlik duvarı çalıştırdığını ve portun her iki tarafta da açık olması gerektiğini unutmayın. RCON'u 25575 portu üzerinden asla internete açmayın; çünkü bu, düz metin olarak gönderilen tek bir şifre ile çalışır.