Sunucu Optimizesi Nasıl Yapılır?

''Sunucumda çok fazla lag var, tps durumu çok kötü ne yapmam lazım!'' böyle bir sorunla mı karşılaştın? Endişelenme cevabı burada talimatları takip et ve birlikte bu sorunu çözelim!

Sunucumda çok fazla lag var nasıl optimize yapacağım?

  • Haritayı Önceden Yükleme Bu işlem sunucunuzda büyük ölçüde lag'ı azaltabilir.

WorldBorder pluginini kurun.
Sunucunuza ve isteklerinize göre bir dünya sınırı belirleyin.
/wb fill komutu ile işlemleri yapın.
Bu işlem saatler sürebilir ve işlem anında sunucunuz da lag/donma olabilir.
Dünya sınırı oluştuktan sonra yeni oyuncular orayı geçemeyeceği için daha fazla chunk yüklenemez.

Sunucu dosyalarını optimizeli hale getirerek başlayalım!

  • bukkit.yml (Örnek Konfigürasyon)

Varsayılan Hali
Optimizeli Hali
Varsayılan Hali

spawn-limits Varsayılan: monsters:70, animals:10, water-animals:15, water-ambient:20, ambient:15

chunk-gc.period-in-ticks Varsayılan: 600

ticks-per.monster-spawns Varsayılan: 1

autosave Varsayılan: 6000

Optimizeli Hali

spawn-limits Optimizeli: monsters:50, animals:8, water-animals:7, water-ambient:10, ambient:1 Performans etkisi: Orta

● Oyuncu sayısına bağlı olarak doğacak mob limitlerini ayarlar.

chunk-gc.period-in-ticks Optimizeli: 400 Performans etkisi: Orta

ticks-per.monster-spawns Optimizeli: 4 Performans Etkisi: Orta

● Kullanılmayan Chunk'ların daha hızlı yok olmasını sağlar

autosave Optimizeli: 6000 Performans Etkisi: Bilinmiyor

● Otomatik olarak kayıt yapar, eğer kapatmak isterseniz 0 yazmanız yeterli olacaktır.

  • spigot.yml (Örnek Konfigürasyon)

Varsayılan Hali
Optimizeli Hali
Varsayılan Hali

save-user-cache-on-stop-only Varsayılan: false

max-tick-time Varsayılan: tile:50, entity:50

mob-spawn-range Varsayılan: 8

tick-inactive-villagers Varsayılan: true

merge-radius Varsayılan: item:2.5, exp:3.0

nerf-spawner-mobs Varsayılan: false

item-despawn-rate Varsayılan: 6000 (5 dakika)

arrow-despawn-rate Optimizeli: 300

Optimizeli Hali

save-user-cache-on-stop-only Optimizeli: true Performans Etkisi: Orta

● Cache kayıtlarının oyunda sürekli olarak kaydetmesini istiyorsanız false olarak bırakın, eğer sadece sunucu kapanırken kayıt etsin diyorsanız true ayarına getirin, bu sunucunuzun performansını arttıracaktır. (Ayarı true olarak değiştirdiyseniz lütfen stop yazarak kapatın.)

max-tick-time Optimizeli: tile:1000, entity:1000 Performans Etkisi: Bilinmiyor

mob-spawn-range Opt: 6 Performans Etkisi: Bilinmiyor

● Oyuncuların, yürürken yüklenen chunk uzaklık alan mesafesine göre doğacağı alan'ı belirler.

entity-activation-range Varsayılan: animals:32, monsters:32, raiders: 48, misc:16 Optimizeli: animals:16, monsters:24, raiders: 48, misc:8 Performans Etkisi: Orta

● Bu ayarı çok düşük ayarlamayın yoksa mobları bozabilirsiniz.

tick-inactive-villagers Optimizeli: false Performans Etkisi: Orta

merge-radius Optimizeli: item:4.0, exp:6.0 Performans Etkisi: Orta

● Birleştirme mesafesini ayarlar.

nerf-spawner-mobs Optimizeli: true Performans Etkisi: Orta

● Sunucunuz da hayvan/canavar farmları yapılıyorsa true yapmanızı öneririm sunucunuz'a gerçekten katkı sağlayacaktır.

