%
ISTANBUL'a taşınmamıza özel Oyun Sunucularında %10 İNDİRİM (sadece yeni müşterilere özel)
Oyun Sunucuları

Minecraft Sunucu Lag Sorunu Nasıl Çözülür? TPS, MSPT ve spark Rehberi

TheCrewHost EkibiGüncellendi: 9 dk okuma

Kısa cevap

Minecraft sunucu lag sorununu çözmek için önce sorunun gerçekten sunucuda olduğunu doğrula: TPS 20'nin altına düşüyor ve MSPT 50 milisaniyeyi aşıyorsa ana thread aşırı yüklenmiştir; TPS 20'de kalıyorsa sorun ağ gecikmesinde ya da oyuncunun kendi bilgisayarındadır. Sorun sunucudaysa takılma yaşanırken spark profilleyiciyi çalıştır, rapordaki en büyük kalemi, genellikle entity'leri, farmları, chunk üretimini ya da bir eklentiyi düzelt; ardından dünyayı önceden oluştur, görüş ve simülasyon mesafesini ve Paper ayarlarını düzenle.

TPS, MSPT, FPS ve ping arasındaki fark nedir?

TPS, MSPT, FPS ve ping dört farklı şeyi ölçer ve bunları karıştırmak, lag çözümlerinin tutmamasının en yaygın nedenidir. Sunucu dünyayı tick'ler halinde simüle eder ve saniyede 20 tick hedefler; bu da her tick'e 50 milisaniyelik bir bütçe verir. MSPT (tick başına milisaniye), her tick'in bu bütçenin ne kadarını gerçekten kullandığını gösterir. FPS oyuncunun kendi bilgisayarının saniyede çizdiği kare sayısıdır; ping ise o oyuncu ile sunucu arasındaki gidiş dönüş süresidir.

İzlemen gereken asıl sayı MSPT'dir, çünkü TPS 20'de tavan yapar ve sınıra ne kadar yaklaştığını gizler. 20 TPS ve 45 MSPT ile çalışan bir sunucu kusursuz görünür ama birkaç oyuncu daha girdiğinde tökezler; 20 TPS ve 15 MSPT ile çalışan bir sunucunun ise bolca payı vardır. Paper'da mspt ve tps komutları son ortalamaları gösterir; vanilla 1.20.3 ve sonrasında tick query komutu ortalama tick süresini ve yüzdelik dilimleri raporlar.

ÖlçümNeyi ölçerSağlıklı değerKötüyse oyuncular ne yaşar
TPSSunucunun saniyede tamamladığı tick sayısıSabit 20Herkes aynı anda: yavaş moblar ve ekinler, geç kırılan bloklar, geri sekme
MSPTSunucunun her tick'e harcadığı milisaniye50'nin altı, tercihen epey altı50'yi geçene kadar hiçbir şey, sonra TPS düşmeye başlar
İstemci FPSOyuncunun kendi bilgisayarının çizdiği kare sayısıBilgisayara bağlıYalnızca o oyuncu takılır, tek oyunculu modda bile
PingOyuncu ile sunucu arasındaki ağ gidiş dönüş süresiDüşük ve sabitO oyuncunun vuruşları ve koyduğu bloklar geç işlenir ya da geri sıçrar

Sorun sunucuda mı, ağda mı, oyuncunun bilgisayarında mı?

Önce kimin takıldığını ve o anda TPS'in ne gösterdiğini kontrol et. Herkes aynı anda takılıyor ve TPS düşüyorsa sunucu aşırı yüklenmiştir. Diğerleri sorunsuzken yalnızca bir oyuncu şikâyet ediyorsa sorun o oyuncunun bağlantısında ya da bilgisayarındadır. Herkes takılıyor ama TPS 20'de ve MSPT düşükse ağ yoluna, proxy'ye ya da olası bir saldırıya bak. Konsol da ipucu verir: vanilla, tick'ler geride kaldığında Can't keep up! Is the server overloaded? uyarısını yazar; bu uyarı tekrar ediyorsa sorun yalnızca ağda değildir.

