Ekran Kartlı Sunucu Satışları Başladı. İncele
Performans ve Optimizasyon

Minecraft TPS Düşüklüğü ve Çözüm Yolları

TPS nedir, neden 20’nin altına düşer? Entity yığılması, redstone, hopper, chunk yükleme ve eklenti kaynaklı TPS düşüşlerinin çözümü.

  • 8 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • TPS (tick per second) sunucunun saniyede kaç tick üretebildiğidir. Üst sınır 20’dir; tick 50 ms’i aşarsa TPS düşer.
  • En yaygın dört sebep: entity yığılması, hopper ve redstone zincirleri, kontrolsüz chunk üretimi ve tek bir ağır eklenti.
  • TPS’i yükseltmenin ilk adımı config değiştirmek değil, /spark profiler ile hangi görevin tick’i yediğini ölçmektir.
  • Tek çekirdek hızı düşük bir işlemcide hiçbir ayar TPS’i kurtarmaz; Ryzen 9 sınıfı donanım tabandır.

Minecraft TPS düşüklüğü, sunucunun bir tick’i 50 milisaniyeden uzun sürede tamamlaması sonucu ortaya çıkar ve oyuncular tarafından blokların geç kırılması, mob’ların kayarak hareket etmesi, item’ların geç düşmesi olarak hissedilir. Çözüm, TPS’i doğrudan “yükseltmeye” çalışmak değil, tick içinde yapılan pahalı işi bulup azaltmaktır.

Bu sayfada TPS’in ne olduğunu, hangi değerin gerçekten anlamlı olduğunu ve sunucunuzu yavaşlatan sebepleri sıklık sırasına göre ele alıyoruz. Her sebep için doğrudan uygulanabilir config satırları ve komutlar veriyoruz.

TPS ve MSPT Arasındaki Fark#

Minecraft sunucusu saniyede 20 kez tick çalıştırmayı hedefler. Bir tick içinde oyuncu hareketleri işlenir, entity’lerin yapay zekâsı çalıştırılır, blok güncellemeleri uygulanır, redstone hesaplanır ve eklentilerin zamanlanmış görevleri yürütülür. Tüm bunlar için ayrılan bütçe 50 milisaniyedir.

MSPT (milliseconds per tick) bu bütçenin ne kadarını kullandığınızı gösterir. TPS ise bütçeyi aştığınızda düşmeye başlar. Yani MSPT bir “erken uyarı” metriğidir, TPS ise hasar oluştuktan sonraki sonuçtur.

Ortalama MSPTGörünen TPSOyuncu deneyimi
15 ms20.0Akıcı, büyümeye yer var
35 ms20.0Akıcı ama kalabalıkta riskli
48 ms20.0Sınırda, ani yükte kopar
65 ms15.4Belirgin gecikme
100 ms10.0Oynanamaz
MSPT ve TPS ilişkisi
İpucuTPS 20 gösteren bir sunucuda bile MSPT 45 ms ise sorun vardır. Tek bir TNT patlaması veya 10 kişilik bir baskın etkinliği o sunucuyu anında 12 TPS’e düşürür.

Ölçüm: Sorunu Görmeden Ayar Değiştirmeyin#

TPS düşüklüğünün en yaygın çözüm hatası, internette bulunan bir config dosyasını kopyalayıp yapıştırmaktır. Bu yöntemle gerçek darboğazı bulma ihtimaliniz düşüktür ve sunucunuzda oyun deneyimini bozan onlarca gereksiz ayar birikir.

Doğru sıra ölçmekle başlar. spark profiler, Paper, Purpur, Fabric, NeoForge ve Forge için ayrı yapılar sunar; sunucunuzun türüne uygun olanı indirip plugins veya mods klasörüne koyun.

İndirmeniz gerekenler
  • spark profilerÖnerilen Paper / Fabric / Forge / Velocity.jarÜcretsiz
    İndir
  • Paper 26.2 sunucu jar Her platform.jar
    İndir

Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.

Kurulumdan sonra sunucu en yoğun olduğu anda profil alın; boş sunucuda alınan profil işe yaramaz.

