Minecraft Sunucu Lag Sorunu: TPS Düşüşü Nasıl Çözülür?

Minecraft sunucusunda lag ve TPS düşüşünün nedenleri ve çözümleri: spark ile teşhis, view-distance, Chunky ile pre-generation, Paper ayarları ve donanım.

Minecraft sunucusundaki lag'ın çoğu, sunucunun bir tick'i 50 milisaniyeden uzun sürede hesaplamasından kaynaklanır; bu durumda TPS 20'nin altına düşer. En sık nedenler aşırı varlık (mob, eşya), yeni chunk üretimi, yüksek görüş mesafesi, verimsiz eklentiler ve yavaş işlemcidir. Doğru çözüm için önce spark ile ölçüm yapıp sorunun kaynağını bulmanız, sonra ayar veya donanım değişikliğine gitmeniz gerekir.

Bu rehberde lag türlerini birbirinden ayırmayı, spark ile teşhisi ve en etkili Paper ayarlarını sırasıyla anlatıyoruz.

Önce lag'ın türünü belirleyin

"Sunucu kasıyor" şikâyeti üç farklı soruna işaret edebilir:

BelirtiMuhtemel kaynakNereye bakmalı?
Bloklar geri geliyor, moblar ışınlanıyor, herkes aynı anda takılıyorSunucu lag'ı (düşük TPS)spark, TPS ve MSPT değerleri
Yalnızca bazı oyuncular takılıyor, ping yüksekAğ gecikmesiOyuncunun interneti, sunucuya mesafe, saldırı
Sunucu akıcı ama oyuncunun ekranı düşük FPSİstemci lag'ıOyuncunun bilgisayarı, görüntü ayarları