Aşağıdaki tablo en sık görülen belirtileri, olası nedenlerini, nedeni nasıl doğrulayacağını ve ilk yapman gerekeni özetler. Tek bir belirtiye bakıp ayar değiştirmeye başlamadan önce doğrulama sütunundaki kontrolü yap; yanlış teşhis, sorunu çözmeden oyuncuların sevdiği mekanikleri bozmanın en kısa yoludur.

BelirtiOlası nedenNasıl doğrularsınÇözüm
Herkes takılıyor, moblar donuyor, TPS 20'nin altındaAna thread aşırı yüklümspt 50'nin üstünde; spark profilispark raporundaki en büyük kalemi düzelt
Birkaç dakikada bir kısa donmaOtomatik kayıt, çöp toplama ya da zamanlanmış eklenti görevispark tickmonitor ve spark gcKayıtları yay, heap'i doğru boyutlandır, görevi yeniden planla
Yalnızca oyuncular keşif yaparken takılmaYeni chunk üretimiKeşfedilmiş bölgelerde sorun kaybolurChunky ile ön üretim yap, dünya sınırı koy
Tek bir üs ya da bölge çevresinde takılmaFarm, hopper zinciri, redstone saati ya da entity yığınıpaper entity list; spark profiliFarmı sınırla, entity ve hopper ayarlarını düzenle
Bir eklenti ekledikten sonra başlayan takılmaAna thread'de ağır iş yapan eklentiEklentiye göre gruplanmış spark raporuGüncelle, yeniden ayarla ya da değiştir
Bir oyuncu takılıyor, diğerleri sorunsuzO oyuncunun bağlantısı ya da bilgisayarıspark ping; F3 ekranındaki FPSKablolu bağlantı, düşük render mesafesi, istemci performans modları
Herkes takılıyor ama TPS 20'deAğ yolu, proxy ya da DDoSTüm oyuncuların pingi aynı anda sıçrarProxy'yi kontrol et, sağlayıcının desteğine başvur
OutOfMemoryError ile çökmeHeap küçük ya da bellek sızıntısı varspark health --memory; spark heapsummaryÖnce sızıntıyı bul, gerekirse RAM ekle

spark ile lag nedenini nasıl bulursun?

Kullanman gereken profilleyici spark'tır: sunucunun ne yaptığından örnekler alır ve tarayıcıda açtığın etkileşimli bir rapor yükler. Paper 1.21'den beri spark'ı dahili olarak getirir; Fabric, NeoForge ve Forge'da ise mod olarak eklersin. Takılma yaşanırken spark profiler start ile başlat, birkaç dakika bekle ve rapor bağlantısını almak için spark profiler stop yaz ya da beş dakika sonra kendiliğinden durması için komuta --timeout 300 ekle. Kısa ani takılmalar için --only-ticks-over 50 seçeneği yalnızca geç kalan tick'leri kaydeder.

Raporda Server thread'i aç ve en büyük yüzdeleri ağacın aşağısına doğru izle: genellikle entity işleme, hopper gibi blok entity'ler, chunk yükleme ve üretimi ya da bir eklentinin veya modun olay işleyicisiyle karşılaşırsın. spark sonuçları eklentiye ya da moda göre de gruplayabilir; bu da suçluyu doğrudan gösterir. Profilleyicinin yanında spark tps TPS ile tick sürelerini, spark health işlemci, bellek ve disk kullanımını gösterir; spark tickmonitor ani sıçramaları raporlar, spark gc ise çöp toplama duraklamalarını listeler.

Eski rehberler timings çalıştırmanı söyler; bu adımı atla. Paper, timings'i spark lehine kullanımdan kaldırdı (deprecated) ve 1.21'de varsayılan olarak kapattı; raporlarını okumak zaten zordu. Profili gerçek takılma sırasında al, gece dörtte boş bir sunucuda değil; aksi halde rapor sana yalnızca boşta bekleyen bir sunucu gösterir.

En çok lag yapan entity'ler, farmlar ve redstone düzenekleri hangileri?

