Minecraft konsolunda görünen “Can’t keep up! Is the server overloaded?” mesajı teknik olarak bir hata değil, bir performans uyarısıdır. Sunucu saniyede 20 tick çalışacak şekilde tasarlanmıştır ve her tick için 50 milisaniyelik bir bütçesi vardır. Bu bütçe aşıldığında sunucu geriye düşer, mesajı basar ve kaçırdığı tick’leri telafi etmeye çalışır. Oyuncular bunu blok kırmanın gecikmesi, mobların ışınlanması ve komutların geç yanıt vermesi olarak hisseder.
Uyarının tek seferlik görülmesi (özellikle sunucu ilk açılırken veya dünya kaydedilirken) normaldir. Sorun, mesajın düzenli olarak akmaya başlamasıdır. Bu sayfada uyarının tam metnini, dört ana kaynağını, spark ile ölçüm yapmayı ve her kaynak için uygulanabilir çözümleri bulacaksınız.
Uyarının Birebir Metni#
[20:14:33] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2145ms or 42 ticks behind
[20:14:41] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 5012ms or 100 ticks behind
[20:15:02] [Server thread/WARN]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
Uzun süren donmalarda devreye giren watchdog mesajı ise şudur:
[20:16:11] [Paper Watchdog Thread/ERROR]: The server has stopped responding! This is (probably) not a Paper bug.
[20:16:11] [Paper Watchdog Thread/ERROR]: Please report this to the plugin/mod authors.
Neden Olur? Belirti, Neden ve Çözüm Tablosu#
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Oyuncu sayısı arttıkça uyarı sıklaşıyor | CPU saat hızı yetersiz | Yüksek frekanslı Ryzen 9 işlemciye geçin |
| Belirli aralıklarla tekrar eden donma | Zamanlanmış görev çalıştıran eklenti veya otomatik kayıt | spark ile o anı profilleyin |
| Dünya kaydedilirken donma | Disk I/O gecikmesi | NVMe SSD, sync-chunk-writes=false |
| Rastgele 1–3 saniyelik takılmalar | Garbage collection duraklaması | Heap artırın, Aikar’s Flags uygulayın |
| Belirli bir bölgede lag | Entity yığılması, redstone makinesi, hopper zinciri | Bölgeyi bulup temizleyin |
| Yeni eklenti sonrası başladı | Ağır veya kötü yazılmış eklenti | Eklentiyi kaldırın veya alternatif bulun |
| Watchdog yığın izi basıyor | Tam kilitlenme; genelde tek bir eklenti/mod | Yığın izindeki paket adına bakın |
Önce Ölçün: spark ile Profil Çıkarma#
Bu uyarıya tahminle müdahale etmek en yaygın hatadır. Rastgele eklenti kaldırmak, view distance’ı 4’e düşürmek veya sunucuyu her saat yeniden başlatmak semptomu gizler. Doğru yol ölçmektir.
-
spark profilerZorunluİndir
-
Paper 26.2 sunucu jarİndir
-
Purpur 26.2 (build 2620)Performans forkuİndir
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.
-
Profil alın#
/spark profiler start --timeout 120 /spark tps /spark healthİki dakika sonra konsola bir rapor bağlantısı düşer. Bağlantıyı tarayıcıda açtığınızda tick süresinin hangi metodlara dağıldığını ağaç halinde görürsünüz.
-
Raporu doğru okuyun#
Ağacın kökünde
ServerLevel.tickbulunur. Alt dallarda yüzdesi en yüksek düğümü takip edin. Bir eklentinin paket adı (com.ornek.eklenti) yüksek yüzdeyle görünüyorsa suçlu odur.net.minecraft.world.entityaltında yığılma varsa entity sayısı sorundur. -
Sonucu doğrulayın#
Şüpheli eklentiyi geçici olarak kaldırıp aynı ölçümü tekrarlayın. TPS toparlıyorsa teşhis doğrudur. Bu adımı atlamak, doğru gibi görünen yanlış sonuçlara yol açar.
spark raporunun ayrıntılı okunması spark ve timings analizi sayfasında anlatıldı.
Kaynak 1: İşlemci Saat Hızı#
Minecraft’ın ana tick döngüsü tek bir iş parçacığında çalışır. Bu, sunucunun performansının çekirdek sayısına değil neredeyse tamamen tek çekirdek saat hızına bağlı olduğu anlamına gelir. 32 çekirdekli ama 2.1 GHz’lik bir sunucu işlemcisi, 8 çekirdekli 5.0 GHz’lik bir Ryzen’in yanında Minecraft için belirgin biçimde yavaş kalır.
| Oyuncu profili | RAM | İşlemci | Disk |
|---|---|---|---|
| 2–10 oyuncu, vanilla | 8 GB | Ryzen 9 3900X ve üzeri | 50 GB NVMe |
| 10–30 oyuncu, eklentili Paper | 10–12 GB | Ryzen 9 7900X | 80 GB NVMe |
| 30–60 oyuncu, minigame / çok dünyalı | 16 GB | Ryzen 9 7900X / 7950X | 100 GB NVMe |
| Forge / Fabric modpack | 16 GB (büyükte 24–32 GB) | Ryzen 9 7950X | 100 GB+ NVMe |
| 60+ oyuncu veya sunucu ağı | 32 GB ve üzeri | Ryzen 9 7950X | 200 GB NVMe |
Yüksek saat hızlı ve ayrılmış çekirdekli altyapılar için yüksek frekanslı Ryzen VDS paketlerine veya dedicated sunucu seçeneklerine bakabilirsiniz. Donanım seçim kriterleri donanım rehberinde tartışıldı.
Kaynak 2: Eklenti ve Mod Yükü#
Bazı eklentiler her tick’te iş yapar ve bu iş oyuncu sayısıyla çarpılır. En sık suçlanan kategoriler:
- Scoreboard ve tab-list eklentileri: Saniyede 20 kez güncelleme yapacak şekilde yapılandırılmışsa gereksiz yük üretir. Güncelleme aralığını 1 saniyeye çekin.
- Harita render eklentileri: Chunk render işlemi ana thread’i bloke edebilir. Render işini yoğun saatler dışına planlayın.
- Anti-cheat yazılımları: Her hareket paketini analiz eder. Hassasiyet ayarlarını düşürmek yükü belirgin azaltır.
- Ekonomi ve log eklentileri: Her işlemde veritabanına senkron yazan eklentiler tick’i doğrudan bekletir. Asenkron yazma seçeneğini açın.
- Eski, bakımsız eklentiler: 26.1 unobfuscation sonrası yeniden derlenmemiş eklentiler hem hata verir hem verimsiz çalışır.
Eklenti seçiminde performans odaklı alternatifler için en iyi eklentiler listesine bakın.
Kaynak 3: Entity, Chunk ve Redstone#
Oyuncuların kurduğu yapılar sunucuyu tek başına dize getirebilir. En yaygın üç desen: binlerce item entity biriktiren çiftlikler, uzun hopper zincirleri ve sürekli çalışan redstone saatleri.
Sorunlu bölgeyi bulmak için:
/spark tickmonitor --threshold 100
/paper entity list
/minecraft:forceload query
Paper tarafında yükü sınırlayan ayarlar:
# config/paper-world-defaults.yml
entities:
spawning:
per-player-mob-spawns: true
despawn-ranges:
monster: { hard: 96, soft: 32 }
creature: { hard: 96, soft: 32 }
hopper:
disable-move-event: true
ignore-occluding-blocks: true
tick-rates:
mob-spawner: 2
container-update: 3
grass-spread: 4
collisions:
max-entity-collisions: 2
# spigot.yml
world-settings:
default:
entity-activation-range:
animals: 16
monsters: 24
misc: 8
merge-radius:
item: 4.0
exp: 6.0
Bu ayarların her birinin oyun deneyimine etkisi paper.yml, spigot.yml ve bukkit.yml optimizasyon rehberinde tek tek açıklandı.
Kaynak 4: Garbage Collection ve Disk#
Uzun GC duraklamaları tick’i doğrudan bekletir. GC logunu açıp süreleri görün:
-Xlog:gc*:file=logs/gc.log:time,uptime:filecount=5,filesize=10M
500 ms üzeri duraklamalar sorun işaretidir. 8–12 GB heap aralığında G1GC ve Aikar’s Flags kombinasyonu hâlâ en güvenli seçimdir; PaperMC’nin resmî dokümanı 26.x çıkışlarından sonra geri çekilmemiştir.
java -Xms14G -Xmx14G \
-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:InitiatingHeapOccupancyPercent=15 \
-XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -XX:+PerfDisableSharedMem \
-jar paper.jar nogui
16 GB ve üzeri heap ile ağır modlu sunucularda ZGC değerlendirilebilir; doğru kullanım yalnızca -XX:+UseZGC biçimindedir. Java 25’te -XX:+ZGenerational obsolete olduğu için eklenmemelidir.
Disk tarafında ise chunk yazma işlemi tick döngüsünü bloke edebilir:
sync-chunk-writes=false
view-distance=8
simulation-distance=6
max-tick-time=60000
sync-chunk-writes=false ayarı chunk yazmayı arka plana alır ve donmaları azaltır. Bu ayar NVMe SSD üzerinde güvenlidir; yavaş disklerde ani güç kaybında veri kaybı riskini biraz artırır. Düzenli yedek aldığınızdan emin olun.Windows ve Linux Tarafında Sistem Kontrolleri#
Sunucu makinesinin kendisinde bir darboğaz olup olmadığını doğrulayın:
top -b -n 1 -p $(pgrep -f paper.jar)
iostat -x 1 5
vmstat 1 5
Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 1 -MaxSamples 5
Get-Counter '\PhysicalDisk(_Total)\Avg. Disk sec/Transfer'
Get-Process java | Select-Object CPU,WorkingSet64
iostat çıktısında %util değeri sürekli %90 üzerindeyse disk darboğazdır. Java sürecinin CPU kullanımı tek çekirdeğin sınırına dayanmışsa (Linux’ta yaklaşık %100) işlemci frekansı darboğazdır. Sistem yönetimi komutları için Linux temel komutlar sayfasına, Windows Server tarafındaki ayarlar için Windows Server optimizasyon rehberine bakın.
Hızlı Kazanç Listesi#
- view-distance=8
- Tek başına en etkili ayar. 10’dan 8’e düşürmek chunk yükünü belirgin azaltır.
- simulation-distance=6
- Entity ve redstone hesaplanan alanı daraltır, görüntüyü etkilemez.
- per-player-mob-spawns=true
- Mob doğumunu oyuncu başına dengeler, toplam entity sayısını düşürür.
- Aikar’s Flags
- 8–12 GB heap için GC duraklamalarını kısaltır.
- NVMe SSD
- Chunk yazma kaynaklı donmaları ortadan kaldırır.
- Purpur veya Paper
- Vanilla sunucu jar’ından belirgin biçimde daha verimlidir.
İlgili Sayfalar#
- TPS düşüklüğü ve çözüm yolları — sayısal hedefler ve ölçüm.
- Sunucu lag sorunu — lag türünü ayırt etme.
- Out of Memory hatası — GC duraklamaları bellek kaynaklıysa.
- Tüm Minecraft sunucu hataları ve çözümleri — pillar rehber.
Özetle#
“Can’t keep up” uyarısı, sunucunun tick bütçesini aştığını söyleyen bir erken uyarıdır ve susturulmaması gerekir. Tek seferlik görülmesi normal, sürekli tekrarlaması ciddidir. Önce spark ile ölçüm yapın; tick süresini kimin yediğini görmeden yapılan her müdahale tahmindir. Ölçüm sonucunda dört kaynaktan birine ulaşırsınız: işlemci saat hızı, ağır eklenti, entity/chunk yığılması veya GC ile disk gecikmesi. view-distance ve simulation-distance ayarları hızlı kazanç sağlar, ancak darboğaz işlemcideyse kalıcı çözüm yüksek saat hızlı bir Ryzen ve NVMe tabanlı altyapıya geçmektir.