spark health
spark tps
spark profiler --timeout 300 --thread server

Beş dakika sonunda konsola bir bağlantı düşer. Bu bağlantıdaki çağrı ağacında hangi metodun ne kadar zaman aldığını yüzde olarak görürsünüz. Raporu yorumlamayı spark rapor okuma rehberinde ayrıntılı anlatıyoruz.

Sebep 1: Entity Yığılması#

Uzun süredir açık olan sunucularda TPS düşüklüğünün birinci sebebi entity sayısıdır. Yere atılmış itemler, oyuncuların unuttuğu hayvan çiftlikleri, mob grinder’lar, minecart’lar, armor stand’ler ve boat’lar birikir. Her biri tick başına işlem ister.

Önce durumu görün:

spark tickmonitor
minecraft:data get entity @e limit=1
paper mobcaps
paper entity list

paper entity list komutu dünya bazında hangi entity türünden kaç adet olduğunu ve nerede yoğunlaştığını verir. Tek bir chunk’ta yüzlerce item veya mob görüyorsanız kaynak bulunmuş demektir.

Kalıcı çözüm: spigot.yml ayarları#

world-settings:
  default:
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 40
      misc: 8
      water: 8
      villagers: 16
    merge-radius:
      item: 3.5
      exp: 4.0
    max-entity-collisions: 2
    item-despawn-rate: 4000
    arrow-despawn-rate: 300
    nerf-spawner-mobs: true

entity-activation-range, bir entity’nin oyuncudan hangi mesafeye kadar aktif tick alacağını belirler. Bu değerleri düşürmek uzaktaki mob’ların yapay zekâsını uyutur ve genellikle en hızlı hissedilen TPS kazancını sağlar.

merge-radius yere düşen itemleri birleştirerek entity sayısını azaltır. Item değerini 3.5’in üstüne çıkarmayın, oyuncular item toplarken tuhaf davranışlar fark eder.

Dikkatnerf-spawner-mobs: true spawner’dan çıkan mob’ların yapay zekâsını kapatır ve XP çiftliklerinin verimini değiştirir. Survival ekonomisi mob grinder’lara dayanıyorsa oyuncularınıza önceden duyurun.

Global mob limitleri#

spawn-limits:
  monsters: 40
  animals: 8
  water-animals: 3
  water-ambient: 2
  ambient: 1
ticks-per:
  animal-spawns: 400
  monster-spawns: 4
  autosave: 6000

Bu değerler bukkit.yml dosyasına yazılır ve oyuncu başına düşen mob sayısını sınırlar. Varsayılan monsters değeri 70’tir; 40’a çekmek oyun hissini bozmadan ciddi yük azaltır.

Sebep 2: Hopper, Redstone ve Otomatik Sistemler#

Hopper’lar her tick’te üstlerindeki envanteri kontrol eder. 200 hopper’lık bir depolama sisteminde bu, saniyede 4000 envanter taraması demektir. Redstone saat devreleri de aynı şekilde sürekli blok güncellemesi üretir.

world-settings:
  default:
    hopper:
      cooldown-when-full: true
      disable-move-event: false
    ticks-per:
      hopper-transfer: 8
      hopper-check: 8

hopper-transfer ve hopper-check değerlerini 8’e çıkarmak, hopper’ların kontrol sıklığını yarıya indirir. Item taşıma hızı yavaşlar ama oyuncuların çoğu farkı hissetmez. cooldown-when-full: true dolu hopper’ların boşuna kontrol yapmasını engeller.

Redstone tarafında Paper’ın alternatif redstone motoru belirgin kazanç sağlar:

misc:
  redstone-implementation: ALTERNATE_CURRENT
İpucuSürekli çalışan redstone saatleri kural olarak yasaklanabilir. Oyunculara “etkin olmadığınızda çiftliğinizi kapatın” kuralı koyup lever kullanımını teşvik etmek, hiçbir config ayarının sağlayamayacağı kadar yük azaltır.

Sebep 3: Kontrolsüz Chunk Üretimi#