Entity'ler lag sorunlarının en yaygın kaynağıdır, çünkü her mob, yere düşen eşya, maden arabası ve zırh askısı ana thread'de işlenir. Yüzlerce hayvan biriktiren mob farmları, demir ve altın farmları, yığınla yere düşmüş eşya ve köylü ticaret salonları listenin başındadır; köylüler özellikle pahalıdır, çünkü yapay zekâları sürekli yatak, meslek bloğu ve yol arar. Paper'da paper entity list komutu hangi entity türlerinin işlendiğini ve nerede yoğunlaştığını gösterir; böylece 800 tavuğun sıkıştığı o tek chunk'ı kolayca bulursun.

Hopper ve redstone hemen ardından gelir. Her hopper üstündeki alanı eşya ve konteyner için tekrar tekrar kontrol eder ve baktığı yöne aktarır; uzun hopper zincirleri ve hopper'lı maden arabaları hızla birikir, hiç durmayan redstone saatleri de sunucuyu blok güncellemelerine boğar. Bunları düzeltmek ayarlar kadar sunucu kurallarıyla da ilgilidir: farm başına hayvan sayısına sınır koy, uzun hopper hatları yerine mümkünse su akıntısı kullan, kimse yakınında değilken saatleri kapat ve griefer'ların bilerek kurduğu lag makinelerini yasakla. Geriye kalanı ayarlarla yumuşatırsın.

Chunk yükleme ve üretimi neden ani takılmalara yol açar?

Yeni arazi oluşturmak sunucunun yaptığı en pahalı işlerden biridir; bu yüzden en sert takılmaları yeni topraklarda keşif yapan oyuncular yaratır. Her yeni chunk için arazi, mağaralar, yapılar ve ışık hesaplanır; elytra, buz üzerinde tekne ya da ender incisiyle hızlı yolculuk saniyede çok sayıda chunk ister. Paper chunk sisteminin büyük kısmını yardımcı thread'lerde çalıştırır, ama üretim yine de işlemci için yarışır ve bellek kullanımını artırır; oyuncular keşfedilmiş bölgelere döndüğü anda da takılmalar kaybolur.

Kalıcı çözüm, sunucu boşken dünyayı Chunky ile önceden oluşturmak ve ardından oluşturulan alanın hemen içine bir dünya sınırı koymaktır; böylece oyun sırasında kimse yeni chunk üretemez. Paper'ın işe yarayan emniyet ayarları da var: chunks.prevent-moving-into-unloaded-chunks oyuncuların yüklenmemiş chunk'lara dalmasını engeller, global ayarlardaki player-max-chunk-generate-rate tek bir oyuncunun ne kadar hızlı üretim tetikleyebileceğini sınırlar, chunks.max-auto-save-chunks-per-tick de otomatik kayıtları yayarak hepsinin tek bir tick'e yığılmasını önler.

Lag sorununu azaltan Paper ayarları hangileri?

Paper'ın ayarları server.properties, bukkit.yml, spigot.yml ve config klasöründeki paper-world-defaults.yml ile paper-global.yml dosyalarına dağılmıştır; işin çoğunu ise bir avuç seçenek yapar. Her seferinde tek bir grubu değiştir, yeniden başlat ve öncesiyle sonrasının MSPT değerlerini karşılaştır; çünkü bu ayarların bir kısmı hız karşılığında vanilla davranışından biraz ödün verir ve hangi değişikliğin neye yol açtığını bilmen gerekir. Açık bir sunucuda ayarları yeniden yüklemek desteklenmez, yeniden başlatmayı tercih et.

Paper üzerine kurulu Purpur daha fazla seçenek ekler; örneğin ticaret salonunda hapsolmuş köylülerin yapay zekâsının büyük kısmını atlamasını sağlayabilir. Neyi değiştirirsen değiştir not al; böylece oyuncuların bel bağladığı bir farmı bozan ayarı kolayca geri alabilirsin.