/tps komutu (Paper'da yerleşik) son 1, 5 ve 15 dakikanın ortalama TPS'ini gösterir. 19,5-20 arası sağlıklıdır. TPS normal görünürken herkes takılıyorsa sorun ağdadır; ani ve herkesi etkileyen bağlantı kopmaları DDoS saldırısının işareti olabilir. Bu konuyu DDoS saldırısı nedir rehberimizde anlattık.

TPS ve MSPT'yi anlamak

  • TPS (ticks per second): Saniyede tamamlanan tick sayısı. En fazla 20'dir.
  • MSPT (milliseconds per tick): Bir tick'in kaç milisaniye sürdüğü. 50 ms'nin altı 20 TPS demektir.

MSPT, TPS'ten daha iyi bir erken uyarı göstergesidir. TPS 20 görünürken MSPT 45 ms ise sunucunuz sınırdadır ve birkaç oyuncu daha girdiğinde TPS düşmeye başlar. MSPT'nin 30 ms altında kalması rahat bir sunucu demektir.

spark ile sorunun kaynağını bulun

spark, sunucunun zamanını neye harcadığını gösteren bir profil aracıdır. Paper'ın güncel sürümlerinde yerleşik gelir; eski sürümlerde veya Forge/Fabric'te ayrı olarak kurabilirsiniz.

  1. Lag'ın yaşandığı saatte /spark profiler start komutunu çalıştırın.
  2. Lag'ı yakalamak için birkaç dakika bekleyin (en az 2-5 dakika).
  3. /spark profiler stop yazın; spark size bir web bağlantısı verir.
  4. Açılan raporda "Server thread" altındaki ağacı genişletin. Yüzdesi en yüksek dallar sorunun kaynağıdır.

Raporda sık karşılaşılan durumlar:

  • Bir eklentinin adı yüksek yüzdeyle görünüyorsa sorun o eklentidir; güncelleyin, ayarlarını kontrol edin ya da alternatifini deneyin.
  • Entity tick (varlık işleme) ağırsa çok fazla mob veya eşya vardır.
  • Chunk generation ağırsa oyuncular sürekli yeni bölge keşfediyordur.
  • Hopper veya redstone ağırsa büyük otomatik çiftlikler yük oluşturuyordur.

Ek olarak /spark health bellek, işlemci ve disk durumunu; /spark tickmonitor ise uzun süren tick'leri anlık olarak gösterir.

En etkili çözümler

Görüş ve simülasyon mesafesini düşürün

server.properties içinde view-distance oyunculara gönderilen chunk mesafesini, simulation-distance ise mob, bitki ve kızıltaşın işlendiği mesafeyi belirler. Simülasyon mesafesi işlemci yükünü doğrudan etkiler. Çoğu sunucu için view-distance=8 ile 10 ve simulation-distance=5 ile 7 arası iyi bir dengedir. Paper ayrıca uzak chunk'ları yalnızca görüntü olarak gönderen ayrı bir gönderim mesafesi ayarı sunar; böylece oyuncular uzağı görürken sunucu o bölgeyi işlemez.

Haritayı önceden oluşturun (pre-generation)

Yeni chunk üretmek, Minecraft'ın en pahalı işlerinden biridir. Elytra ile uçan birkaç oyuncu, sunucuyu tek başına diz çöktürebilir. Çözüm:

  1. Bir dünya sınırı belirleyin: /worldborder set 10000 (merkezden her yöne 5.000 blok).
  2. Chunky eklentisini kurun ve sırayla /chunky radius 5000 ile /chunky start komutlarını çalıştırın.
  3. Üretim bitene kadar (haritanın boyutuna göre saatler sürebilir) sunucuyu az oyunculu saatlerde çalıştırın.

Önceden oluşturulmuş harita disk alanı kullanır; NVMe disk burada hem üretim süresini kısaltır hem de oyun sırasında chunk okuma takılmalarını azaltır.

Varlıkları kontrol altına alın

  • spigot.yml içindeki entity-activation-range değerleri, oyuncuya uzak varlıkların ne sıklıkla işleneceğini belirler. Değerleri biraz düşürmek gözle görülür fark yaratır.
  • bukkit.yml içindeki spawn-limits ile bölge başına doğan mob sayısını azaltabilirsiniz.
  • Paper'ın config/paper-world-defaults.yml dosyasında yerdeki eşyaların birleşme yarıçapı, varlık çarpışma sınırı ve belirli varlık türleri için sayı sınırları gibi ayarlar bulunur.
  • Oyuncu çiftliklerine (özellikle yüzlerce hayvanlı çiftlikler) sunucu kurallarıyla sınır koyun.

Hopper ve kızıltaş yükünü azaltın

Büyük sıralama sistemleri ve sürekli çalışan kızıltaş saatleri MSPT'yi yükseltir. Paper'da hopper davranışıyla ilgili optimizasyon ayarları vardır; ancak bazıları oyun mekaniğini değiştirebilir. Değişiklik yapmadan önce topluluğunuzun teknik çiftliklere ne kadar bağlı olduğunu düşünün.

Eklentileri gözden geçirin

  • Her eklentiyi en güncel sürümde tutun.
  • Aynı işi yapan iki eklentiyi birlikte kullanmayın.
  • Her tick'te çalışan "scoreboard", "hologram" ve "tab listesi" eklentilerinin güncelleme aralıklarını uzatın.
  • Kaydı veritabanına yazan eklentilerde (ör. log eklentileri) veritabanının aynı sunucuda ve hızlı diskte olduğundan emin olun.

Java ve sunucu yazılımı

Vanilla veya Spigot kullanıyorsanız Paper'a (veya onun üzerine kurulu Purpur'a) geçmek, tek başına en büyük iyileştirmelerden biridir. Başlatma komutunda Aikar flags kullanmak çöp toplama kaynaklı periyodik donmaları azaltır; ayrıntıları RAM rehberimizde bulabilirsiniz.

Donanım ne zaman sorundur?

Tüm ayarları yaptınız, spark belirgin bir suçlu göstermiyor ama MSPT hâlâ yüksekse işlemciniz iş yükünüze yetmiyor olabilir. Minecraft'ın ana döngüsü tek çekirdeğe bağlı olduğu için burada çekirdek sayısını artırmak değil, tek çekirdek performansı daha yüksek bir işlemciye geçmek işe yarar.

