Skip to content
İçeriğe geç
Bloga Dön
Folia: Bölgesel Çoklu İşleme Sunucunuzu Nasıl Dönüştürüyor

Folia: Bölgesel Çoklu İşleme Sunucunuzu Nasıl Dönüştürüyor

Alexandru Maftei
Alexandru Maftei
@ice
Güncellendi
46 görüntüleme
Hızlı yanıt:Folia, Paper sunucusunun dünyayı bağımsız bölgelere bölen ve her bölgeyi ayrı bir iş parçacığında çalıştıran bir çatalıdır. Bu sayede CPU çekirdekleri gerçek anlamda paralel çalışır ve geniş alanlara yayılmış çok oyunculu sunucularda tek iş parçacıklı Paper'ın aşamadığı ölçeğe ulaşmak mümkün olur.
TL;DR:Folia, büyük Minecraft sunucularının işi CPU çekirdekleri arasında dağıtmasını sağlayan Paper'ın çoklu işlemli bir çatalıdır. 200+ oyunculu topluluklara, oyuncuların dünya çapında dağılmış olduğu yerler için tasarlanmıştır ve eklenti uyumluluğunun pahasına gerçek performans kazançları sunar.
GitHub · Minecraft topluluk projesi

Folia (PaperMC/Folia)

Ayrılmış sunucuya bölgesel çoklu işleme ekleyen Paper'ın çatalı.

GitHub'da Yıldızla ↗
⭐ 4.228 yıldız💻 Shell📄 GPL-3.0

Büyük bir Minecraft sunucusu işletiyorsanız ve birisi yeni bölümler keşfettiğinde veya maksimum oyuncu sayısına ulaştığınızda TPS'niz düştüğünü izliyorsanız, Folia aradığınız cevap olabilir. Bu Paper tabanlı çatal, Minecraft sunucularının dünyayı bağımsız bölgelere bölerek hesaplamayı tamamen yeniden hayal eder, her biri kendi iş parçacığında çalışır. Bir ana iş parçacığı her şeyi takip etmeye çalışmak yerine, Folia, CPU çekirdeklerinizin gerçekten paralel çalışmasını sağlar.

Folia Nedir

Folia bir mod değildir. Bir eklenti de değildir. Ana iş parçacığı kavramını tamamen ortadan kaldıran Paper sunucusunun baştan sona yazılmış halidir. Bunun yerine, yakın bloklar "bölgeler"e gruplanır ve her bölge havuzda kendi tick döngüsünü çalıştırır. Bunu, bir iş parçacığını her şeyi yönetmek zorunda bırakmak yerine, dünyanızın farklı bölümlerine kendi bağımsız işlemciyi vermiş olmak olarak düşünün.

Mimari önemlidir çünkü sunucunuzun nasıl ölçeklendiğini değiştirir.

Paper, milyonlarca oyuncusu olan sunucuları tek iş parçacıklı tasarımı içinde iyi yönetir, ancak ölçeğin sonraki seviyesine geldiğinizde (yüzlerce oyuncu geniş bir dünyaya yayıldığında), darboğazlar ortaya çıkar. Folia, tek bir iş parçacığından daha fazla almaya çalışmaz. Bunun yerine, sorunu temelden değiştirir.


Buna Neden İhtiyaç Duyarsınız

Geniş yayılmış sunucular en çok yararlanır. Oyuncuların boyutlar arasında dağılmış yüzen adaları olan Skyblock ağları, devasa hayatta kalma dünyaları, dağılmış zindanları olan özel RPG sunucuları - Folia'nın parlak olduğu yerler burasıdır. Oyuncularınız bir spawn alanında kümelenmişse, aynı performans kazançlarını görmezsiniz. Ancak insanların farklı alanlarda keşif yaptığı 200+ oyunculu bir SMP için, fark önemlidir.

Başlangıçta söylemeliyim: bu bir plug-and-play değiştirici değildir.

Eklentilerinizin Folia'nın çoklu işlemli ortamı için yeniden yazılması gerekir. Bu gerçek maliyettir. Ancak ölçeğin bu seviyesine bakıyorsanız, eklenti ekosisteminiz muhtemelen özel olacaktır. Ana iş parçacığını varsaymayan standart Paper eklentileri Folia altında hemen kırılacaktır.

Ancak ödül gerçektir. Uygun yapılandırma ile, CPU çekirdek sayınızla ölçeklenen gerçek performans iyileştirmelerine bakıyorsunuz. Bu, standart Paper'da elde edilebilir değildir.


Kurulum ve Temel Kurulum

İlk olarak, PaperMC indirme sayfasından en son yapıyı alın. 2026 itibarıyla, Folia modern Minecraft sürümlerini destekler (1.20.4 ve sonrası). Jar dosyasını sunucu dizininize indirin:

bash
wget https://api.papermc.io/v2/projects/folia/versions/latest/builds/latest/downloads/folia-latest.jar
mv folia-latest.jar folia.jar

