Oyun Sunucusu Lag Sorunu: Nedenler ve Çözümler
Oyun sunucusu lag sorunlarının nedenleri ve çözümleri: ağ gecikmesi, sunucu taraflı lag, TPS düşüşü, MTR testi ve FiveM/Minecraft/CS2 optimizasyon rehberi.
İçindekiler
Oyun Sunucusu Lag Sorunu: Nedenler ve Çözümler
Oyun sunucusunda lag, oyuncuların en sık şikayet ettiği sorunların başında gelir. Ancak "lag" tek bir sorun değildir — farklı türleri ve nedenleri vardır. Bu rehber, lag sorunlarını doğru teşhis etmenizi ve etkili çözümler uygulamanızı sağlar.
Lag Türleri
1. Ağ Gecikmesi (Network Lag / Ping)
Oyuncunun bilgisayarı ile sunucu arasındaki iletişim gecikmesidir. Ping değeriyle ölçülür.
Ping Değerlendirmesi:
< 20 ms: Mükemmel (oyuncu fark etmez)
20-50 ms: İyi (kabul edilebilir)
50-100 ms: Orta (hafif gecikme hissedilebilir)
100-150 ms: Kötü (belirgin gecikme)
> 150 ms: Çok Kötü (oynanamaz)
2. Sunucu Taraflı Lag (Server-Side Lag / TPS)
Sunucunun işlem kapasitesinin yetersiz kalmasıdır. TPS (Ticks Per Second) ile ölçülür.
TPS Değerlendirmesi (Minecraft örneği):
20 TPS: Mükemmel (normal)
18-20 TPS: İyi
15-18 TPS: Orta (hafif lag)
10-15 TPS: Kötü (belirgin lag)
< 10 TPS: Çok Kötü (oynanamaz)
3. Paket Kaybı (Packet Loss)
Gönderilen paketlerin bir kısmının hedefe ulaşmamasıdır. %1 bile ciddi sorunlara yol açabilir.
Paket Kaybı Değerlendirmesi:
0%: Mükemmel
0-1%: Kabul edilebilir
1-5%: Sorunlu
> 5%: Kritik (acil müdahale gerekli)
Teşhis Araçları
MTR (My Traceroute) ile Ağ Analizi
MTR, traceroute ve ping'i birleştiren güçlü bir ağ teşhis aracıdır.
# Linux/Mac
mtr --report --report-cycles 100 SUNUCU_IP
# Windows (WinMTR)
# WinMTR uygulamasını indirin ve sunucu IP'sini girin
# Örnek MTR çıktısı:
# Host Loss% Snt Last Avg Best Wrst StDev
# 1. 192.168.1.1 0.0% 100 1.2 1.1 0.9 2.1 0.2
# 2. 10.0.0.1 0.0% 100 5.3 5.1 4.8 6.2 0.3
# 3. 185.x.x.x 0.0% 100 8.7 8.5 8.1 9.3 0.4
# 4. SUNUCU_IP 0.0% 100 12.3 12.1 11.8 13.2 0.5
Ping Testi
# Sürekli ping testi
ping -t SUNUCU_IP # Windows
ping -c 100 SUNUCU_IP # Linux/Mac
# Paket boyutu ile ping
ping -l 1400 SUNUCU_IP # Windows
ping -s 1400 SUNUCU_IP # Linux
Traceroute
# Windows
tracert SUNUCU_IP
# Linux/Mac
traceroute SUNUCU_IP
# Çıktıda yüksek gecikme olan hop'ları tespit edin
Sunucu Kaynak Kullanımı
# CPU kullanımı
top
htop
# RAM kullanımı
free -h
# Disk I/O
iostat -x 1
# Ağ trafiği
netstat -s
ss -s
# Gerçek zamanlı ağ izleme
nethogs
iftop
Ağ Kaynaklı Lag Nedenleri ve Çözümleri
Neden 1: Yüksek Ping (Uzak Sunucu Lokasyonu)
Belirtiler:
- Tüm oyuncular yüksek ping yaşıyor
- Ping sabit ama yüksek
- MTR'de son hop'ta yüksek gecikme
Çözüm:
- Sunucuyu oyuncu kitlesine yakın bir lokasyona taşıyın
- Türk oyuncular için İstanbul lokasyonu seçin
- REXE'nin İstanbul VDS'i ile 5-15 ms ping elde edin
Neden 2: Paket Kaybı
# Paket kaybı tespiti
mtr --report SUNUCU_IP
# Hangi hop'ta paket kaybı var?
# Eğer son hop'ta kayıp varsa: sunucu sorunu
# Eğer ara hop'ta kayıp varsa: ISP/routing sorunu
# Çözüm:
# - REXE destek ekibine bildirin
# - ISP'nizi değiştirmeyi düşünün
# - Path.net routing optimizasyonu
Neden 3: DDoS Saldırısı
# Anormal trafik tespiti
netstat -an | grep ESTABLISHED | wc -l
tcpdump -i eth0 -n | head -50
# Belirtiler:
# - Ani ping artışı
# - Tüm oyuncuların aynı anda bağlantısı kesilmesi
# - Sunucu CPU/RAM normal ama erişilemiyor
# Çözüm:
# - REXE destek ekibini hemen bilgilendirin
# - Path.net DDoS korumasını aktifleştirin
Neden 4: ISP Routing Sorunu
# Routing sorununu tespit et
traceroute SUNUCU_IP
# Belirtiler:
# - Belirli ISP'lerden yüksek ping
# - Diğer ISP'lerden normal ping
# - MTR'de belirli hop'larda yüksek gecikme
# Çözüm:
# - Path.net anycast routing otomatik optimizasyon sağlar
# - REXE destek ekibine bildirin
Sunucu Taraflı Lag Nedenleri ve Çözümleri
Neden 1: CPU Aşırı Yükü
# CPU kullanımını kontrol et
top -bn1 | grep "Cpu(s)"
# Hangi process CPU tüketiyor?
top -bn1 | head -20
# Belirtiler:
# - TPS düşüşü
# - Sunucu yanıt süresi artışı
# - top'ta %100 CPU kullanımı
FiveM için CPU Optimizasyonu:
-- server.cfg
set sv_maxClients 32 -- Oyuncu sayısını sınırla
set sv_scriptHookAllowed 0
-- Ağır resource'ları devre dışı bırak
-- ensure resource_name -- Gereksiz resource'ları kaldır
Minecraft için CPU Optimizasyonu:
# spigot.yml
world-settings:
default:
mob-spawn-range: 4 # Varsayılan: 8
entity-activation-range:
animals: 16
monsters: 24
misc: 8
tick-inactive-villagers: false
nerf-spawner-mobs: true
Neden 2: RAM Yetersizliği
# RAM kullanımını kontrol et
free -h
# Swap kullanımı yüksekse RAM yetersiz
# Swap: 0 olmalı veya çok düşük olmalı
# Java heap boyutunu kontrol et (Minecraft)
ps aux | grep java | grep -o '\-Xmx[0-9]*[mMgG]'
Minecraft JVM Optimizasyonu:
# Başlatma scripti
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar server.jar nogui
Neden 3: Disk I/O Sorunu
# Disk I/O'yu kontrol et
iostat -x 1 5
# %util yüksekse disk darboğazı var
# await değeri yüksekse disk yavaş
# Çözüm:
# - NVMe SSD kullanın (HDD veya SATA SSD yerine)
# - Düzenli chunk kaydetme sıklığını azaltın
Minecraft Disk Optimizasyonu:
# bukkit.yml
chunk-gc:
period-in-ticks: 600 # Chunk temizleme sıklığı
# spigot.yml
world-settings:
default:
save-structure-info: false
max-auto-save-chunks-per-tick: 8 # Varsayılan: 24
Neden 4: Plugin/Mod Sorunları
# Minecraft: Timings raporu
/timings on
# 5 dakika bekle
/timings paste
# URL'yi tarayıcıda açın ve ağır plugin'leri tespit edin
# FiveM: Resource profiler
resmon start
# Ağır resource'ları tespit edin
Oyun Türüne Göre Optimizasyon
FiveM Optimizasyonu
-- server.cfg
set sv_maxClients 64
set sv_licenseKey "LISANS_ANAHTARI"
set sv_hostname "Sunucu Adı"
-- Performans ayarları
set sv_scriptHookAllowed 0
set onesync_enabled true -- OneSync ile daha iyi performans
set onesync_population true
-- Ağ ayarları
set net_maxPacketSize 1300
set net_maxPacketFrags 4
Minecraft Optimizasyonu
# paper.yml (PaperMC)
world-settings:
default:
optimize-explosions: true
mob-spawner-tick-rate: 2
disable-chest-cat-detection: true
container-update-tick-rate: 3
max-entity-collisions: 2
grass-spread-tick-rate: 4
despawn-ranges:
soft: 28
hard: 96
CS2 Optimizasyonu
# server.cfg
sv_maxrate 786432
sv_minrate 196608
sv_maxupdaterate 128
sv_minupdaterate 64
sv_mincmdrate 64
sv_maxcmdrate 128
rate 786432
Ne Zaman Sunucu Yükseltmesi Yapmalısınız?
Yükseltme Zamanı Göstergeleri:
CPU:
- Sürekli %80+ kullanım
- TPS sürekli 18'in altında
- Oyuncu sayısı artırılamıyor
RAM:
- Swap kullanımı var
- OOM (Out of Memory) hataları
- Bellek sızıntısı şüphesi
Disk:
- %util sürekli %80+
- await > 20ms
- Chunk yükleme yavaş
Ağ:
- Bant genişliği limiti aşılıyor
- Paket kaybı var
- DDoS saldırıları etkili oluyor
Lag sorunlarını çözmek için önce teşhis yapın. MTR ile ağ sorununu, top/htop ile CPU/RAM sorununu, iostat ile disk sorununu tespit edin. Sorunun kaynağını bilmeden yapılan optimizasyonlar genellikle etkisiz kalır.
REXE'nin NVMe SSD tabanlı VDS sunucuları ve Path.net ağ altyapısı, oyun sunucusu lag sorunlarının büyük çoğunluğunu ortadan kaldırır. Türkiye'deki oyuncular için İstanbul lokasyonu, 5-15 ms ping değerleri sağlar.
İlgili Makaleler
FiveM Sunucusu Kurulumu: VDS'de Adım Adım Rehber
REXE VDS üzerinde FiveM sunucusu kurulumu, txAdmin yapılandırması, port ayarları ve performans optimizasyonu. GTA V roleplay sunucunuzu dakikalar içinde kurun.
Minecraft Sunucusu Kurulumu: Paper ile Adım Adım Rehber
REXE VDS üzerinde Paper/Spigot Minecraft sunucusu kurulumu, Java ayarları, plugin yönetimi ve performans optimizasyonu. Kendi Minecraft sunucunuzu kurun.
CS2 Sunucusu Kurulumu: SteamCMD ile Adım Adım Rehber
REXE VDS üzerinde Counter-Strike 2 dedicated sunucu kurulumu, SteamCMD, GSLT token ve sunucu yapılandırması. CS2 sunucunuzu hızlıca kurun.