Minecraft’ta tick, sunucunun oyun dünyasını bir adım ilerlettiği hesaplama döngüsüdür. Sunucu saniyede 20 tick çalıştırır; her tick’te mob’lar hareket eder, redstone güncellenir, huniler eşya taşır, bitkiler büyür ve oyuncu hareketleri işlenir. Yani 20 tick, oyunun bir saniyesidir.
Bu döngü sabit bir bütçeyle çalışır: tick başına 50 milisaniye. Sunucu bir tick’i 30 ms’de bitirirse kalan 20 ms’yi bekleyerek geçirir. 60 ms’de bitirirse beklemez, geriye düşer ve saniyede 20 tick üretemez. TPS ve MSPT kavramlarının tamamı bu tek cümlenin üzerine kurulu.
Tick Nedir ve Neden 50 Milisaniye?#
Minecraft sunucusu sürekli çalışan bir simülasyondur. Ana iş parçacığı bir döngü içinde şu işleri sırayla yapar: ağdan gelen paketleri al, dünyadaki blok güncellemelerini işle, yüklü chunk’lardaki varlıkları tick’le, oyuncu hareketlerini doğrula, sonucu istemcilere gönder. Bu turun tamamına bir tick denir.
Saniyede 20 tick hedefi oyunun tasarımına gömülüdür. Kavun bir tick’te değil, belli sayıda tick sonra büyür; iksir süreleri tick cinsinden sayılır; bir chunk’ta oyuncuların geçirdiği süre bile tick olarak kaydedilir. 20 tick = 1 saniye eşitliği bozulduğunda oyun sadece yavaşlamaz, oyunun kendi zamanı yavaşlar. Mahsul geç büyür, fırın geç pişirir, mob’lar geç doğar.
Bir tick’in bütçesi 1000 / 20 = 50 milisaniyedir. Bu, sunucunun her tick’te yapabileceği işin üst sınırıdır ve donanım ne kadar güçlü olursa olsun değişmez — güçlü donanım bütçeyi büyütmez, aynı bütçeye daha çok iş sığdırır.
Sunucu bütçeyi aştığında iki şey olabilir. Küçük aşmalarda basitçe geri düşer: 55 ms süren tick’ler yüzünden saniyede 20 yerine 18 tick üretir ve oyun gözle görülür şekilde yavaşlar. Büyük aşmalarda ise sunucu geride kalan tick’leri atlar, yani o tick’lerdeki işler hiç yapılmaz. Bu yüzden ağır lag anlarında mob’lar ışınlanır gibi hareket eder — aradaki ara adımlar hesaplanmamıştır.
TPS Nedir? (Ticks Per Second)#
TPS, sunucunun saniyede gerçekten kaç tick ürettiğidir. Sağlıklı bir sunucuda değer 20.0’dır ve 20’nin üstüne çıkamaz — sunucu erken bitirdiği tick’in kalan süresini bekleyerek geçirir, yetişemediği zamanı sonradan telafi etmez.
Konsoldan okumak için:
tps
mspt
spark tps
spark health
Paper’da tps komutu üç sayı verir: son 1 dakika, son 5 dakika ve son 15 dakikanın ortalaması. Üçünü birlikte okumak önemlidir, çünkü tek bir kötü an ile süregelen bir sorunu ancak böyle ayırt edersiniz.
> tps
TPS from last 1m, 5m, 15m: 20.0, 19.8, 20.0
> tps
TPS from last 1m, 5m, 15m: 14.2, 15.6, 17.9
İlk çıktı sağlıklı bir sunucudur; 5 dakikalık ortalamadaki küçük düşüş muhtemelen tek seferlik bir işten (bir dünya kaydı, bir oyuncu akını) kaynaklanır. İkinci çıktıda ise sorun süreklidir ve üç değerin de düşük olması yükün geçici olmadığını söyler.
TPS düştüğünde sunucu konsola şu satırı basmaya başlar:
[06:12:44] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2148ms or 42 ticks behind
Bu uyarının anlamı ve ne zaman göz ardı edilebileceği kendi sayfasında ayrıntılı anlatılıyor. Kısaca: sunucunun açılış anında bir kez görünmesi normaldir, oyun sırasında tekrar tekrar görünmesi değildir.
MSPT Neden Daha Bilgilendirici?#
TPS’in tavanının 20 olması, onu bir noktadan sonra kör bir metrik hâline getirir. Tick’lerini 12 milisaniyede bitiren bir sunucu ile 47 milisaniyede bitiren bir sunucunun ikisi de TPS 20 gösterir. Oysa birincisinin elinde dört katı pay vardır, ikincisi bıçak sırtındadır.
İşte bu yüzden asıl bakılacak değer MSPT, yani tick başına milisaniyedir. MSPT sunucunun ne kadar dolu olduğunu, TPS ise doluluğun taştığını gösterir. Biri erken uyarı, diğeri alarmdır.
> mspt
Server tick times (avg/min/max) from last 5s, 10s, 1m:
◤ 18.4/9.2/41.7 ◢ 19.1/9.0/44.3 ◤ 21.8/8.7/128.5
Bu çıktıdaki en kritik sayı sondaki 128.5’tir. Ortalama 21.8 ms gayet iyi görünüyor, sunucu TPS 20’de duruyor, ama son bir dakika içinde 128 milisaniye süren bir tick yaşanmış. O anda oyuncular saniyenin sekizde biri kadar donma hissetti. Ortalamaya bakan yönetici bu sorunu asla göremez.
“TPS 20 Ama Oyun Takılıyor” — Üç Ayrı Sebep#
Bu cümle destek taleplerinde en sık karşılaştığımız cümlelerden biri. Üç farklı sebebi var ve üçü tamamen farklı yerlerde ölçülüyor. Yanlış yerde arayan kişi günlerce config kurcalayıp hiçbir şey değiştiremiyor.
1. MSPT dalgalanması (sunucu tarafı)#
Yukarıda anlattığımız durum. Ortalama iyi, tepe değerler kötü. Genelde belirli bir olay tetikler: dünya kaydı, bir eklentinin dakikada bir çalışan görevi, kalabalık bir mob çiftliğinin devreye girmesi, bir oyuncunun keşfe çıkıp yeni chunk yükletmesi. Belirtisi düzenli aralıklarla tekrarlayan kısa donmalardır.
2. İstemci FPS düşüklüğü (oyuncu tarafı)#
Sunucu kusursuz çalışıyor olabilir, takılma oyuncunun kendi bilgisayarındadır. Ayırt etmek çok kolay: F3 ekranını açın, sol üstteki FPS değerine bakın. 30’un altındaysa sorun istemcidedir ve sunucuda yapacağınız hiçbir ayar bunu düzeltmez. Çözüm için FPS artırma rehberine bakın.
3. Ping (ağ tarafı)#
Sunucu tick’i zamanında üretiyor ama paketler size geç ulaşıyorsa oyun yine takılıyormuş gibi hissedilir. Belirtisi karakteristiktir: blok kırdığınızda blok geri gelir, vurduğunuz mob geri ışınlanır, kapı gecikmeli açılır. Sunucu listesindeki yeşil çubuklara ve F3 ekranındaki gecikme değerine bakın. Ayrıntılar ping düşürme sayfasında.
Tick Süresini Yiyen Tipik İşler#
Bütçenin nereye gittiğini bilmeden müdahale etmek zaman kaybıdır. Aşağıdakiler, ölçüm yaptığımız sunucularda sürekli aynı sırayla karşımıza çıkan işler.
Varlık (entity) işleme#
Uzun süredir açık sunucularda birinci sıra. Yere düşmüş eşyalar, mob çiftlikleri, minecart ve armor stand yığınları her tick’te tek tek işlenir.
Yeni chunk üretimi#
Tek tick içinde yapılabilecek en pahalı işlerden biri. Bir oyuncunun at üstünde keşfe çıkması MSPT’yi anında ikiye katlayabilir.
Redstone devreleri#
Saat devreleri ve büyük otomasyonlar tick başına yüzlerce blok güncellemesi üretir. Sürekli çalışan bir devre sürekli maliyettir.
Huni (hopper) zincirleri#
Her huni, üstünde eşya olup olmadığını düzenli olarak kontrol eder. Yüzlerce boş huni bile ölçülebilir yük yaratır.
Eklenti zamanlayıcıları#
Ana iş parçacığında çalışan ve her tick tüm oyuncuları dolaşan görevler. Scoreboard ve TAB eklentilerinde sık görülür.
Dünya kaydetme#
Otomatik kaydetme varsayılan olarak 6000 tick’te bir çalışır. Yavaş diskte MSPT’de düzenli sivri uçlar oluşturur.
Bu listede dikkat çeken şey şu: hiçbiri RAM ile ilgili değil. Tick süresini belirleyen şey işlemcinin tek çekirdek hızı ve tick içinde yapılan işin miktarıdır. Minecraft’ın ana tick döngüsü tek bir iş parçacığında çalıştığı için çekirdek sayısı değil saat hızı belirleyicidir — 32 çekirdekli düşük frekanslı bir sunucu işlemcisi, 5 GHz’lik bir Ryzen 9’un yanında bu iş için yavaş kalır.
Huni yükünü azaltmak için hopper optimizasyonu sayfasına, entity yükü için entity limit ayarlarına bakabilirsiniz.
Ölçüm Araçları ve Çıktıların Okunuşu#
Konsol komutları size durumu söyler, sebebi söylemez. “MSPT 45” bilgisi tek başına işe yaramaz; o 45 milisaniyenin nereye gittiğini görmeniz gerekir. Bunun için profil alma aracı şart.
spark health
spark profiler --timeout 300 --thread server
spark profiler --info
Beş dakikalık profil sonunda konsola bir bağlantı düşer. Tarayıcıda açtığınızda çağrı ağacını görürsünüz: hangi metot, tick süresinin yüzde kaçını almış. Okuma sırası şudur — önce en yüksek yüzdeye sahip dalı açın, sonra o dalın içinde bir eklenti paket adı arayın. Eklenti adı yoksa maliyet vanilla oyun mantığındadır ve çözüm config tarafındadır; eklenti adı varsa suçlu belli demektir.
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.
Raporu satır satır nasıl yorumlayacağınız spark ve timings analizi sayfasında örneklerle anlatılıyor.
Hedef Değerler: Neyi Normal Saymalı?#
Aşağıdaki tablo, ölçüm yaptıktan sonra “bu iyi mi kötü mü” sorusuna cevap verir. Değerleri oyuncu yoğunluğunun en yüksek olduğu saatte ölçün; boş sunucuda alınan ölçüm hiçbir şey söylemez.
| Metrik | Sağlıklı | Sınırda | Sorunlu | Nerede ölçülür |
|---|---|---|---|---|
| TPS | 20.0 | 19.5 - 20.0 | 19.5 altı | Sunucu konsolu |
| MSPT ortalama | 0 - 25 ms | 25 - 40 ms | 45 ms üzeri | Sunucu konsolu |
| MSPT tepe değeri | 40 ms altı | 40 - 60 ms | 100 ms üzeri | Sunucu konsolu |
| GC duraklaması | 50 ms altı | 50 - 150 ms | 200 ms üzeri | spark / GC logu |
| Ping (Türkiye) | 40 ms altı | 40 - 80 ms | 120 ms üzeri | Oyuncu istemcisi |
| İstemci FPS | 60 üzeri | 30 - 60 | 30 altı | F3 ekranı |
Tablodaki son iki satırın sunucu tarafıyla ilgisi olmadığına dikkat edin. Bunları listeye koymamızın sebebi, “sunucu lag’i” diye gelen şikayetlerin önemli bir kısmının aslında oradan çıkmasıdır.
Düşük TPS’in Oyun İçi Belirtileri#
Konsola bakmadan da tick kaybını anlayabilirsiniz. Oyun size söyler, yeter ki ne aradığınızı bilin.
- Mob’lar takılarak yürür. Akıcı hareket yerine kısa sıçramalar yaparlar; en erken belirti budur.
- Blok kırma gecikir. Blok kırılır, kaybolur, sonra geri gelir. Sunucu kırma olayını geç işlemiştir.
- Fırın ve mahsul yavaşlar. Oyunun kendi zamanı yavaşladığı için pişirme ve büyüme süreleri uzar.
- Gece gündüz döngüsü uzar. Bir gün 20 dakikadan uzun sürüyorsa TPS belirgin şekilde düşük demektir.
- Eşya alma gecikir. Yerdeki eşyanın üstünden geçersiniz, envantere birkaç saniye sonra girer.
Bunların hepsi sunucu tarafı belirtileridir. Buna karşılık dokuların geç yüklenmesi, menülerin donması ve ekranın parça parça çizilmesi istemci tarafı belirtileridir; ikisini karıştırmayın. Lag sorunu teşhis rehberi bu ayrımı adım adım yapıyor.
Ölçtükten Sonra Ne Yapmalı?#
Rakamları okuduysanız sıra müdahalede. Sıralama önemli, çünkü en yüksek etkili ayarlar en başta.
view-distance=8
simulation-distance=6
max-tick-time=60000
sync-chunk-writes=false
simulation-distance entity ve blok mantığının işlendiği yarıçaptır; tick maliyetinin büyük kısmı buradan gelir. view-distance ise oyuncunun gördüğü alandır ve daha çok ağ ile bellek tarafını etkiler. İkisini ayırmak, manzarayı bozmadan CPU yükünü kesmenizi sağlar — ayrıntılar view distance ve simulation distance sayfasında.
Bundan sonrası entity limitleri, chunk ön üretimi ve eklenti denetimidir; tam sıra sunucu optimizasyonu rehberinde adım adım veriliyor. Biriken entity’ler yüzünden akşamları düşen TPS için ayrıca günlük otomatik restart kurmak ucuz ve etkili bir bakım rutinidir.
Ölçümler sürekli sınırda çıkıyor ve config ayarları artık kazanç sağlamıyorsa sorun donanımdadır. Tek çekirdek performansı yüksek bir platform bu tabloyu belirgin şekilde değiştirir; yüksek frekanslı Ryzen VDS paketleri orta ölçekli sunucular için doğru adımdır. Nasıl seçeceğinizi donanım seçimi sayfası anlatıyor.
Özetle#
Tick, sunucunun oyun dünyasını bir adım ilerlettiği hesaplama döngüsüdür ve saniyede 20 tane üretilir. Her tick’in bütçesi 50 milisaniyedir; bu bütçe aşıldığı anda oyunun kendi zamanı yavaşlamaya başlar.
TPS bu bütçenin taştığını söyler, MSPT ise ne kadar dolduğunu. TPS 20 görmek iyi bir haber ama yeterli bir haber değil: asıl bakılacak yer MSPT’nin ortalaması ve özellikle tepe değeridir. Ortalaması 20 ms, tepesi 130 ms olan bir sunucu kağıt üzerinde kusursuz, oyunda takılıyor görünür.
Takılma şikayeti geldiğinde önce şu üçünü ayırın: sunucu MSPT’si, istemci FPS’i, ping. Sunucu tarafındaysanız ölçün, profil alın, en pahalı işi kesin, sonra tekrar ölçün. Tahminle yapılan ayar değişiklikleri çoğu zaman gerçek darboğazı ıskalar ve geriye anlamı unutulmuş bir config yığını bırakır.