Ardından, eula.txt dosyasında EULA'yı kabul etmeniz gerekir. Yapılandırma dosyalarını oluşturmak için sunucuyu bir kez başlatın:

bash
java -Xmx30G -Xms30G -jar folia.jar nogui

Bunu durdurun (folia.yml config oluşturacaktır), ardından gerçek işe başlayın: iş parçacığı yapılandırması. Bu sadece "daha fazla iş parçacığı ayarla ve git" değildir. PaperMC belgeleri, üretim ortamına geçmeden önce dünyanızı önceden oluşturmayı tavsiye eder, bu da bölüm yükleme yükünü önemli ölçüde azaltır.


İş Parçacığı Yapılandırması: Gerçek Zorluk

Burası çoğu insanın kafasının karıştığı yerdir. Sizin folia.yml dosyasında bir `threaded-regions.threads` ayarı vardır. Bunu maksimuma çıkarmayın. Proje tarafından kendisi tarafından yayınlanan kılavuz: netty IO için iş parçacıkları ayırın (200-300 oyuncu başına yaklaşık 4), bölüm sistemi IO iş parçacıkları (200-300 oyuncu başına yaklaşık 3), önceden oluşturulmuş ise bölüm sistemi işçileri (200-300 oyuncu başına yaklaşık 2) ve ardından kalan çekirdekleri toplam ayırma için yüzde 80'e kadar kullanın tick iş parçacıkları.

500 oyuncuya hizmet veren 32 çekirdekli bir makinede, kabaca şunları ayıracaksınız:

  • Netty IO: 8 iş parçacığı
  • Bölüm sistemi IO: 6 iş parçacığı
  • Bölüm sistemi işçileri: 4 iş parçacığı
  • Tick iş parçacıkları: kalan çekirdekler yüzde 80'e kadar (yaklaşık 10 iş parçacığı)

Yüzde 100 ayırmayı bırakmayın çünkü eklentiler ve beklenmeyen arka plan görevleri kendi iş parçacıklarını oluşturacak ve sunucuyu kıracaktır. Yüzde 80 tavanı, gerçekten önemli olan bir güvenlik sınırıdır.

Yine de, bu bir başlangıç noktasıdır. Yük altında gerçek iş parçacığı kullanımını izleyin ve ayarlayın. folia.yml dosyası her seçenek için ayrıntılı açıklamalar içerir.


Çalışan Temel Özellikler

Bölge izolasyonu. Her bölge 20 TPS'de bağımsız olarak tick atılır. Bir bölgedeki lag dalgalanması diğerlerine yayılmaz. Zindanınız sistem zayıfsa, spawn alanınızın performansını çökmeyecektir.

Uygun iş parçacığı ölçeklemesi. Paper'ın eklenti-threadpool yaklaşımından farklı olarak (hala tick-kritik işlemlerde darboğaz oluşturur), Folia'nın bölgeleri tick mantığı paralel olarak çalıştırır. Daha fazla çekirdek gerçekten daha fazla tick işlemeye çevrilir. Ölçekleme doğrusal değildir, ancak gerçektir.

Eşzamansız bölüm yükleme. Bölüm G/Ç bölge iş parçacıklarının dışında gerçekleşir. Tek iş parçacıklı sunucuların depolama okumalarının arttığı durumlarda yaşadığı rastgele donmalar yaşamayacaksınız.

Ayrıca sunucu tarafı bölüm optimizasyonu, önceden oluşturulmuş bölüm önbelleğe alma ve bölge başına yapılandırılabilir bellek sınırları için yerel destek vardır. Dürüst olmak gerekirse, belgeleri incelemeye istekliyseniz özellik derinliği etkileyicidir.


Kırılacak ve Bununla Nasıl Başa Çıkılacak

Çoğu eklenti ana iş parçacığında olduklarını ve eşitlemeden dünya durumunu güvenle okuyup yazabileceklerini varsayar. Folia'da yanılıyorlar. Bir eklenti "X bloğu taş mı kontrol et, sonra havaya ayarla" gibi bir şey yapıyorsa, bu yarış durumu Paper'da hiç olmayacağı şekilde iş parçacıkları arasında gerçekleşebilir. Eklenti başarısızlıklarını bekleyin.

Bazı özel durumlar:

  • Bölgeler arasında ışınlanma ek karmaşıklık içerir ve eklentiler dikkatli değilse kilitlenmelere neden olabilir
  • Dünya sınırı kontrolleri bölge farkına sahiptir ve beklediğinizden farklı davranabilir
  • Zamanlayıcılar ve planlanan görevler, bozulmayı önlemek için bölge-güvenli olması gerekir
  • Bölge sınırları arasında varlık izlemesi, eklenti güncellemeleri gerektirir

Folia belgeleri uyumsuz desenleri açıkça listelemiştir. Eklentileri uyumluluk açısından değerlendiriyorsanız, tick mantığını doğrudan manipüle edip etmediklerini veya bölüm verilerine tek iş parçacıklı erişim varsayıp varsaymadıklarını kontrol edin.


Folia Ne Zaman Mantıklı Olur