AyarDosyaNe yaparBedeli
view-distance 7–8, simulation-distance 4–6server.propertiesHer oyuncunun çevresinde daha az chunk gönderilir ve işlenirOyuncudan uzaktaki farmlar ve moblar daha erken durur
spawn-limits ve ticks-perbukkit.ymlMob sınırlarını ve doğma denemelerinin sıklığını düşürürDünyada daha az mob olur
entity-activation-rangespigot.ymlOyunculardan uzaktaki entity'ler daha seyrek işlenirUzak mob farmları yavaşlar
merge-radiusspigot.ymlYakındaki eşyaları ve XP kürelerini birleştirirEşyalar görünür şekilde kümelenir
hopper-transfer ve hopper-checkspigot.ymlHopper'lar eşyayı daha seyrek taşır ve kontrol ederAyıklama sistemleri yavaşlar, bazı zamanlamalar bozulabilir
redstone-implementation: ALTERNATE_CURRENTpaper-world-defaults.ymlDaha az blok güncellemesiyle daha hızlı redstone tozuHassas bazı düzenekler farklı davranabilir
alt-item-despawn-ratepaper-world-defaults.ymlTaş, toprak gibi çöp eşyaları daha erken silerYere atılan çöp eşyalar daha çabuk kaybolur
optimize-explosions: truepaper-world-defaults.ymlDaha hızlı bir patlama hesabı kullanırVanilla'ya göre küçük farklar
treasure-maps.enabled: falsepaper-world-defaults.ymlUzak yapıları arayan hazine haritalarını kapatırOyuncular hazine ve kaşif haritası alamaz

Hangi eklentiler lag yapar, suçluyu nasıl bulursun?

Bir eklenti, ana thread'de ağır iş yaptığında sunucuyu yavaşlatır: bir veritabanını ya da web API'sini senkron olarak sorgulamak, her tick'te tüm entity'leri veya blokları taramak ya da skor tablosu ve tab listesini onlarca placeholder ile saniyede birkaç kez yenilemek gibi. spark'ın eklentiye göre gruplanmış görünümü suçluyu çoğu zaman doğrudan söyler. Söylemiyorsa sunucunun bir kopyasını al, eklentilerin yarısını kaldır, test et ve sorun tek bir eklentiye kalana kadar ikiye bölmeye devam et; reload komutu temiz bir test sağlamaz ve çoğu zaman bellek sızdırır.

Popüler bazı çözümler durumu kötüleştirir. Birkaç dakikada bir eşya silen lag temizleme eklentileri yalnızca belirtiyi bastırır ve oyuncuları kızdırır; Paper'ın merge-radius ve alt-item-despawn-rate ayarları aynı işi çok daha sessiz yapar. Mob yığma (stacker) eklentileri, sunucu mob sınırını doldurmak için sürekli yeni mob doğurmaya çalıştığından kendi yükünü yaratabilir; çalışırken başka eklentileri yükleyen ya da kaldıran eklentiler de sunucuyu bozmanın garantili yoludur. Eklentileri tam sürümüne uygun yapılarla güncel tut, kullanmadıklarını kaldır.

Ağ kaynaklı lag ve yüksek ping nasıl düzeltilir?

Ağ kaynaklı lag, TPS 20'de sabitken yüksek ya da zıplayan ping olarak kendini gösterir ve çözümü sunucu ayarlarında değil bağlantıdadır. En büyük etken mesafedir: oyuncularına yakın bir sunucu daha kısa bir gidiş dönüşle başlar; İstanbul'daki bir sunucunun Türkiye'deki oyunculara uygun olmasının nedeni budur. Ardından oyuncunun kendi kurulumu gelir; burada Wi-Fi paraziti ve paket kaybı ham bant genişliğinden daha önemlidir. Evde barındırılan sunucularda ise sunucu sahibinin yükleme hızı belirleyicidir.

Sunucu sağlıklıyken herkesin pingi aynı anda sıçrıyorsa ağ yolundan ya da bir saldırıdan şüphelen. TheCrewHost oyun sunucularında ücretsiz DDoS koruması sunar ve aynı durum tekrarlanıyorsa 7/24 Türkçe destek ekibi ağ tarafını kontrol edebilir. Kendi tarafında network-compression-threshold değerini, neden değiştirdiğini bilmiyorsan varsayılan 256'da bırak. Bir proxy kullanıyorsan proxy'nin kendi yükünü ve ping değerlerini de ayrıca kontrol et.