Donanım kaynaklı sorunların diğer işaretleri:

  • Disk kaynaklı: Dünya kaydedilirken (autosave) her birkaç dakikada bir takılma. NVMe olmayan disklerde sık görülür.
  • Bellek kaynaklı: /spark health sürekli dolu bellek ve sık GC gösteriyor.
  • Paylaşılan kaynak kaynaklı: Aynı ayarlarla gün içinde farklı saatlerde çok farklı performans; aşırı paylaştırılmış sunucularda görülür.

Oculeth Minecraft sunucularında yüksek tek çekirdek frekansı isteyen sunucular için AMD Ryzen 9 9950X seçeneği ve NVMe disk bulunur; mevcut paketinizi verileriniz korunarak yükseltebilirsiniz. Hangi işlemcinin hangi iş için uygun olduğunu Ryzen mi Intel mi yazımızda karşılaştırdık.

Lag'ı önlemek için düzenli bakım

Sorunu çözdükten sonra tekrar etmemesi için birkaç alışkanlık edinin:

  • Haftalık spark kontrolü: Yoğun saatte kısa bir profil alıp yeni bir eklentinin veya çiftliğin yük oluşturup oluşturmadığına bakın.
  • Eklenti güncellemelerini toplu ve kontrollü yapın: Her güncellemeden sonra MSPT'yi izleyin; sorun çıkarsa hangi değişikliğin neden olduğunu kolayca bulursunuz.
  • Planlı yeniden başlatma: Günde bir kez, az oyunculu bir saatte yeniden başlatma birikmiş yükü temizler.
  • Oyuncu kuralları: Çiftlik büyüklüğü ve kızıltaş saatleri için açık kurallar koymak, teknik ayarlardan çoğu zaman daha etkilidir.

Hızlı kontrol listesi

  1. /tps ve /mspt ile durumu ölçün.
  2. Lag anında 3-5 dakikalık spark profili alın.
  3. view-distance ve simulation-distance değerlerini makul seviyeye çekin.
  4. Dünya sınırı koyup haritayı Chunky ile önceden oluşturun.
  5. Varlık sınırlarını ve activation range değerlerini ayarlayın.
  6. Sorunlu eklentiyi güncelleyin veya değiştirin.
  7. Paper/Purpur ve Aikar flags kullandığınızdan emin olun.
  8. Hâlâ yetmiyorsa daha hızlı işlemciye veya daha fazla kaynağa geçin.

Sık sorulan sorular

Minecraft sunucusunda TPS kaç olmalı?

İdeal değer 20'dir ve 19,5 üzeri sağlıklı kabul edilir. 18'in altında oyuncular blok gecikmesi ve mob ışınlanması gibi belirtileri fark etmeye başlar; 15'in altı ciddi lag demektir.

RAM artırmak lag'ı çözer mi?

Yalnızca sorun bellek yetersizliğiyse çözer. Lag'ın çoğu işlemci kaynaklıdır; spark raporu bellek sorununu göstermiyorsa RAM eklemek fark yaratmaz. Önce spark ile ölçüm yapın.

spark raporunu nasıl okumalıyım?

Server thread altındaki ağacı en yüksek yüzdeli dallardan başlayarak açın. Bir eklenti adı öne çıkıyorsa sorun odur; entity tick, chunk generation veya hopper gibi başlıklar öne çıkıyorsa ilgili oyun mekaniğine yönelik ayar yapmanız gerekir.

Oyuncular uçarken sunucu neden çok kasıyor?

Elytra ile hızlı uçuş, sürekli yeni chunk üretimine yol açar ve bu çok işlemci gücü ister. Dünya sınırı koyup haritayı Chunky ile önceden oluşturmak bu sorunu büyük ölçüde ortadan kaldırır.

Sadece bir oyuncu lag yaşıyorsa sorun sunucuda mı?

Büyük ihtimalle hayır. TPS normalse ve diğer oyuncular sorun yaşamıyorsa neden oyuncunun internet bağlantısı veya bilgisayarıdır. Oyuncunun ping değerine ve oyun içi FPS'ine bakarak ayırt edebilirsiniz.