
Minecraft Sunucu Lag Çözümü: TPS Düşüklüğünü Giderme
Minecraft sunucularında yaşanan TPS düşüşlerini ve gecikmeleri gidermek için yapılandırma, eklenti analizi ve sunucu optimizasyon adımları.
Minecraft sunucunuzda blokların geç kırılması, yaratıkların takılarak hareket etmesi veya komutların geç algılanması ağ gecikmesinden de kaynaklanabileceği için donanım kaynaklarının yetersiz olduğu sonucuna varmadan önce TPS/MSPT ve ping değerleri ayrı ayrı ölçülmelidir. Kapsamlı bir minecraft sunucu lag çözümü için yazılım parametrelerini düzenlemek, yığın (chunk) işleme mesafelerini kısmak ve donanım darboğazlarını belirlemek gerekir. Doğru yapılandırılmış bir Minecraft sunucu altyapısı, kalabalık oyuncu gruplarında oyunun kararlı çalışmasını sağlar.
Kısa cevap:
- Sunucu çekirdeğini Paper veya Purpur gibi optimize edilmiş yazılımlara taşıyın.
- Simülasyon mesafesini 4 veya 5 seviyesine çekerek aktif yığın sayısını düşürün.
- Spark profil aracıyla aşırı kaynak harcayan eklentileri ve koordinatları tespit edin.
- Tek çekirdek performansı ve NVMe disk hızı yüksek sunucu donanımına geçin.
Lag türleri: TPS, FPS ve ping farkı
Minecraft topluluklarında gecikme kavramı genellikle tek bir başlık altında toplanır. Performans kaybını ortadan kaldırmak için sorunun hangi katmanda yaşandığını ayırt etmek gerekir. Oyuncuların bildirdiği gecikmeler üç farklı teknik başlıkta incelenir.
İlk tür, sunucu taraflı döngü gecikmesi olan TPS (saniye başına işlem / ticks per second) kaybıdır. Sunucu işlemcisi oyun mekaniklerini belirlenen süre sınırında hesaplayamadığında bu sorun ortaya çıkar. Blok kırdığınızda bloğun bir saniye sonra düşmesi veya kırılan bloğun yerine geri gelmesi, yaratıkların hareketsiz kalması ve sandıkların geç açılması gibi belirtiler görülebilir. Ancak sandıkların geç açılması gibi tepki gecikmeleri ağ bağlantısından da kaynaklanabildiği için TPS kaybı tanısı koymadan önce TPS/MSPT değerleri ile ping değerleri ayrı ayrı ölçülmelidir.
İkinci tür, istemci taraflı kare hızı olan FPS (saniye başına kare / frames per second) düşüşüdür. Bu gecikme tamamen oyuncunun kendi bilgisayar bileşenleri, özellikle ekran kartı ve işlemci kapasitesi ile bağlantılıdır. Çok sayıda parçacık efekti, binlerce sandık içeren depolar veya karmaşık blok tasarımları ekran kartına binen yükü artırır. Oyuncunun ekranında görüntü takılır, ancak sunucu tarafındaki oyun akışı hız kesmeden devam eder.
Üçüncü tür ise ping olarak adlandırılan ağ gecikmesidir. Oyuncunun yerel internet hattı ile sunucunun bulunduğu veri merkezi arasındaki veri paketlerinin gidiş ve dönüş süresini temsil eder. Ping yükseldiğinde oyuncular diğer karakterleri ışınlanarak görür, mesajlar sohbete geç yansır. Başarılı bir VDS ile oyun sunucusu kurma süreciyle sunucu ağı optimize edilse de ping değerleri oyuncunun bağlantısına, sunucuya olan fiziksel mesafesine ve ağ rotasına da bağlıdır; işlemci kaynaklı TPS kayıpları ise ağ durumundan bağımsız biçimde devam edebilir.
TPS nasıl ölçülür?
Minecraft oyun döngüsü saniyede 20 işlem adımı tamamlayacak biçimde tasarlanmıştır. Bu 20 döngünün her birinde yaratık hareketleri, ekinlerin büyümesi, fırınların çalışması, kızıltaş (redstone) devreleri ve oyuncu etkileşimleri hesaplanır. Sunucunun 20.0 TPS değerini koruması yalnızca sunucu simülasyonunun hedef hızda ilerlediğini gösterir; yüksek ping, düşük FPS ve ortalamada gizlenen anlık takılmalar yine yaşanabilir.
Sunucunun performans durumunu izlemek için sunucu konsolundan veya oyun içinde yetkili bir kullanıcı hesabıyla temel komutlar çalıştırılır:
- Paper konsolunda
tps, oyun içi sohbet ekranında ise/tpskomutunu yazın. - Ekrana gelen çıktıda son 1 dakika, 5 dakika ve 15 dakikalık TPS ortalamalarını kontrol edin.
- Değerlerin 20.0 seviyesine yakınlığını gözlemleyin; 18.0 altına sarkan ortalamalar sunucunun döngüleri yetiştirmekte zorlandığını gösterir.
TPS metriğinin arkasındaki asıl teknik belirteç MSPT (işlem başına milisaniye / milliseconds per tick) değeridir. Bir saniye 1000 milisaniye olduğundan 20 TPS hedefinde döngü başına bütçe 50 milisaniyedir; ancak tek bir döngünün 50 milisaniyeyi aşması TPS değerinin hemen düşeceği anlamına gelmez, sunucu kısa süreli taşmaları telafi edebildiğinden sürdürülebilir 20 TPS için ortalama döngü süresi değerlendirilmelidir. Paper tabanlı sunucularda /mspt komutuyla döngü tamamlama süreleri incelenebilir. Döngü sürelerinin sürekli olarak 50 milisaniyenin üzerinde seyretmesi durumunda sunucu simülasyonu yavaşlatır ve TPS tablosunda düşüş başlar.
Aşağıdaki tablo, sunucu performansını değerlendirirken hedeflenen standart değerleri göstermektedir:
| Metrik | Hedef Değer |
|---|---|
| TPS | 20.0 |
| MSPT | 50 ms altı |
Sunucuda anlık patlamalar yaşandığında MSPT değeri kısa süreliğine yükselebilir; ancak ortalama sürenin 50 milisaniyenin altında tutulması hedeflenmelidir.
Paper ayarlarıyla hızlı kazanımlar
Minecraft varsayılan sunucu yazılımı, çok oyunculu ortamlarda işlemci çekirdeklerini verimli kullanamaz. Bu yazılımlar ana simülasyon döngüsünü birden fazla çekirdeğe dağıtmasa da Spigot, Paper veya Purpur gibi optimize edilmiş sunucu yazılımlarına geçmek işlem yükünü hafifletmeye yardımcı olur. Paper, hesaplama kuyruğunu sadeleştirir ve işlemci yükünü hafifletir; ancak bazı varsayılan oyun davranışlarını değiştirebileceği için belirli kızıltaş düzeneklerini ve teknik çiftlikleri etkileyebilir.
Spigot altyapısında yaratık hareketlerini, aktivasyon mesafesi dışındaki köylüleri ve huni döngülerini hafifletmek için spigot.yml dosyası kullanılır. Dosya içindeki entity-activation-range, tick-inactive-villagers ve ticks-per bölümleri yapılandırılarak işlemcinin gereksiz varlıkları sürekli hesaplaması engellenir:
world-settings:
default:
entity-activation-range:
animals: 16
monsters: 24
raiders: 36
misc: 8
water: 12
tick-inactive-villagers: false
ticks-per:
hopper-transfer: 8
hopper-check: 8
Bu ayarlar sayesinde oyuncudan uzaklaşan hayvanlar ve yaratıklar daha seyrek aralıklarla hesaplanır. Aktivasyon mesafesi dışındaki köylülerin döngüden muaf tutulması kalabalık köylerdeki yükü dengeler. Varsayılan değeri 8 olan transfer süresinin yanında kontrol aralığının da 8 döngüye çıkarılması, binlerce huninin yer aldığı depolama sistemlerinde işlemci kullanımını fark edilir biçimde hafifletir.
Paper tarafındaki dünya bazlı ince ayarlar ise config/paper-world-defaults.yml dosyasında yer alır. Otomatik kayıt aralıklarını optimize etmek için şu parametreler uygulanabilir:
chunks:
auto-save-interval: 6000
max-auto-save-chunks-per-tick: 8
Varsayılan Paper yapılandırmasında otomatik kayıt aralığı zaten 6000 tick olsa da tick başına kaydedilen azami yığın miktarının sınırlandırılması disk yazma işlemlerinden doğan anlık duraklamaları hafifletir. Genel sistem ölçeğinde sunucu optimizasyonu yöntemleri göz önüne alındığında, girdi-çıktı işlemlerinin düzenlenmesi tüm sunucu yazılımlarında kritik bir kazanç sağlar.
Görüş mesafesi ve simülasyon mesafesi ayarı
Minecraft dünyalarında yığın yönetimi işlemci ve bellek tüketiminin ana kaynağıdır. Güncel sunucu sürümlerinde görsel alan ile oyun mekaniklerinin hesaplandığı alan birbirinden ayrılmıştır. Performansı hem görüş mesafesi hem de simülasyon mesafesi etkiler; ancak oluşturdukları yükün türü farklıdır.
Görüş mesafesi (view-distance), oyuncuya gönderilen görsel yığınların sınırını belirler. Yüksek görüş mesafesi sunucunun diskten yığın okumasına, paket üretmesine ve ağ bant genişliği tüketmesine yol açar. Simülasyon mesafesi (simulation-distance) ise yaratık yapay zekasının çalıştığı, ekinlerin büyüdüğü ve kızıltaş kablolarının sinyal taşıdığı aktif alanı belirler. Bu iki parametre server.properties dosyası üzerinden ayrı ayrı yönetilir:
view-distance=8
simulation-distance=4
Simülasyon mesafesini 10 değerinden 4 veya 5 seviyesine indirmek, oyuncu başına düşen aktif hesaplanan yığın adedini büyük oranda azaltır. Örneğin simülasyon mesafesi 10 olduğunda bir oyuncunun çevresinde varlıkların işlendiği alan 441 yığından oluşurken, mesafe 4 yapıldığında bu alan 81 yığına iner. Görüş mesafesini 8 civarında tutarak oyuncunun haritayı geniş görmesi sağlanabilirken, simülasyon mesafesini kısarak işlemcinin yalnızca oyuncunun hemen yakınındaki mekanizmaları hesaplaması sağlanır. Böylece görsel derinlik korunurken işlemci üzerindeki yük hafifletilebilir; ancak 50 milisaniyelik bütçenin korunup korunmadığı MSPT ölçümüyle doğrulanmalıdır.
Lag yapan eklenti ve chunk'ları bulma
Yapılandırma dosyaları düzenlenmesine rağmen TPS düşüklüğü sürüyorsa, sunucuda hatalı kodlanmış bir eklenti veya oyuncuların dünya üzerine inşa ettiği devasa yapılar işlemciyi kilitliyor olabilir. Bu darboğazları tahminle çözmek yerine profil çıkarıcı (profiler) araçlar kullanılmalıdır.
Modern Minecraft sunucularında sistem tüketimini incelemek için Spark aracı standart olarak tercih edilir. Spark eklentisi kurulduktan sonra analiz aşamaları şu komutlarla yürütülür:
- Sunucuda gecikme başladığı esnada konsola profil komutunu girin:
spark profiler start
- Sunucuyu olağan oyuncu trafiği altında 5 ile 10 dakika boyunca gözlemleyin.
- Analizi sonlandırarak web tabanlı rapor bağlantısını oluşturun:
spark profiler stop
Oluşan bağlantı tarayıcıda açıldığında hangi eklentinin veya hangi oyun olayının (örneğin varlık hareketleri veya blok güncellemeleri) işlemci süresini tükettiği yüzde bazında listelenir. Aşırı döngü harcayan eklentiler rapordan belirlenerek güncellenebilir veya alternatifleriyle değiştirilebilir.
Dünya genelindeki bellek, işlemci ve varlık durumunu genel hatlarıyla incelemek için ise sağlık raporu komutundan faydalanılır:
spark healthreport
Bu komut raporu varsayılan olarak konsolda veya sohbette gösterir; web tarayıcısında açılan bir rapor bağlantısı için spark healthreport --upload kullanılabilir ve raporda canlıların yanı sıra yerdeki eşyalar gibi diğer varlık türlerinin sayıları da listelenir. Belirli bir dünyada aşırı varlık yoğunluğu saptandığında, ilgili harita koordinatlarında birikmiş kontrolsüz çiftlikler veya kızıltaş saatleri bulunarak yöneticiler tarafından sınırlandırılabilir.
Donanım yetersizse: paket yükseltme zamanı
Yazılım optimizasyonları belirli bir oyuncu ve yığın sınırına kadar rahatlama sağlar. Oyuncu sayısı yükseldikçe, harita genişledikçe ve dünya üzerindeki eklenti sayısı çoğaldıkça fiziksel donanım sınırlarına ulaşılır. Minecraft ana oyun motoru tek bir iş parçacığı üzerinden çalıştığı için yüksek çekirdek sayısından ziyade çekirdek başına düşen işlem gücüne ihtiyaç duyar. Donanım tercihlerinde doğrudan saat frekansına (GHz) odaklanmak yerine, mimari verimliliği yüksek ve ilgili iş yükünde güçlü tek çekirdek performansı sunan işlemciler seçilmelidir; bu sayede sunucunun 50 milisaniyelik tick bütçesini karşılama kapasitesi artar.
Donanım yükseltmelerinde bellek ve disk mimarisi de hesaba katılmalıdır. Yüksek hızlı bellekler ile desteklenen NVMe diskler, harita parçalarının kaydedilmesi ve yüklenmesi sırasında yaşanabilecek disk darboğazlarını hafifletir. Projenizin büyüklüğüne göre VDS sanal özel sunucu kaynaklarını inceleyebilir, tamamen ayrılmış donanım gereksinimi duyduğunuzda ise fiziksel adanmış sunucu çözümlerine yönelebilirsiniz.
Optimizasyon ayarlarını tamamladıktan sonra sunucunuzun MSPT ve TPS grafiklerini düzenli takip edin. İşlemciniz sürekli tepe değerde çalışıyorsa ve gecikmeler sürüyorsa, güçlü tek çekirdek performansına sahip Minecraft sunucu paketleri arasından kapasitenize uygun bir pakete geçerek altyapınızı güçlendirebilirsiniz.
Sık Sorulan Sorular
TPS düşüşü oyuncuların internet bağlantısından kaynaklanır mı?
Oyuncunun internet kalitesi sunucunun TPS değerini doğrudan etkilemez. Zayıf bağlantı yalnızca ilgili oyuncunun ping süresini yükseltir ve veri paketlerinin gecikmesine yol açar. TPS düşüklüğü ise sunucu donanımının oyun hesaplamalarını 50 milisaniyelik süre içinde tamamlayamaması durumunda ortaya çıkar.
Paper yerine Purpur kullanmak performansı artırır mı?
Purpur, Paper tabanını kullanan ve ek yapılandırma parametreleri sunan bir yazılımdır. Bazı oyun içi mekanikleri kapatma veya yaratık hareketlerini kısıtlama konusunda esneklik tanır. Çok yoğun yaratık bulunan sunucularda küçük kazanımlar getirebilse de temel yığın ve varlık ayarları yapılmadan tek başına çekirdek değişimi yeterli olmaz.
Sunucuya çok fazla RAM vermek lag sorununu çözer mi?
Gereğinden fazla bellek vermek performans sorunlarını tek başına çözmez. Tahsis edilen bellek miktarı, sunucuda çalışan çöp toplayıcı (Garbage Collector) mimarisi ve canlı nesne miktarı ile dengeli olmalıdır. Doğru başlatma parametreleri yapılandırılmadığında bellek temizleme döngüleri uzayabilir. Bellek miktarı eklenti ve oyuncu sayısına göre ayarlanmalıdır.
ClearLag gibi yaratık temizleme eklentileri faydalı mı?
ClearLag benzeri eklentiler belirli aralıklarla yerdeki eşyaları toplu olarak sildiğinde anlık işlemci yükü oluşturabilir. Güncel Paper sürümlerinde simülasyon mesafesini kısmak ve varlık aktivasyon mesafelerini düşürmek işlemci yükünü hafifletebilir; ancak birikmiş varlıkları doğrudan silmediği için her senaryoda yeterli olmayabilir ve sunucu ihtiyacına göre değerlendirilmelidir.
Oyun Sunucuları İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