Optimize etmek yerine ne zaman yükseltme yapmalısın?

Temiz bir spark raporu, ana thread'in düzeltilebilir tek bir suçlu yerine gerçek oyun yüküyle meşgul olduğunu gösteriyorsa yükseltme zamanı gelmiştir. Makul entity sayıları, önceden oluşturulmuş bir dünya ve ayarlanmış mesafelere rağmen MSPT yüksek kalıyorsa işlemciye takılmışsındır; ihtiyacın daha fazla bellek değil, daha hızlı bir çekirdektir. Heap çöp toplamadan sonra bile sınırına yakın duruyorsa daha fazla RAM gerekir ya da önce düzeltilmesi gereken bir sızıntı vardır. Çok büyük topluluklar zamanla oyuncuları bir Velocity proxy'si arkasındaki birkaç sunucuya böler ya da eklentileri destekliyorsa Folia'ya geçer.

TheCrewHost'ta tüm Minecraft paketleri aynı AMD Ryzen 9 9950X işlemcilerde çalışır ve istediğin an daha üst bir pakete geçebilirsin; büyük paketler daha fazla bellek, en üst paketler de daha fazla vCore ekler. Bu, Paper'ın yardımcı thread'lerine yarar ama ana thread'in hızı aynı kalır. Önce optimize etmenin değerli olmasının nedeni tam olarak budur: en hızlı tick, daha az iş yapması gereken tick'tir.

Minecraft sunucu lag sorununu 8 adımda çöz

  1. 1

    Önce ölç

    Takılma sırasında Paper'da mspt ve tps, vanilla'da tick query komutunu çalıştır ve sonradan karşılaştırmak için değerleri not al.

  2. 2

    Ağı ve istemciyi kontrol et

    Herkesin mi yoksa tek bir oyuncunun mu takıldığına bak ve herhangi bir ayara dokunmadan önce spark ping ile gecikmeleri karşılaştır.

  3. 3

    spark ile profil al

    Gerçek takılma sırasında spark profiler start çalıştır, birkaç dakika sonra spark profiler stop ile durdur ve rapor bağlantısını aç.

  4. 4

    En büyük suçluyu düzelt

    Server thread'deki en büyük payı bir farma, entity yığınına, chunk üretimine ya da bir eklentiye kadar izle ve önce onunla ilgilen.

  5. 5

    Dünyayı önceden oluştur

    Sunucu boşken oynanabilir alanı Chunky ile oluştur, ardından bu alanın hemen içine bir dünya sınırı koy.

  6. 6

    Mesafeleri ve ayarları düzenle

    Görüş ve simülasyon mesafesini düşür, ardından spigot.yml ve Paper dünya ayarlarındaki entity, hopper ve redstone seçeneklerini gruplar halinde ayarla.

  7. 7

    Eklentileri temizle

    Her şeyi tam sürümüne uygun yapılara güncelle, kullanılmayan eklentileri kaldır ve spark'ın ana thread'i tıkadığını gösterdiklerini değiştir.

  8. 8

    Yeniden ölç ve karar ver

    Yoğun saatteki MSPT değerini ilk ölçümünle karşılaştır; rapor temiz olduğu halde hâlâ yüksekse donanımı yükselt.

Sık Sorulan Sorular

Bol RAM olmasına rağmen sunucum neden takılıyor?

Çünkü takılmaların çoğunun kaynağı bellek değil, işlemci süresidir. Ana thread her tick'i 50 milisaniye içinde bitirmek zorundadır; çok fazla entity, hopper, redstone ya da chunk üretimi, ne kadar RAM boşta olursa olsun bu süreyi aşabilir. spark, heap çöp toplamadan sonra sınırının epey altındayken yüksek MSPT gösteriyorsa bellek eklemek işe yaramaz; tick başına işi azaltmak ya da daha hızlı bir çekirdeğe geçmek işe yarar.

