Sunucunuzda lag varken /spark profiler start komutunu çalıştırmak kolay kısımdır — zor olan, üretilen spark.lucko.me raporunu okuyup hangi plugin'in, hangi metodun veya hangi ayarın sorumlu olduğunu bulmaktır. Bu rehberde spark analizini sıfırdan nasıl yapacağınızı, TPS/MSPT grafiğini nasıl yorumlayacağınızı ve raporu okurken nelere bakmanız gerektiğini adım adım anlatıyoruz.

İlgili içerikler: Minecraft sunucu optimizasyonu · Minecraft sunucu kurulumu · Spark analiz aracı

# Spark Profiler Nedir?

Spark, Lucko tarafından geliştirilen açık kaynak bir performans profiler'ıdır ve Paper, Spigot, Folia, Forge, Fabric gibi neredeyse tüm Minecraft sunucu yazılımlarında çalışır. Sunucunuzun tick döngüsünü, her metot çağrısını, garbage collection (GC) duraklamalarını ve plugin başına CPU tüketimini örnekleyerek kaydeder; sonucu spark.lucko.me üzerinde paylaşılabilir bir link olarak üretir.

Sorun şu: bu link açıldığında karşınıza yüzlerce metot adı, yüzde değeri ve sekme çıkar. Hangi satırın gerçekten önemli olduğunu bilmeden rapor sadece kalabalık bir veri yığınıdır.

# Spark Profiler Nasıl Başlatılır?

Analiz için önce veri toplamanız gerekir. Konsoldan veya oyun içinden (yetkili bir hesapla) şu komutları sırayla çalıştırın:

/spark profiler start

Profiling oturumunu başlat

Örnek: /spark profiler start --timeout 300

Sunucu normal şekilde çalışmaya devam ederken en az 2-5 dakika bekleyin. Lag anında yakalamak istiyorsanız, sorunun gerçekleştiği aralığı kapsayacak şekilde bekleyin — sadece sakin bir anı örneklerseniz rapor anlamlı çıkmaz.

/spark profiler stop

Profiling oturumunu durdur ve raporu üret

Örnek: /spark profiler stop

Komut, sonunda bir https://spark.lucko.me/abc123 linki döndürür. Bu linki tarayıcıda açabilir veya doğrudan KEYDAL'in Spark analiz aracına yapıştırarak otomatik yorumlama alabilirsiniz.

Bilgi:
Sadece ani lag spike'larını (TPS düşüşlerini) yakalamak istiyorsanız /spark profiler start --only-ticks-over 100 kullanın — bu, yalnızca 100ms'den uzun süren tick'leri kaydeder ve raporu gürültüden arındırır.

# Spark Raporunu spark.lucko.me Üzerinde Okuma

# Sampler (CPU) Sekmesi

Rapor açıldığında karşınıza bir flame graph (alev grafiği) çıkar. Her satır bir metot çağrısını temsil eder; genişlik, o metodun toplam CPU süresindeki payını gösterir. Geniş ve üst sıralarda duran bloklar, en çok zaman tüketen kod yollarıdır. Bir bloğa tıklayarak alt çağrılarını açabilir, hangi plugin'in hangi işlemi tetiklediğini görebilirsiniz.

# TPS ve MSPT Grafiği

Sağ üstteki TPS (saniyedeki tick) ve MSPT (tick başına milisaniye) değerleri sunucunun genel sağlığını özetler. Sağlıklı bir sunucuda TPS 20.0'a yakın, MSPT 50ms'nin altında olmalıdır — çünkü bir tick'in 50ms'den uzun sürmesi, sunucunun saniyede 20 tick yetiştiremediği anlamına gelir.

TPS / MSPT AralığıDurum
20.0 TPS / <35ms MSPTMükemmel — sunucu rahat çalışıyor
18-20 TPS / 35-50ms MSPTNormal — hafif yük altında, dikkat gerektirmez
15-18 TPS / 50-65ms MSPTUyarı — oyuncular hafif gecikme hissetmeye başlar
<15 TPS / >65ms MSPTKritik — gözle görülür lag, acil müdahale gerekir

# Sources: Plugin Başına CPU Dağılımı

Spark'ın en pratik sekmesi budur: toplam CPU süresini plugin'lere göre gruplar. Beklenmedik şekilde yüksek bir yüzdeye sahip bir plugin görüyorsanız (örneğin küçük bir dekoratif eklenti %20 CPU tüketiyorsa), lag kaynağınızı bulmuşsunuz demektir.