Yeni chunk üretmek, tek bir tick içinde yapılabilecek en pahalı işlerden biridir. Bir oyuncu at ya da elytra ile keşfe çıktığında MSPT anında ikiye katlanabilir. Birkaç oyuncu aynı anda keşfe çıkarsa TPS 10’un altına iner.

Kalıcı çözüm dünyayı önceden üretmek ve sınırlamaktır:

  1. Dünya sınırını koyun#

    worldborder center 0 0
    worldborder set 20000
    worldborder warning distance 100
  2. Chunk’ları oyuncular yokken üretin#

    Chunky eklentisiyle sınır içindeki alanı üretin. Saatler sürebilir, gece çalıştırın.

    chunky world world
    chunky radius 10000
    chunky start
  3. Nether ve End için tekrarlayın#

    Nether’da bir blok 8 bloğa karşılık geldiği için 20.000’lik overworld sınırına 2.500 blok yarıçap yeter.

Chunk yükleme ayarlarını da gözden geçirin. server.properties içinde:

view-distance=8
simulation-distance=6
sync-chunk-writes=false

Bu iki değerin performansa etkisi ve sunucu türüne göre ideal aralıkları için view distance ve simulation distance rehberine bakın.

Sebep 4: Ağır veya Kötü Yazılmış Eklentiler#

Eklenti sayısı tek başına bir gösterge değildir. 40 hafif eklentili sunucu sorunsuz çalışırken, tek bir arazi koruma veya ekonomi eklentisi tick süresinin yarısını yiyebilir. Ayırt etmenin yolu profil almaktan geçer.

spark raporunda dikkat edeceğiniz kalıplar:

Ana iş parçacığında veritabanı#

MySQL sorgusu tick içinde çalışıyorsa her ağ gecikmesi doğrudan MSPT’ye eklenir. Eklentinin asenkron modu varsa açın.

Sürekli oyuncu döngüsü#

Her tick tüm oyuncuları dolaşan scoreboard ve hologram eklentileri kalabalıkta pahalıya patlar. Güncelleme aralığını saniyeye çıkarın.

Geniş bölge taraması#

Her blok kırılışında tüm bölge listesini tarayan koruma eklentileri yerine indeksli çalışan alternatifleri seçin.

Senkron dosya yazımı#

Log ve istatistik eklentileri diske tick içinde yazıyorsa I/O gecikmesi tick’e yansır.

Şüphelendiğiniz eklentiyi test sunucusunda kaldırıp aynı yük altında ölçümü tekrarlayın. Üretim sunucusunda deneme yapmayın. Alternatif ararken 2026 eklenti listemizden yararlanabilirsiniz.

Sebep 5: Çöp Toplayıcı Duraklamaları#

TPS grafiğinde düzenli aralıklarla tekrarlayan keskin düşüşler görüyorsanız sebep büyük ihtimalle çöp toplayıcıdır. Heap doluyken yapılan bir toplama işlemi 200-500 ms sürebilir ve bu süre boyunca tick ilerlemez.

İlk kontrol: Xms ve Xmx eşit mi, heap yeterli mi?

Paket RAMHeapÖnerilen GC
8 GB-Xms6G -Xmx6GG1GC + Aikar’s Flags
12 GB-Xms10G -Xmx10GG1GC + Aikar’s Flags
16 GB-Xms14G -Xmx14GG1GC veya ZGC
32 GB-Xms28G -Xmx28GZGC değerlendirilebilir
Heap boyutuna göre çöp toplayıcı tercihi
DikkatJava 25’te G1 hâlâ JVM’in varsayılan çöp toplayıcısıdır. 26.1 changelog’undaki ZGC değişikliği oyun istemcisini ilgilendirir, sunucuyu değil. Aikar’s Flags 26.x sunucularında geçerliliğini korur. Ayrıca -XX:+ZGenerational bayrağı Java 25’te obsolete’tir, kullanmayın.

Bayrakların tamamı ve hangi durumda hangisinin seçileceği RAM ve JVM flag rehberinde. Sunucunuz sürekli bellek hatası veriyorsa OutOfMemoryError çözüm sayfasına geçin.