item-despawn-rate Optimizeli: 3000-4000 (Varsayılan'dan daha az ayarlayın) Performans Etkisi: Duruma Göre

● Yere düşen eşyalar silinmeden önce ki süreyi ayarlar.

arrow-despawn-rate Optimizeli: 300 Performans Etkisi: Düşük

  • paper.yml (Örnek Konfigürasyon)

Varsayılan Hali
Optimizeli Hali
Varsayılan Hali

max-auto-save-chunks-per-tick Varsayılan: 24

optimize-explosions Varsayılan: false

mob-spawner-tick-rate Varsayılan: 1

disable-chest-cat-detection Varsayılan: false

container-update-tick-rate Varsayılan: 1

max-entity-collisions (Bazen spigot.yml içinde olabiliyor) Varsayılan: 8

grass-spread-tick-rate Varsayılan: 1

despawn-ranges Varsayılan: soft: 32, hard: 128

hopper.disable-move-event Varsayılan: false

prevent-moving-into-unloaded-chunks Varsayılan: false

use-faster-eigencraft-redstone Varsayılan: false

armor-stands-tick Varsayılan: true

per-player-mob-spawns Varsayılan: false

alt-item-despawn-rate Varsayılan: false

no-tick-view-distance Varsayılan: -1

Optimizeli Hali

max-auto-save-chunks-per-tick Optimizeli: 6 Performans Etkisi: Yüksek

● Bu değerleri düşük tutmanızda fayda var. eğer 30/40 oyuncudan fazla oyuncunuz varsa bu değeri 8 veya 9 olarak ayarlayın. (1.14 ve üstü sunucular için önemli bir ayar)

optimize-explosions Optimizeli: true Performans Etkisi: Düşük

mob-spawner-tick-rate Optimizeli: 2 Performans Etkisi: Düşük

disable-chest-cat-detection Optimizeli: true Performans Etkisi: Düşük

container-update-tick-rate Optimizeli: 3 Performans Etkisi: Düşük

max-entity-collisions (Bazen spigot.yml içinde olabiliyor) Optimizeli: 2 Performans Etkisi: Orta

grass-spread-tick-rate Optimizeli: 4 Performans Etkisi: Orta

● Oyunu etkilemez FPS düşürmez, çimenlerin oluşmasıyla ilgili bir ayar.

despawn-ranges Optimizeli: soft: 28, hard: 96 Performans Etkisi: Orta

hopper.disable-move-event Optimizeli: true Performans Etkisi: Yüksek

● Her bir slot için InventoryMoveItemEvent eventini çağırmayı kapatır bu ayarı kapatmak performansa büyük ölçüde katkı sağlar eğer InventoryMoveItemEvent çağıran bir eklentiniz varsa false olarak bırakın.

prevent-moving-into-unloaded-chunks Optimizeli: true Performans Etkisi: Orta

● Bu ayarı aktif etmeniz yüklenmemiş chunk'ta yani oyunda görülmeyen yere oyuncu gidince onu güvenli bir yere geldiği yöne doğru geri atmasıdır

use-faster-eigencraft-redstone Optimizeli: true Performans Etkisi: Yüksek

● Bu ayar gereksiz redstone işlemlerini 90% azaltmaktadır. eğer redstone ile ilgili bir eklenti kullanıyorsanız o eklenti yerine bunu değiştirmeyi deneyin

armor-stands-tick Optimizeli: false Performans Etkisi: Düşük

per-player-mob-spawns Optimizeli: true Performans Etkisi: Düşük

alt-item-despawn-rate Optimizeli: true Performans Etkisi: Orta

no-tick-view-distance Opt: # > server.properties dosyasında ''view-distance'' ayarınız ile aynı yapın. Performans Etkisi: Bilinmiyor

  • server.properties ve başlatma kodu (Örnek Konfigürasyon)

server.properties
başlatma kodu
server.properties

view-distance Varsayılan: 10 Optimizeli: 4-8 Performans Etkisi: Yüksek

● Görüş ayarını etkileyen bir ayardır, eğer sunucunuz bir survival sunucusu ve görüş mesafesi önemli ise 8 veya üstü olarak kullanın.

başlatma kodu

Timings bölümünde gözüken başlatma kodu hatasının çözülmüş hali aşşağıdadır

-Xmx = Maksimum ram miktarı -Xms = Minimum ram miktarı

Windows için:

@echo off
title www.keyubu.com
:start
echo Keyubu sunucusu aktif ediliyor...
java -Xmx(ram miktarı)G -Xms1M -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 -Duser.language=en -Duser.region=EN -Dfile.encoding=UTF-8 -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui
:: Buradan aşağısını, sunucunuzun stop edildiğinde tekrar başlatılmamasını istiyorsanız silebilirsiniz
echo Sunucu kapatildi. Yeniden aktif edilmesini istemiyorsaniz pencereyi kapatin
echo (10 saniye sonra aktif edilecek)
timeout 10 > nul
goto start

Linux için:

#!/bin/bash
while true ; do
echo ""
echo -e "\033[36m 3 saniye sonra baslayacak... \033[0m"
sleep 1
echo -e "\033[33m 2 saniye sonra baslayacak... \033[0m"
sleep 1
echo -e "\033[32m 1 saniye sonra baslayacak... \033[0m"
sleep 1
nice -n -10 java -Xms1M -Xmx(ram miktarı) -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui
done

Ekstra olarak neler yapabiliriz?

  1. Sunucunuzda çok fazla redstone sistemleri bulunuyorsa

  2. Sunucunuzda çok fazla chunk yüklemesi oluyorsa

  3. Sunucunuzda çok fazla mob doğuyorsa

  4. Sunucunuzda yerlere çok fazla item atılıyorsa

Bunları engellemek için birkaç plugin yükleyebilirsin!

Bu ayarları uyguladıktan sonra sunucunuzdaki Performans artışını kendiniz ve oyuncularınız farkedecektir. Başka bir sorununuz olursa discord sunucumuz üzerinden destek talebi açabilirsiniz!