Sunucun takılıyor hissi veriyorsa suçlu çoğu zaman internet değil, düşük TPS'tir. Bu rehber önce sorunun gerçekten nerede olduğunu ayırt etmeyi, sonra en çok kazanç veren ayarı en başa alarak sunucunu akıcı hâle getirmeyi anlatır.
TPS nedir ve neden 20?
TPS (Ticks Per Second), sunucunun saniyede kaç kez oyun mantığını güncellediğidir. Hedef 20 TPS'tir; yani sunucu her 50 milisaniyede bir dünyayı bir adım ilerletir. Değer 20'nin altına düşerse oyun yavaşlar: bloklar geç kırılır, canavarlar takılarak hareket eder, komutlar gecikir.
Panelin genel bakış ekranında ve konsolda canlı TPS'i görebilirsin. 19,5 ve üzeri sağlıklıdır; 15'in altı oyunda belirgin biçimde hissedilir.
Genel Bakış'taki TPS kutusu son bir dakikanın ortalamasını gösterir. Ortalama iyi görünse bile tek bir uzun takılma oyuncuları oyundan düşürebilir; bu yüzden son dakikada bir tur bir saniyeden uzun sürdüyse kutunun altında "en uzun takılma" satırı belirir. Sunucu yeni açıldıysa kutuda "ısınıyor" yazar ve ölçüm birkaç dakika içinde oturur. Panel TPS'i yalnız eklenti destekli yazılımlarda (Paper, Purpur, Spigot, CraftBukkit) ölçer; Vanilla ve mod yazılımlarında kutu boş kalır.
Önce ayır: sunucu mu, ağ mı, senin bilgisayarın mı?
Aynı şikâyet üç farklı sorundan gelebilir ve çözümleri tamamen farklıdır:
- Sunucu gecikmesi (düşük TPS) — herkeste aynı anda olur. Bloklar geç kırılır, canavarlar ışınlanır. Bu rehberin konusu budur.
- Ağ gecikmesi (ping) — yalnız bazı oyuncularda olur. Oyun akıcıdır ama tepkiler geç gelir. F3 ekranındaki ping değerine bak; panelde de sunucunun anlık gecikmesi gösterilir.
- İstemci FPS düşüklüğü — tek bir oyuncunun ekranı takılır, diğerleri sorunsuzdur. Sunucuyla ilgisi yoktur; görsel ayarlar ve sürücü meselesidir.
Ayırt etmenin en hızlı yolu: sorun yaşandığı anda panelin TPS değerine bak. 20'ye yakınsa sunucu iyidir, sorun ağda ya da istemcidedir.
Düşük TPS'in en yaygın nedenleri
- Yüksek görüş ve simülasyon mesafesi — görüş mesafesindeki her ek chunk yüklenecek, oyunculara gönderilecek ve bellekte tutulacak yeni alan demektir; simülasyon mesafesindeki her ek chunk ise her tikte hesaplanır. En sık ve en büyük sebep budur.
- Aşırı varlık (entity) birikimi — devasa hayvan çiftlikleri, yerde biriken eşyalar, kalabalık canavar çiftlikleri.
- Sürekli çalışan redstone — saat devreleri ve büyük otomatik makineler her tikte iş üretir.
- Ağır ya da çakışan eklenti — kötü yazılmış tek bir eklenti, on iyisinden fazla yük bindirebilir.
- Pakete göre fazla oyuncu — RAM ve çekirdek, gerçek yüke göre küçük kalmıştır.
- Sınırsız keşif — dünya büyüdükçe hem disk hem bellek büyür; sınırsız keşif uzun vadede en sinsi yüktür.
Adım adım optimizasyon — en çok kazandırandan başla
1. Görüş ve simülasyon mesafesini düşür. Ayarlar bölümündeki "Görüş mesafesi (chunk)" ve "Simülasyon mesafesi (chunk)" değerlerini 6-8 bandına çek. Bu tek değişiklik çoğu sunucuda tek başına en büyük farkı yaratır ve oyuncular genelde farkı hissetmez. Bu değerlerin üst sınırı paketine göre belirlenir; küçük paketlerde zaten düşük tutulur.
2. Eklenti ailesinde Paper ya da Purpur kullan. Vanilla ya da Spigot'tan Paper'a geçmek, dahili optimizasyonlar sayesinde belirgin kazanç sağlar.
Panelde yazılım türünü değiştirdiğinde mevcut dünyan ve eklentilerin silinmez, ama yeni kuruluma kendiliğinden de geçmez: eski yazılımın adını taşıyan bir profile taşınır ve yeni yazılım temiz bir dünyayla açılır. Eklentilerin Paper'da da çalışır; dünyanı ve plugins içeriğini Dosyalar bölümündeki profiles/ klasöründen yeni kuruluma taşıman gerekir. Değişiklikten önce elle yedek al; adımlar yazılım değiştirme rehberinde.
3. Varlıkları sınırla. Hayvan çiftliklerini makul tut, yerde biriken eşyaları temizleyen bir eklenti kullan, canavar çiftliklerinin çıktısını sınırla. Ayarlardaki "Canlı gönderim menzili" değerini düşürmek de kalabalık anlarda yardımcı olur.
4. Eklentileri teker teker ele. Şüphelendiğin eklentiyi geçici olarak devre dışı bırakıp TPS'i izle. Aynı anda birden fazlasını kapatırsan hangisinin sorumlu olduğunu anlayamazsın.
5. Dünya sınırı koy. Sınırsız keşif hem diski hem belleği büyütür; makul bir sınır uzun vadede sunucuyu ayakta tutar.
Konsoldan teşhis
Konsolda Can't keep up! ya da Overloaded satırlarını görüyorsan sunucu bir tiki zamanında bitirememiş demektir. Bu satırların hangi olaydan sonra çıktığına bak: dünya kaydından sonraysa disk, kalabalık bir andaysa oyuncu yükü, belli bir eklentinin mesajından sonraysa o eklenti şüphelidir.
Tek seferlik uyarılar normaldir (örneğin dünya kaydı sırasında). Sürekli tekrarlıyorsa gerçek bir sorun vardır. Günlük bölümünde açtığın dosyanın satırlarında arayarak sorunun ne zaman başladığını da bulabilirsin.
Günlük bölümünde latest.log dosyasını açıp WARN süzgecini seçersen bu uyarılar saatleriyle birlikte tek listede toplanır. Önceki günlerin kayıtları sıkıştırılmış dosyalar olarak durur; onları indirip bilgisayarında açarsın.
Daha derin ölçüm: MSPT ve profil eklentisi
TPS 20'de dururken bile sunucunun ne kadar zorlandığını gösteren değer MSPT'dir: bir turun kaç milisaniye sürdüğü. Her tur için bütçe 50 milisaniyedir. MSPT 30 civarındaysa TPS hâlâ 20 görünür ama payın daralmıştır; 50'yi geçtiği anda TPS düşmeye başlar. Paper ve Purpur'da konsola mspt yazınca son saniyelerin ve son dakikanın tur sürelerini görürsün; tps ise birkaç zaman aralığının TPS ortalamasını verir. Vanilla, Fabric ve Forge sunucularında Minecraft 1.20.3 ile gelen tick query komutu ortalama tur süresini gösterir.
Yükün hangi eklentiden ya da hangi işten geldiğini bulmak için spark gibi bir profil eklentisi kullan; Fabric ve Forge için mod sürümü de vardır. Sorun yaşanırken konsola spark profiler start yaz, birkaç dakika bekle, spark profiler stop ile bitir. Ölçüm bitince tur süresinin eklentilere, canlılara ve dünya işlerine nasıl dağıldığını gösteren bir rapor bağlantısı gelir. Ölçümü kalabalık bir saatte al; kimsenin oynamadığı bir anda alınan profil sorunu göstermez.
Ölçmeden değiştirme
Performans işinde en yaygın hata, aynı anda beş şeyi birden değiştirmektir. Sonuç düzelse bile hangisinin işe yaradığını bilemezsin ve bir dahaki sefere sıfırdan başlarsın.
Doğru yöntem: tek bir değişiklik yap, sunucuyu yeniden başlat, kalabalık bir saatte TPS'i izle, sonucu not et. Sıkıcı ama tek işe yarayan yol budur.
Düzenli yeniden başlatma
Görevler bölümünde sunucunu yeniden başlatan bir görev oluşturup Zamanlayıcı bölümünden onu belirli saatlere bağlayabilirsin; sunucun bu saatlerde otomatik yeniden başlar. Günde bir kez, oyuncuların en az olduğu saatte yapılan yeniden başlatma, uzun süre açık kalan sunucularda biriken yükü temizler.
Bunu bir çözüm değil, bakım alışkanlığı olarak düşün: kök sorunu ortadan kaldırmaz ama belirtileri geciktirir.
Örnek: akşamları takılan on kişilik survival sunucusu
Standart paketteki (4 GB RAM, 2 çekirdek) bir Paper sunucusunda on kişi oynuyor. Gündüz sorun yok; akşam herkes girince bloklar geç kırılıyor, canavarlar ışınlanıyor. Adım adım şöyle ilerlenir:
- Ayır. Şikâyet geldiği anda Genel Bakış'a bak: TPS 14 civarında, ping normal. Sorun ağda değil, sunucuda.
- Ölç. Kalabalık saatte
spark profiler startile ölçüm al. Rapor, tur süresinin büyük kısmının iki oyuncunun köylü ve hayvan çiftliklerindeki canlılara gittiğini gösteriyor. Ayarlar'a bakınca görüş mesafesinin 16, simülasyon mesafesinin 10 olduğu görülüyor. - İlk değişiklik. Görüş mesafesini 10'a, simülasyon mesafesini 6'ya indir, Ayarları Kaydet'e bas ve sunucuyu oyuncuların az olduğu bir saatte yeniden başlat. Ertesi akşam TPS 18'e çıkıyor ama kalabalık anlarda hâlâ dalgalanıyor.
- İkinci değişiklik. Çiftlik sahipleriyle konuşup hayvan ve köylü sayısını makul bir düzeye indir. Bir akşam daha ölç: TPS kalabalıkta da 19,5'in üstünde kalıyor.
- Bakım. Görevler ekranında "Duyurulu yeniden başlatma" türünde bir görev oluştur ve geri sayım dakikalarına
5, 1yaz. Zamanlayıcı'da bu görevi Her gün seçeneğiyle sabah 06.00'ya bağla; saatler Türkiye saatidir.
Bu adımların sonunda akşam takılmaları bitti ve RAM eklemeye gerek kalmadı, çünkü sorun bellek değil, simülasyon yükü ve canlı sayısıydı. Her adımda yalnız bir şey değişti ve ertesi akşam ölçüldü; hangi değişikliğin ne kazandırdığı bu sayede belli.
Ne zaman paket büyütmeli?
Yukarıdaki adımları uyguladın ve TPS hâlâ düşükse sorun ayarda değil kaynaktadır. Bu noktada Kaynaklar bölümünden paketini büyütmek doğru karardır. Hangi kademenin neye yettiğini kaç GB RAM gerekir rehberinde anlattık.
Şunu da bilmek işe yarar: Minecraft'ın dünya döngüsü ağırlıklı olarak tek bir çekirdekte döner. Bu yüzden RAM'i artırmak, redstone ve canavar yoğun bir dünyada tek başına çözüm olmayabilir; çekirdek de artmalıdır. Paketlerde ikisi birlikte yükselir ve sana ayrılan çekirdek ikinci kez satılmaz.
Doğru ayarlarla 20 TPS'i korumak çoğu topluluk için ulaşılabilir bir hedeftir. Yeni bir eklenti ya da mod kurduktan sonra TPS'i birkaç gün izlemek, sorunu büyümeden yakalamanın en kolay yoludur.
Sorun giderme
- TPS kutusu boş görünüyor: sunucun Vanilla ya da bir mod yazılımıyla çalışıyordur; panel TPS'i yalnız eklenti destekli yazılımlarda ölçer. Konsolda
tick queryile ölç. - Sunucu açılır açılmaz takılıyor: açılışta dünya ve eklentiler yüklenir; ilk anlardaki dalgalanma normaldir. TPS kutusundaki "ısınıyor" yazısı kalkana kadar karar verme; takılma bundan sonra da sürüyorsa yukarıdaki adımlara dön.
- TPS 20 ama oyuncular arada bir donup düşüyor: ortalama, tek bir uzun takılmayı gizler. TPS kutusundaki "en uzun takılma" satırına ve RAM kutusunun altındaki Java alanı değerine bak. Java alanı sürekli üst sınırına yakınsa sunucu bellek temizliği sırasında takılır; eklenti yükünü azalt ya da paketini büyüt.
- Takılma yalnız yeni bölgelere gidilince başlıyor: arazi o anda üretiliyordur. Dünya sınırı koyup araziyi önceden üret; adımlar Chunky rehberinde.
- Takılma her gün aynı saatte geliyor: o saatte çalışan bir yedek ya da komut görevi olabilir. Görevler ve Zamanlayıcı ekranlarına bak; varsa görevi oyuncuların az olduğu bir saate taşı.
Sık sorulan sorular
RAM'i artırmak lag'ı çözer mi?
Yalnız sorun bellekse çözer. Java alanı sürekli dolu görünüyor ve takılmalar bununla birlikte geliyorsa daha fazla RAM işe yarar. Ama düşük TPS'in çoğu işlemciden gelir: Minecraft'ın dünya döngüsü büyük ölçüde tek çekirdekte döndüğü için fazla canlı, kızıltaş ve yüksek simülasyon mesafesi RAM eklenerek düzelmez. Hangi paketin neye yettiğini kaç GB RAM gerekir rehberinde anlattık.
Görüş mesafesini düşürmek oyuncuların ne kadar uzağı gördüğünü değiştirir mi?
Evet. Oyuncu kendi ayarında daha yüksek bir değer seçse de sunucunun gönderdiğinden uzağı göremez. Simülasyon mesafesi ise görüşü etkilemez; yalnız canlıların, bitkilerin ve kızıltaşın çalıştığı alanı belirler. Manzarayı seven bir toplulukta önce simülasyonu düşür, görüşü bir iki kademe yüksek bırak. İki ayarın ayrıntısı sunucu ayarları rehberinde.
Oyuncularımın ping'i yüksek; sunucu ayarlarıyla düzelir mi?
Hayır. Ping, oyuncunun bağlantısına ve sunucuya olan uzaklığına bağlıdır; bu rehberdeki ayarlar TPS'i etkiler, ping'i değiştirmez. Sunucular Almanya'daki AB veri merkezlerindedir; oyuncu uzaklaştıkça ping artar. Genel Bakış'taki ping senin konumundan ölçülür, başka bir oyuncununki farklı olabilir. Oyuncu tarafında kablosuz yerine kablolu bağlantı dalgalanmayı azaltır.
Zamanlanmış yeniden başlatma uyuyan sunucumu açar mı?
Hayır. Görev saatinde sunucu kapalıysa ya da uykudaysa yeniden başlatma ve duyurulu yeniden başlatma görevleri atlanır; Görevler ekranındaki son çalışmalar listesinde "Atlandı" olarak görünür. Sunucu açılmadığı için saatlik ücret de başlamaz. Sunucuyu belirli bir saatte açmak istiyorsan işlemi Başlat olan ayrı bir görev kurman gerekir. Ücretsiz sunucularda zamanlanmış görevler kapalıdır.
Oyuncu sayısını sınırlamak performansı korur mu?
Kısmen. Her oyuncu çevresindeki araziyi yüklü tutar; aynı kasabada oynayan on kişi, haritanın on ayrı köşesine dağılmış on kişiden daha az yük getirir. Ayarlar'daki Maks. oyuncu sayısının yanında görünen "Önerilen" değer, paketin için makul kalabalığı gösterir. Kalabalık arttıkça önce bu rehberdeki ayarlara, sonra pakete bak.