Sebep 6: Donanım Yetersizliği#

Yukarıdaki beş sebebi de elediyseniz ve spark raporunda zamanın büyük kısmı vanilla oyun mantığında geçiyorsa (entity tick, block tick, chunk tick), sorun yazılımda değil donanımdadır.

Minecraft’ın ana tick döngüsü tek çekirdekte çalışır. Bu yüzden 32 çekirdekli düşük frekanslı bir sunucu işlemcisi, 12 çekirdekli yüksek frekanslı bir Ryzen 9’un yanında yavaş kalır. Doğru hedef:

İşlemci
AMD Ryzen 9 7900X / 7950X, alt sınır Ryzen 9 3900X
RAM
En az 8 GB; 30+ oyuncuda 16 GB, modpackte 16-32 GB
Disk
NVMe SSD, en az 50 GB (modluda 100 GB üzeri)
Sanallaştırma
Ayrılmış vCPU; paylaşımlı kaynakta steal time TPS’i düşürür

Bileşen seçimini ayrıntılı ele aldığımız donanım rehberi ve oyuncu sayısına göre RAM tablosu karar vermenizi kolaylaştırır. Yüksek frekanslı platform arıyorsanız Ryzen tabanlı yüksek CPU VDS paketleri Minecraft için özellikle uygundur.

Hızlı Müdahale Sırası#

TPS şu anda düşükse ve hızlı bir toparlanma gerekiyorsa şu sırayı izleyin:

  1. Anlık durumu görün#

    spark health
    paper entity list
  2. Birikmiş item ve entity’yi temizleyin#

    Oyunculara duyurarak yere düşmüş itemleri temizleyin. Bu, dakikalar içinde ölçülebilir kazanç sağlar.

    say 60 saniye icinde yerdeki itemler temizlenecek.
    minecraft:kill @e[type=item]
  3. view-distance ve simulation-distance düşürün#

    Geçici olarak 6 / 4 değerlerine inip TPS’in toparlanıp toparlanmadığına bakın.

  4. Profil alın#

    Sunucu hâlâ yükteyken beş dakikalık spark profili alın ve raporu saklayın.

  5. Planlı yeniden başlatma yapın#

    Ölçüm sonrası sunucuyu düzgün kapatın; birikmiş yük sıfırlanır.

    save-all
    stop
Uyarıkill @e[type=item] komutu yerdeki tüm itemleri siler ve geri alınamaz. Oyuncuların ölüm sonrası eşyalarını da yok edebilir. Mutlaka önceden duyurun ve güncel bir yedeğiniz olduğundan emin olun.

Sürekli İzleme Kurun#

TPS düşüklüğünü bir kez çözmek yetmez; yük büyüdükçe geri gelir. Kalıcı çözüm ölçümü rutine bağlamaktır.

  • Haftada bir yoğun saatte spark profili alıp önceki raporla karşılaştırın.
  • Konsol loglarında Can’t keep up! Is the server overloaded? uyarısının sıklığını takip edin. Bu uyarının anlamı ve çözümü için ilgili hata sayfasına bakın.
  • Oyuncu sayısı arttıkça MSPT’nin nasıl değiştiğini not edin; doğrusal artış normaldir, hızlanan artış doyum işaretidir.
  • Yeni eklenti kurmadan önce ve kurduktan sonra ölçüm alın.

Genel optimizasyon stratejisinin tamamı için Minecraft sunucu optimizasyonu ana rehberimizi, config dosyalarının satır satır açıklaması için paper.yml optimizasyon sayfasını inceleyin.

Özetle#

TPS düşüklüğü bir hata değil, sunucunun 50 milisaniyelik tick bütçesini aşmasının sonucudur. Çözümü de bütçeyi aşan işi bulup kesmekten geçer.

Sırayla: MSPT’yi ölçün, entity yığılmasını temizleyip activation range ile sınırlayın, hopper ve redstone yükünü azaltın, dünyayı önceden üretip sınırlayın, eklentileri profille denetleyin, heap ve GC ayarlarını düzeltin. Bunların hepsini yaptığınız hâlde MSPT 40 ms’in altına inmiyorsa artık ayar değil daha yüksek tek çekirdek performansına sahip donanım gerekiyor demektir.