# Hangi Bulgular Lag'e İşaret Eder?

  • Tek bir plugin'in CPU payı orantısız yüksek — config'i yanlış ayarlanmış veya verimsiz kod çalıştırıyor olabilir
  • Sık ve uzun GC duraklamaları — heap boyutu yetersiz veya bellek sızıntısı (memory leak) var
  • Chunk yükleme/üretme metotları üst sıralarda — dünya pre-generation eksik veya oyuncular sürekli yeni alan keşfediyor
  • Entity/tile-entity tick metotları yüksek — aşırı mob/redstone/hopper yoğunluğu
  • Native I/O veya veritabanı çağrıları üst sıralarda — disk yavaş veya senkron sorgu kullanılıyor

# Health Report ve GC Analizi

Sampler dışında /spark health komutu, anlık CPU, RAM, disk ve GC istatistiklerini gösteren bir "health report" üretir. Burada GC pause süresi özellikle önemlidir: G1GC ile düzgün ayarlanmış bir sunucuda GC duraklamaları nadiren 50ms'yi geçer. Sık 100ms+ duraklamalar görüyorsanız JVM flag'lerinizi (heap boyutu, GC algoritması) gözden geçirin.

KEYDAL Spark Analiz Aracı

# KEYDAL Spark Analiz Aracı ile Otomatik Yorumlama

Flame graph okumak deneyim ister. KEYDAL'in Spark analiz aracı, spark.lucko.me linkinizi yapıştırmanız yeterli olacak şekilde bu süreci otomatikleştirir: TPS/MSPT dağılımını çıkarır, en çok CPU tüketen metotları ve plugin'leri sıralar, GC duraklamalarını okur, JVM/sistem ayarlarınızı denetler ve bir sağlık skoru üretir. İsteğe bağlı olarak, anonimleştirilmiş metrikleri AI ile yorumlatıp Türkçe somut öneriler de alabilirsiniz — oyuncu adı, IP, sunucu adı gibi kişisel veriler bu süreçten önce otomatik temizlenir.

# Spark Analizinde Sık Yapılan Hatalar

  • Çok kısa örnekleme — 10-15 saniyelik bir profiling, lag anını yakalamaya yetmez; en az birkaç dakika örnekleyin
  • Sakin bir anda profil almak — lag yaşanan saatte/durumda profiling yapmazsanız rapor temiz çıkar ama sorunu göstermez
  • Sadece sampler'a bakıp Sources sekmesini atlamak — plugin bazlı dağılım çoğu zaman daha hızlı teşhis koydurur
  • TPS'e bakıp MSPT'yi göz ardı etmek — TPS 20.0 görünse bile MSPT yükseliyorsa sunucu sınırına yaklaşıyor demektir

# Sıkça Sorulan Sorular

# Spark profiler sunucuyu yavaşlatır mı?

Spark'ın örnekleme (sampling) yöntemi çok düşük overhead'lidir; normal kullanımda sunucu performansını gözle görülür şekilde etkilemez. Bu yüzden canlı, oyuncu dolu bir sunucuda bile güvenle çalıştırılabilir.

# Spark raporu ne kadar süre saklanır?

spark.lucko.me üzerindeki raporlar sınırlı bir süre (genellikle birkaç hafta) sonra otomatik silinir. Önemli bir analizi referans olarak saklamak isterseniz ekran görüntüsü alın veya bulgularınızı not edin.

# TPS 20 ama oyuncular yine de lag yaşıyor, neden?

TPS sunucu tarafındaki tick hızını ölçer; oyuncu tarafındaki gecikme ise ağ (ping), istemci FPS'i veya render mesafesi gibi farklı faktörlerden kaynaklanabilir. Spark sunucu tarafını gösterir — ağ kaynaklı gecikmeler için /ping ve sunucu lokasyonunuzu kontrol edin.

# Hangi plugin'i kapatmam gerektiğini spark söyler mi?

Spark doğrudan "şu plugin'i kapat" demez; ama Sources sekmesindeki CPU yüzdeleri size önceliği gösterir. En yüksek paya sahip plugin'in ayarlarını gözden geçirmek veya güncel sürümünü kontrol etmek genelde ilk adımdır.

Spark Raporunuzu Analiz Edin

Spark raporunuzu hemen yapıştırın, sunucunuzun gerçek darboğazını dakikalar içinde görün. Spark Analiz Aracını Aç

Bu rehber faydalı oldu mu?

Sunucunuzdaki spesifik probleme çözüm arıyorsanız bize yazın. Her destek talebi yeni bir rehberin başlangıcı olabilir.

WhatsApp