16+ çekirdekli bir makineniz var. Sunucunuz düzenli olarak 200+ eşzamanlı oyuncuya ulaşacak. Oyuncularınız coğrafi olarak dağılmış (hepsi spawn'da değil). Özel eklenti altyapınız var veya mevcut eklentileri taşımaya istekliysiniz.

Bu dört koşul? Sizinle aday var.

Bir VPS'de 8 çekirdekle 50 oyuncu mu işletiyorsunuz? Paper'ı saklayın. Kazançlar uyumluluğun rahatsızlığını haklı çıkarmayacaktır. 200 oyuncu SMP'sini işletiyorsunuz, burada herkes spawn'da mı kalıyor? Folia yardımcı olur, ancak yayılmış bir sunucuda olduğu kadar dramatik değildir.

Ancak ciddi çok oyunculu Minecraft topluluklarının bir sonraki kuşağını inşa ediyorsanız, Folia, performans tavanının gerçekten daha yüksek olduğu yerdir. adderall_abuser gibi oyuncuların derileri, ironmouse ve diğer muazzam sunuculardaki aktif topluluk üyeleri, bu alanı zaten keşfediyorlar. Modrinth'teki akış topluluklarını ve büyük hayatta kalma projelerini kontrol edin - Folia daha sık görünüyor.


Dikkate Alınması Gereken Alternatifler

Paper. Çoğu sunucu için hala altın standart. Kararlı, iyi anlaşılan, muazzam eklenti ekosistemi. Folia aşırı gelmişse, Paper'ın optimizasyon özellikleri (eşzamansız bölüm yükleme, azaltılmış varlık AI tikleri, vb.) yeterli olabilir.

Purpur. Ek oyuncu başına optimizasyonları olan Paper çatalı. Oyuncu deneyimi çok değişken olan sunucular için daha iyi (bazıları AFK, bazıları aktif olarak keşfediyor). Folia'dan daha az mimari değişim, daha hedefli performans kazançları.

Fabric Server. Mod desteğine ihtiyacınız varsa (eklentiler değil), Fabric ekosistemi sunucular için aslında oldukça sağlamdır. Aynı şekilde çoklu işlemli değildir, ancak hafif ve hızlıdır.

Dürüst gerçek: Folia uzmanlaştırılmıştır. Belirli bir ölçekte belirli bir sorundur. Başka herkes için, düşünceli yapılandırma ile Paper hala doğru seçimdir.

Yazar hakkında
Alexandru Maftei
Alexandru MafteiBaş Yazar

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Arkadaşlarınla paylaş!

Sıkça Sorulan Sorular

Folia nedir ve Paper'dan farkı nedir?
Folia, ana iş parçacığı kavramını tamamen ortadan kaldıran, baştan sona yeniden yazılmış bir Paper çatalıdır. Yakın bloklar bölgelere gruplanır ve her bölge kendi iş parçacığında tick atar. Paper tek iş parçacığıyla her şeyi yönetmeye çalışırken, Folia CPU çekirdeklerini paralel olarak kullanır.
Folia hangi tür sunuculara uygundur?
Oyuncuların geniş bir dünyaya yayıldığı 200 ve üzeri oyunculu sunucular en çok kazanır. Skyblock ağları, devasa hayatta kalma dünyaları ve dağılmış zindanları olan RPG sunucuları bunların başında gelir. Oyuncular spawn bölgesinde kümeleniyorsa aynı performans farkını görmezsiniz.
Mevcut Paper eklentileri Folia üzerinde çalışır mı?
Hayır, çoğu çalışmaz. Ana iş parçacığında olduklarını varsayan standart Paper eklentileri Folia'nın çoklu işlemli ortamında hemen kırılır. Eklentilerin bu ortam için yeniden yazılması gerekir.
İş parçacığı sayısını nasıl ayarlamalıyım?
folia.yml dosyasındaki threaded-regions.threads değerini maksimuma çıkarmayın. 500 oyuncuya hizmet veren 32 çekirdekli bir makinede Netty IO için 8, bölüm sistemi IO için 6, bölüm sistemi işçileri için 4 ve kalan çekirdeklerin yüzde 80'ini tick iş parçacıkları için ayırmanız önerilir. Kalan yüzde 20'yi serbest bırakmak, eklentilerin ve arka plan görevlerinin kendi iş parçacıklarını açarak sunucuyu çöktürmesini engeller.
Bir bölgedeki lag diğer bölgeleri etkiler mi?
Hayır. Her bölge 20 TPS'de bağımsız olarak tick atar, bu yüzden bir bölgedeki performans düşüşü diğerlerine yayılmaz. Zindan alanında yaşanan yavaşlama, spawn alanının performansını çökmez.
Folia hangi Minecraft sürümlerini destekler?
2026 itibarıyla Folia, 1.20.4 ve sonrasını destekler. PaperMC indirme sayfasından en son yapıyı alabilirsiniz.

Yorumlar

Henüz yorum yok. Düşüncelerinizi paylaşan ilk kişi olun!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy