Bir Minecraft sunucusu açmak istiyorsunuz ama bütçeniz sınırlı. Aternos''ta kuyrukta beklemekten sıkıldınız. Kiraladığınız en ucuz VPS 1 GB veya 2 GB RAM''le geliyor. Profesyonel plugin paketlerinin çoğu minimum 4 GB RAM önerilir diyor. Ne yapmalısınız? Pes edip 200 TL ödemek mi? Hayır. Bu rehber, düşük RAM''li sunucuda çalışabilecek bir plugin paketi nasıl hazırlanır, hangi pluginler hafif, hangileri kesinlikle çıkarılmalı, JVM ayarları nasıl kalibre edilir — hepsini anlatır.
Gerçekçi bir beklentiyle başlayalım: 1 GB RAM''de 5-10 oyunculu bir Survival sunucusu işlenebilir kalitede çalıştırılabilir. 20+ oyunculu SkyBlock ya da Faction için bu RAM yetersiz kalır. Bu rehberdeki optimizasyonlar 1 GB''da fizikten kopmayan, 2 GB''da ise iyi bir performans verir.
# Beklenti Ayarı: 1 GB''ın Gerçek Sınırları
Java''nın kendisi 200-300 MB tüketir. Paper çekirdeği 300-400 MB daha alır. Kala kala 300-500 MB''lık bir pencere kalır ki burada:
- Yüklü chunk''lar
- Entity''ler (mob, item, armor stand)
- Oyuncu inventory''leri
- Plugin cache''leri
- World render bölümleri
- Network buffer''lar
sığmalı. Her şey bu kısıtlı alanda olmak zorunda. Bu yüzden her optimizasyon memory tasarrufu üstüne kuruludur, hız değil.
# Adım 1: Doğru Sunucu Çekirdeği
1 GB RAM''de Spigot ya da Bukkit seçmek intihardır. Paper kullanın. Paper, async chunk loading, entity optimizations ve lazy chunk generation ile 1 GB''da Spigot''un yapamadığını yapar.
Purpur da iyi bir alternatiftir — Paper''ın forku, ekstra optimization flag''leri içerir. Ama Paper, ekosistem genişliği nedeniyle daha güvenlidir.
Folia''yı 1 GB''da denemeyin. Folia multi-threaded ama threadler arası context switch overhead''i küçük sunucularda faydadan çok zarar getirir.
# Adım 2: Doğru Minecraft Sürümü
Her yeni Minecraft sürümü daha çok RAM ister. 1.8 en hafif olsa da modern pluginler çalışmaz. Tatlı nokta 1.18 - 1.19. 1.20+ daha güzel özelliklere sahip ama RAM tüketimi 200-300 MB fazla.
| Sürüm | Minimum RAM | 1 GB''da uygun mu? |
|---|---|---|
| 1.8.8 | 512 MB | ✓ Çok uygun |
| 1.12.2 | 768 MB | ✓ Uygun |
| 1.16.5 | 900 MB | ◐ Sıkı |
| 1.18.2 | 1.1 GB | ◐ 2 GB''da rahat |
| 1.19.4 | 1.2 GB | ✗ 1 GB''da zor |
| 1.20.4 | 1.3 GB | ✗ 2 GB önerilir |
| 1.21+ | 1.5 GB | ✗ 3 GB önerilir |
# Adım 3: ViaVersion ile Çoklu Client Desteği
Eski bir sürümü sunucu tarafında kullanıp modern clientların da bağlanmasını sağlamak için ViaVersion pluginleri kullanılır:
- ViaVersion: Eski sunucuda yeni client açması
- ViaBackwards: Yeni sunucuda eski client açması
- ViaRewind: 1.8 ve altına destek (nadiren gerekli)
1.18 sunucuda ViaVersion + ViaBackwards yüklerseniz, 1.16''dan 1.21''e kadar tüm oyuncular bağlanır. Ekstra RAM tüketimi 20-40 MB.
# Adım 4: Hafif Plugin Stack''i
1 GB''da çalışacak bir Survival paketi için gerekli minimum pluginler:
# Zorunlu Pluginler (10 adet)
- LuckPerms: Permissions — 15 MB RAM
- EssentialsX: Temel komutlar — 25 MB
- EssentialsXChat: Chat format — 8 MB
- Vault: API soyutlama — 3 MB
- ViaVersion: Çoklu client — 20 MB
- CoreProtect: Log/rollback — 15 MB
- Matrix (lite config): Anti-cheat — 30 MB
- PlaceholderAPI: Dinamik değişken — 5 MB
- TAB (basic): Tab listesi — 12 MB
- ProtectionStones: Arsa sistemi — 10 MB
Toplam ~150 MB RAM tüketimi. Server çekirdeği ile birlikte 600-700 MB. Hala 300 MB oynama alanı var.
# Kaçınılması Gereken Ağır Pluginler
- Dynmap / BlueMap: 150-300 MB RAM, tek başına
- WorldEdit + WorldGuard tam paket: 100+ MB
- Citizens: NPC başına 5-10 MB
- Holograms + DecentHolograms: 40 MB
- AuctionHouse (complex): 50+ MB
- FactionsUUID / Towny: 80+ MB
- Shopkeepers + ShopGUIPlus: 60+ MB
- Skript: Script sayısına göre 50-200 MB
- MMOItems / MythicMobs: 100+ MB
# Adım 5: Aikar''s Flags ile JVM Ayarları
1 GB gibi küçük heap''lerde varsayılan GC ayarları çok kötü performans verir. Aikar''s flags kullanmak zorunludur.
#!/bin/bash
# start.sh — 1 GB RAM için optimize
java -Xms1G -Xmx1G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar paper-1.18.2-XXX.jar nogui
# Adım 6: paper-global.yml Tuning
Paper''ın config/paper-global.yml dosyasında memory üzerinde en çok etki eden ayarlar:
chunk-loading:
autoconfig-send-distance: true
enable-frustum-priority: true
max-concurrent-sends: 1
min-load-radius: 2
player-max-concurrent-loads: 10.0
target-player-chunk-send-rate: 50.0
chunk-loading-advanced:
auto-config-send-distance: true
world-settings:
default:
chunks:
auto-save-interval: 6000 # 6000 tick = 5 dk
delay-chunk-unloads-by: 10s
max-auto-save-chunks-per-tick: 24
collisions:
max-entity-collisions: 4 # varsayılan 8
entities:
spawning:
per-player-mob-spawns: true # mob spawn''ı oyuncu başına sınırlı
misc:
prevent-moving-into-unloaded-chunks: true
# Adım 7: spigot.yml Entity Limitleri
Eski spigot.yml ayarlarından hâlâ kritik olanlar:
world-settings:
default:
entity-tracking-range:
players: 48 # varsayılan 48
animals: 32 # varsayılan 48 → 32''ye düşürüldü
monsters: 32 # varsayılan 48 → 32''ye düşürüldü
misc: 16 # varsayılan 32 → 16''ya
other: 32
entity-activation-range:
animals: 16 # varsayılan 32
monsters: 16 # varsayılan 32
raiders: 48
misc: 4 # varsayılan 16
mob-spawn-range: 4 # varsayılan 8
view-distance: 6 # varsayılan 10
simulation-distance: 4 # varsayılan 10
# Adım 8: bukkit.yml Mob ve Spawn Ayarları
spawn-limits:
monsters: 30 # varsayılan 70
animals: 6 # varsayılan 10
water-animals: 2 # varsayılan 5
ambient: 1 # varsayılan 15
chunk-gc:
period-in-ticks: 400 # 20 saniyede bir
ticks-per:
animal-spawns: 400
monster-spawns: 10
autosave: 6000 # 5 dk
monsters: 30 ayarı sunucunuzda mob sayısını %60 düşürür. Oyuncular köyler boş diye şikayet ederse 40''a çıkarabilirsiniz; 50 üstü tekrar ağırlaştırır.
# Adım 9: server.properties Optimizasyonu
# Düşük RAM için kritik ayarlar
view-distance=6
simulation-distance=4
max-players=15
network-compression-threshold=256
entity-broadcast-range-percentage=100
enable-status=true
use-native-transport=true
enable-command-block=false
spawn-protection=0
sync-chunk-writes=false
# Adım 10: World Yönetimi
1 GB RAM''de birden fazla dünya açmayın. Nether ve End''i silin veya kapatın. Her ek world 50-100 MB RAM tüketir.
# bukkit.yml
worlds:
world_nether:
generator: null
world_the_end:
generator: null
Dünya boyutunu da sınırlayın:
# Border ayarla — 2000x2000 blok
/worldborder set 4000
# Adım 11: Plugin Konfigürasyonu
Her plugini varsayılan ayarla bırakmak 1 GB''da hataların kaynağıdır. Her plugin''in config''inde özellikle kapatmanız gereken ayarlar:
# EssentialsX
remove-god-on-disconnect: true
auto-afk: 300 # 5 dk sonra AFK
social-spy: false
warn-on-build-disallow: false
sign-storage-limit: 50
starting-balance: 0
minimum-pay-amount: 0.01
# Gereksiz özellikler kapatma
match-colors: false
teleport-delay: 0
death-messages: true
# CoreProtect
disable-world-edit: true # WorldEdit log kapatma
check-updates: false # Update check kapatma
use-mysql: false # Küçük sunucuda SQLite daha hafif
rollback-items: true
default-radius: 10 # varsayılan 100 çok geniş
# Matrix (Anti-cheat)
general:
debug: false
async-check-optimization: true
checks:
killaura:
enabled: true
# Sadece temel check''leri aç, ileri olanları kapat
max-attacks-per-second: 20
angle-check: true
post-check: false # heavy check, kapat
# Adım 12: Swap Dosyası (Zorlu Çözüm)
1 GB RAM''li bir VPS''de Linux swap alanı yoksa memory pressure''a dayanamaz. Swap ekleme:
# 2 GB swap ekle
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Kalıcı yapmak için fstab''a ekle
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Swappiness ayarı (Minecraft için 10 ideal)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Adım 13: İzleme ve İyileştirme
Ayarları yaptıktan sonra sunucunun gerçekten iyileşip iyileşmediğini ölçün:
# Sunucu konsolunda:
/tps # TPS değeri — 20 ideal, 18+ kabul
/mem # Memory kullanımı — %80 altı ideal
/spark profiler --timeout 60 # 1 dakikalık profil
Spark raporu en önemli teşhis aracıdır. Profili analiz etmenin en kolay yolu:
Düşük RAM''li sunucunuzdan aldığınız Spark raporunu yükleyin; hangi plugin''in CPU tükettiğini anında gösterelim ve kapatmanız gereken ayarları önerelim.
# 2 GB''a Çıktığınızda Ne Değişir?
1 GB''dan 2 GB''a geçiş en büyük performans sıçramasıdır. 2 GB''da ek olarak yapabilecekleriniz:
- Plugin sayısı 20''den 35''e çıkabilir
- Nether ve End açılabilir
- View-distance 8''e çıkabilir
- Oyuncu limiti 25''e çıkabilir
- Dynmap''in lite sürümü denenebilir
- MySQL kullanılabilir (SQLite yerine)
- Small Citizens NPC sunumu
- Basic ekonomi + shop plugini
# Ne Zaman 4 GB''a Yükselmeli?
Şu sinyallerden birini görürseniz 4 GB''a yükselme zamanı:
- Ortalama 15+ oyuncu online
- Mini-game, SkyBlock veya Faction moduna geçiş planı
- TPS sürekli 17''in altında
- Sunucu 10 dakikada bir kilitleniyor
- Log''da
OutOfMemoryError - Oyuncular lag çok yüksek diye şikayet ediyor
- Dynmap gibi UI plugini eklemek istiyorsunuz
2 GB, 4 GB ve daha büyük RAM seçenekleri, NVMe SSD, günlük yedek ve 7/24 destek ile Minecraft sunucunuzu yükseltin.
# Görsel Plugin Alternatifleri (Düşük RAM''de)
Paketinizde görsel bir şeyler olsun istiyorsanız ama RAM''iniz dar. Hafif alternatifler:
| Ağır Plugin | Hafif Alternatif | RAM Farkı |
|---|---|---|
| Dynmap | Pl3xMap (Paper için daha hafif) | 150 MB → 50 MB |
| DecentHolograms | CMI''nin minik hologram modülü | 40 MB → 10 MB |
| Citizens | Fake NPC (tek oyuncu başına) | 25 MB → 5 MB |
| WorldEdit tam paket | FAWE Lite | 80 MB → 30 MB |
| FeatherBoard | TAB (scoreboard modülü) | 35 MB → 12 MB |
| MMOItems | ItemsAdder Lite | 100 MB → 30 MB |
# Sunucu Kapasitesi Hesaplama Formülü
1 GB RAM''de kaç eşzamanlı oyuncu taşınabileceğini hesaplamak için:
Kullanılabilir RAM = Toplam RAM - Java overhead (200 MB) - Paper (300 MB) - Pluginler (~150 MB)
= 1024 MB - 200 - 300 - 150
= 374 MB
Her oyuncunun ortalama RAM tüketimi:
- Inventory ve data: ~10 MB
- Yüklü chunk''lar: ~15-25 MB (view-distance''a bağlı)
- Entity''ler: ~5 MB
- Toplam: ~30-40 MB/oyuncu
Maksimum oyuncu sayısı = 374 / 35 = ~10 oyuncu
Yani 1 GB''da pratik tavan 10 oyuncu. 15 oyuncu deneyebilirsiniz ama son derece dar kalır. 2 GB''a çıkınca bu sayı 25-30''a çıkar.
# VPS Tedarikçisi Seçerken Dikkat
1 GB RAM''li ucuz bir VPS ararken fiyat dışında bakılacak:
- Disk NVMe mı, SSD mi, HDD mi? NVMe olmalı. HDD''de Minecraft chunk yükleme berbat olur.
- CPU frekansı: 2.5 GHz altı Minecraft için yetersiz. 3 GHz+ ideal.
- Network: 1 Gbps bağlantı şart; shared 100 Mbps''de ping sorunları
- Lokasyon: Türk oyuncular için İstanbul/Frankfurt. Amerika sunucusu 120+ ms ping demek.
- DDoS koruması: Ucuz VPS''lerde genelde yok; Minecraft sunucu saldırı çeker
- Bandwith: Sınırsız veya en az 1 TB/ay olmalı
- IPv4: IPv6-only VPS''ler Minecraft için sorun çıkarır
# Sık Sorulan Sorular
# Sunucuma oyuncular girince neden TPS düşüyor?
Her oyuncu yüklü chunk sayısını artırır. View-distance 6 ile her oyuncu ~169 chunk yükler; 10 oyuncu = 1690 chunk. 1 GB RAM bu kadar chunk''ı kolay kolay tutamaz, GC sürekli çalışmaya başlar ve TPS düşer. Çözüm: view-distance''ı 4''e kadar düşürebilirsiniz (her oyuncu 81 chunk).
# Paper yerine Purpur kullanmak RAM tasarrufu sağlar mı?
Marjinal olarak. Purpur''ın ek optimization flag''leri RAM''i 5-10% daha iyi kullanabilir ama kritik fark yaratmaz. Esas kazanç view-distance, entity limits ve plugin seçiminden gelir. Paper''ı kullanmak ekosistem uyumu açısından daha güvenli.
# Swap space eklemek gerçekten yardımcı olur mu?
Memory pressure'' yumuşatır ama performansa ciddi şekilde zarar verir. Swap kullanılmaya başlandığında Minecraft chunk yüklemede saniyeler sürer; oyuncular kelimenin tam anlamıyla donmuş görünür. Swap''i son çare olarak tutun, gerçek çözüm RAM artırmaktır. Swap kullanım oranını free -h ile takip edin; sıfır olmalı.
# G1GC yerine ZGC kullansam daha iyi olur mu?
ZGC (Java 15+) düşük pause-time''a odaklı ama minimum 2 GB heap gerektirir. 1 GB''da çalışmaz; en iyi G1GC''dir. 4 GB+ RAM''li sunucular için ZGC veya Shenandoah GC alternatifleri değerlendirilebilir.
# Pluginleri devre dışı bırakmadan disabled duruma getirsem?
Plugin.yml''de enabled: false yazmak plugin''in yüklenmesini engeller ama yine memory''de jar parse edilir. Gerçek tasarruf için jar''ı plugins/disabled/ gibi başka bir yere taşıyın; Paper bunu hiç taramaz.
# 1 GB''dan 2 GB''a Geçiş Timing''i
1 GB''da kalmak hep bir işe yaramaz. Hangi sinyalleri görünce 2 GB''a geçiş düşünmelisiniz?
- Ortalama 7-10 online oyuncu kalıcı hale geldi
- Plugin sayısı 15''ten 20''e yaklaştı
- Sunucu boş olsa bile RAM %70''in üstünde
- Log''da
Can''t keep upmesajları sıklaştı - Chunk loading süresi 5 saniyeyi geçti
- Spark profili %30+ GC zamanı gösteriyor
2 GB''a geçiş fiyatı genelde 100 TL''den 200 TL''ye çıkar. Bu değer için sağlanacak rahatlık kayda değerdir: plugin sayısını artırabilirsiniz, Nether/End açabilirsiniz, view-distance''ı 8''e çıkarabilirsiniz.
# Ücretsiz İyileştirmeler: Sıfır Maliyetli
RAM''i artırmadan yapabileceğiniz tüm optimizasyonlar:
- Aikar''s flags ekle — +%15 performans
- View-distance 10''dan 6''ya düşür — +%35 RAM tasarruf
- entity-activation-range düşür — +%10 CPU tasarruf
- unnecessary pluginleri çıkar — %5-15 iyileşme
- Paper''a geç (Spigot''tan) — +%20 performans
- Chunky ile preload dünya — chunk generation spike''ları gider
# MySQL vs SQLite: Düşük RAM''de Hangisini Seçmeli?
Plugin paketinde veritabanı seçimi RAM kullanımını doğrudan etkiler.
# SQLite avantajları (1 GB için)
- RAM kullanımı neredeyse sıfır — her plugin kendi .db dosyasını açar
- Kurulum yok — hiçbir servis çalışmaz
- Single file — backup kolay
- Connection pool yok — overhead minimum
# SQLite dezavantajları
- Concurrent write yavaş — 10+ oyuncu aynı anda shop kullanınca lag
- Büyük veritabanlarında VACUUM operasyonu kilitlenme yapar
- Cross-plugin sorgu yok — her plugin kendi dosyasında
- BungeeCord ağında paylaşılabilir değil
# MySQL/MariaDB (MariaDB daha hafiftir)
MariaDB ayrı bir servis olarak 150-250 MB RAM tüketir. 1 GB toplamınızın %15-20''sini. Ama connection pool, concurrent write ve performans açısından avantajı büyük. 2 GB RAM''de MariaDB kullanabilirsiniz; 1 GB''da SQLite''a sadık kalın.
# Chunk Pre-Generation: Dünyayı Önceden Oluşturmak
Chunk generation çok ağır bir işlem. Her yeni chunk üretildiğinde 50-200ms CPU spike olur. Oyunun akışı için dünyayı önceden oluşturmak kritik.
# Chunky plugin ile
/chunky radius 2000
/chunky start
# 2000x2000 bloklık alan background''da oluşturulur
# Progress
/chunky progress
# Tamamlanana kadar (saatler alabilir)
/chunky pause # duraklama
/chunky continue # devam
Chunky, chunk generation''ı tick''ler arasında böler; sunucu aktif oyun sırasında TPS etkilemez. Ancak yine de gece veya düşük oyuncu sayısında çalıştırmak en iyisidir.
# Özet: 1 GB''da Hayatta Kalmak
1 GB RAM''li sunucuda profesyonel plugin paketi çalıştırmak için: Paper çekirdeği + 1.18 sürümü + Aikar''s flags + view-distance 6 + 15 hafif plugin + paper.yml tuning + spigot.yml entity limit + bukkit.yml spawn limit + 2 GB swap. Bu formül ile 5-10 oyunculu bir Survival sunucusu 18-19 TPS''de stabil çalışır. Görsel plugin''leri hafif alternatifleriyle değiştirin, VPS tedarikçisini NVMe + 3 GHz+ CPU kriterine göre seçin. SQLite kullanın, dünyayı Chunky ile önceden oluşturun. Ancak unutmayın: 1 GB üst sınırdır, uzun vadede sunucunuz büyüyünce en azından 4 GB''a yükseltmek kaçınılmaz olacaktır. O zamana kadar bu rehberle başlayabilirsiniz.
1 GB RAM''li bir sunucu için en önemli disiplin: gereksiz her şey kapalı olmalı. Modern Minecraft sunucu ekosistemi daha fazlası = daha iyi zihniyetine teşvik eder; 100 plugin''li sunuculara alışırsınız. Ancak 1 GB''da az ama verimli kalmak zorundasınız. Her plugin''in gerçekten gerekli olup olmadığını sorgulayın.
# Kaynak İzleme Komutları
1 GB''lık bir sunucuda her megabyte değerli. Performans izleme komutlarını öğrenin:
# RAM kullanımı
free -h
# Top süreç
top -o %MEM
htop # görsel alternatif
# Java process memory
jps
jcmd <pid> GC.heap_info
# Disk doluluk
df -h
du -sh plugins/ world/ logs/
# CPU ortalama
uptime
# Sunucu içinde
/tps
/mem
/spark health
Bu komutları günlük kontrol etmek sunucunuzun nabzını tutmanın en iyi yoludur. Anormal bir değer gördüğünüzde derhal araştırın; kök nedeni bulun.
Küçük bir sunucuyu optimize etmek, büyük bir sunucuyu başlatmak kadar zor ama farklı bir beceri. Düşük kaynakla çalışma disiplini size sonraki büyük sunucularınızda paha biçilmez bir tecrübe kazandırır. Kısıtlı ortamlarda ustalaşan biri, geniş kaynaklı ortamlarda mutlaka ustalaşır.
Uzun vadede 1 GB RAM sunucu yönetmek size bir sürü değerli ders verir: her pluginin bedeli, yapı önemi, hafif alternatifler. Bu deneyim daha büyük sunuculara geçtiğinizde daha bilinçli kararlar almanızı sağlar. Ucuz başlamanın uzun vadeli değeri vardır. 4 GB''a yükseldiğinizde o zamana kadar öğrendikleriniz parayla ölçülemez.
Türkiye lokasyonlu NVMe SSD hosting ile 4 GB''dan başlayan paketler için hosting sayfasını inceleyin