Ana içeriğe geç
Kategoriye Dön

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.

Okuma süresi: 12 dk Oyun Sunucusu Kurulumları
lag sorunuoyun sunucusupingtpsfivemminecraftcs2optimizasyon

İç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.

hljs bash
# 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

hljs bash
# 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

hljs bash
# Windows
tracert SUNUCU_IP

# Linux/Mac
traceroute SUNUCU_IP

# Çıktıda yüksek gecikme olan hop'ları tespit edin

Sunucu Kaynak Kullanımı

hljs bash
# 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ı

hljs bash
# 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ı

hljs bash
# 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

hljs bash
# 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ü

hljs bash
# 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:

hljs lua
-- 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:

hljs yaml
# 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

hljs bash
# 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:

hljs bash
# 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

hljs bash
# 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:

hljs yaml
# 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ı

hljs bash
# 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

hljs lua
-- 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

hljs yaml
# 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.