Minecraft sunucusu için iyi bir MSPT değeri nedir?

50 milisaniyenin altındaki her değer sunucuyu tam 20 TPS'te tutar, ama yoğun saatte bunun epey altında kalmayı hedefle; böylece bir grup kâşif ya da büyük bir redstone yapısı için pay kalır. Otomatik kayıt sırasında olduğu gibi tek tük ani sıçramalar normaldir. 50'ye yakın seyreden sürekli değerler, sunucunun sınırda olduğunu ve birkaç oyuncu daha girdiğinde TPS'in düşeceğini gösterir.

Konsoldaki Can't keep up uyarısı ne anlama gelir?

Sunucunun programın gerisinde kaldığını gösterir: tick'ler 50 milisaniyeden uzun sürmüştür ve mesaj kaç milisaniye ya da kaç tick geride olduğunu belirtir. Açılıştan ya da büyük bir dünya kaydından sonra görülen tek bir mesaj zararsızdır. Normal oyun sırasında tekrarlanan mesajlar ana thread'in aşırı yüklendiğini gösterir; sorun yaşanırken spark ile profil al. Nadir tek bir mesaj, çöp toplama gibi kısa bir duraklamadan da kaynaklanabilir.

Paper gerçekten vanilla sunucudan daha az lag yapar mı?

Çoğu sunucu için evet. Paper chunk yükleme ve üretiminin büyük kısmını ana thread'den alır, vanilla kodundaki birçok performans sorununu düzeltir ve vanilla'da olmayan entity, hopper, redstone ve doğma ayarları sunar. Aynı dünyaları çalıştırır ve varsayılan olarak vanilla oynanışını korur; istisna, yeniden açılabilen TNT kopyalama gibi birkaç açık düzeltmesidir. Birebir vanilla mekaniklerine güvenen teknik oyuncular farmlarını önce bir kopyada test etmelidir.

Lag temizleme eklentisi kurmalı mıyım?

İlk adım olarak genellikle hayır. Eşyaları ya da mobları belli aralıklarla silen eklentiler sorunun nedenini gizler ve eşyasını kaybeden oyuncuları kızdırır. Önce gerçek kaynağı spark ile bul; sorun yere düşen eşyalarsa Paper'ın merge-radius ve alt-item-despawn-rate ayarları bunu daha az rahatsız edici biçimde çözer, entity ağırlıklı farmlar ise sınırlar ve sunucu kurallarıyla daha iyi yönetilir.

Fabric ya da NeoForge modlu sunucuda lag nasıl çözülür?

Yöntem aynıdır: MSPT'yi ölç, ardından Fabric, NeoForge ve Forge'da çalışan ve sonuçları moda göre gruplayabilen spark moduyla profil al. Modlu sunucularda takılmalar genellikle büyük otomatik fabrikalardan, ağır dünya üretimi yapan modlardan ya da alanları sürekli işlenir halde tutan chunk loader'lardan gelir. Chunky ile ön üretim burada da aynı ölçüde yardımcı olur; Fabric'teki Lithium gibi sunucu tarafı optimizasyon modları da oynanışı değiştirmeden tick süresini düşürebilir.

Folia büyük bir sunucudaki lag sorununu çözer mi?

Yalnızca belirli bir durumda. Folia dünyanın ayrı bölgelerini paralel işler; bu yüzden oyuncuların birbirinden çok uzakta oynadığı, çok çekirdekli makinelerdeki çok büyük sunuculara yardımcı olur ve geliştiricileri ideal olarak en az 16 fiziksel çekirdek ister. Bukkit eklentilerinin çoğu, Folia desteği açıkça belirtilmedikçe yüklenmez; aynı yerde toplanan oyuncular da yine tek bir bölgeyi paylaşır. Çoğu topluluk için iyi ayarlanmış bir Paper ya da Purpur sunucusu daha doğru seçimdir.

Oyuncu ve geliştirici topluluğumuzla bağlantı kurun

Anında destek alın, deneyimlerinizi paylaşın ve en son haberlerden haberdar olun

Join Discord