Sıkça Sorulan Sorular#

Minecraft TPS nedir?

TPS, sunucunun bir saniyede tamamladığı tick sayısıdır ve maksimum değeri 20’dir. Her tick’e 50 milisaniyelik bir bütçe ayrılır; sunucu bu sürede oyuncuları, entity’leri, blok güncellemelerini ve eklenti görevlerini işler. Tick 50 ms’in üstüne çıkarsa saniyede 20 tick tamamlanamaz ve oyun yavaşlamış gibi hissedilir.

TPS 20 olduğu hâlde neden lag var?

TPS 20 sunucunun sağlıklı olduğunu garanti etmez. Ortalama tick süresi 20 ms olan bir sunucuda ara sıra 300 ms süren tick’ler yaşanabilir; ortalama TPS 20 görünür, oyuncu ise donma hisseder. MSPT dalgalanmasına bakın. Sorun sunucuda değilse ping veya istemci FPS kaynaklıdır.

TPS nasıl ölçülür?

Paper ve Purpur sunucularında konsola veya oyun içine tps yazarak son 1, 5 ve 15 dakikanın ortalamasını görürsünüz. Daha doğru ölçüm için spark profiler kurup /spark tps ve /spark health komutlarını kullanın; bu komutlar MSPT dağılımını yüzdelik dilimlerle birlikte verir.

Sunucuya RAM eklersem TPS artar mı?

Hayır. RAM yalnızca yetersiz olduğunda TPS’i etkiler, çünkü çöp toplayıcı sık ve uzun duraklamalar yapmaya başlar. Heap zaten yeterliyse üstüne RAM eklemek tick süresini kısaltmaz. TPS’i belirleyen şey işlemcinin tek çekirdek performansı ve tick içinde yapılan iştir.

Hangi eklentinin TPS’i düşürdüğünü nasıl bulurum?

spark profiler ile beş dakikalık bir profil alın: /spark profiler --timeout 300. Çıkan bağlantıda çağrı ağacını açıp eklenti paket adlarını arayın. Tick süresinin belirgin bir kısmını tek başına tüketen eklenti hemen görünür. Şüphelendiğiniz eklentiyi geçici olarak kaldırıp ölçümü tekrarlayarak doğrulayın.

TPS düşükken sunucuyu yeniden başlatmak çözüm mü?

Geçici bir çözümdür. Yeniden başlatma birikmiş entity’leri, yüklü chunk’ları ve parçalanmış heap’i temizler, TPS bir süre normale döner. Ancak kök sebep duruyorsa aynı noktaya geri gelirsiniz. Günlük planlı yeniden başlatmayı bakım rutini olarak kullanın, çözüm yerine değil.

Mob çiftlikleri TPS’i ne kadar etkiler?

Yoğun bir mob grinder tek başına tick süresinin dörtte birini alabilir. Etkiyi azaltmak için spigot.yml içinde nerf-spawner-mobs: true yapabilir, entity activation range değerlerini düşürebilir ve mob-spawn limitlerini sınırlayabilirsiniz. Oyuncu ekonomisini etkileyeceği için değişikliği duyurarak yapın.

Performans ve Optimizasyon — Tüm Rehberler#

  1. Minecraft Sunucu Optimizasyonu: TPS’i 20’de Tutma Rehberi
  2. Minecraft TPS Düşüklüğü ve Çözüm Yolları
  3. Minecraft Sunucu Lag Sorunu Nasıl Çözülür?
  4. Spark ve Timings Raporu ile Minecraft Performans Analizi
  5. Minecraft Sunucusu Kaç GB RAM İster? (Oyuncu Sayısına Göre Tablo)
  6. Minecraft Sunucusu İçin Doğru Donanım Nasıl Seçilir?
  7. Minecraft View Distance ve Simulation Distance Ayarları
  8. paper.yml, spigot.yml ve bukkit.yml Optimizasyon Rehberi

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön