Bu rehberde neler var?
- Elinizdeki server dosyalarına uygun FreeBSD sürümünü seçme mantığı.
- Her kanalın ayrı süreç olması nedeniyle çekirdek sayısının nasıl hesaplandığı.
- MySQL InnoDB buffer pool sınırının toplam RAM'e göre paylaştırılması.
- screen ile süreçleri arka planda tutma ve günlük mysqldump yedeği alma.
Metin2 pvp server açmaya çalışan çoğu kişi, ilk engelini işletim sistemi sürümünde yaşar. Elindeki server dosyaları FreeBSD 11.4 için derlenmişken sunucuya FreeBSD 14.0 kurulmuşsa, karşınıza çıkan hata mesajları oyunla değil kütüphane uyumsuzluğuyla ilgilidir. Bu rehberde sürüm seçimini, kanal mimarisinin kaynak ihtiyacını ve MySQL bellek planlamasını anlatıyoruz.
Neden FreeBSD?
Metin2 server dosyaları klasik olarak FreeBSD üzerinde derlenmiştir. Piyasadaki hazır dosya paketlerinin büyük bölümü hâlâ bu geleneği sürdürür. Linux üzerinde çalıştırmayı deneyen kurulumlar mevcuttur, ancak elinizdeki dosyalar FreeBSD binary’leri içeriyorsa doğru yol sürümü eşleştirmektir.
| FreeBSD sürümü | Tipik kullanım | Not |
|---|---|---|
| 11.4 | Eski dosya paketleri | En yaygın eski sürüm |
| 12.2 | Orta yaş dosyalar | Geniş uyumluluk |
| 13.0 | Güncel dosyalar | Yeni derlemeler için tercih edilir |
| 14.0 | Sıfırdan derleme | Kendi kaynağınızı derliyorsanız |
💡 Hangi sürüme ihtiyacınız olduğunu bilmiyorsanız, dosya paketinizle gelen
READMEveya derleme betiklerine bakın. Genellikleuname -rçıktısı orada belirtilir.
Kanal Mimarisi ve Çekirdek İhtiyacı
Metin2’de bir kanal tek bir sürece karşılık gelmez; her kanal, harita gruplarını aralarında paylaşan birkaç oyun sürecinden oluşur. Bu, kaynak planlamasını doğrudan etkiler:
- Ymir ya da Gameforge bu süreçlerin çekirdek davranışına dair resmi bir belge yayımlamıyor
- Kanal ve süreç sayısı arttıkça çekirdek sayısı önem kazanır
- Aynı çekirdek sayısında yüksek frekanslı bir işlemci daha rahat nefes aldırır
Önerilen çekirdek sayısı ≈ (kanal sayısı) + (MySQL için 2) + (sistem için 1)
Dört kanallı bir sunucu bu hesapla yaklaşık 7 çekirdek ister; pratikte 8-10 çekirdekli bir paket rahat çalışır.
MySQL Bellek Planlaması
Metin2’de veritabanı, oyuncu sayısı arttıkça belleği hızla doldurur. Pratik dağılım şudur:
| Toplam RAM | MySQL’e ayrılan | Oyun süreçleri | Uygun oyuncu sayısı |
|---|---|---|---|
| 8 GB | 2-3 GB | 4-5 GB | 100-300 çevrimiçi |
| 12 GB | 4 GB | 7 GB | 300-800 çevrimiçi |
| 16 GB | 5-6 GB | 9-10 GB | 800+ çevrimiçi |
my.cnf içinde InnoDB buffer pool boyutunu açıkça sınırlayın:
[mysqld]
innodb_buffer_pool_size = 4G
innodb_flush_log_at_trx_commit = 2
max_connections = 500
⚠️ Sınır koymazsanız MySQL zamanla mevcut belleğin büyük bölümünü tutar ve oyun süreçleri takılmaya başlar. Bu, “sunucu neden akşamları donuyor” sorusunun en yaygın cevabıdır.
Dosya İzinleri ve Çalıştırma
FreeBSD üzerinde server dosyalarının çalıştırma bitine ihtiyacı vardır:
chmod +x /usr/metin2/game/ch1/game
chmod +x /usr/metin2/db/db
Sunucuyu root ile değil, ayrı bir kullanıcıyla çalıştırın. Süreçlerin arka planda kalması için screen veya tmux kullanın:
pkg install screen
screen -S ch1
cd /usr/metin2/game/ch1 && ./game
Ctrl + A ardından D ile oturumdan ayrılabilirsiniz.
Oyuncu Sayısına Göre Paket Seçimi
Aşağıdaki tablo, oyun ve veritabanının aynı sunucuda çalıştığı standart bir kurulum varsayar:
| Ölçek | Önerilen paket | Donanım |
|---|---|---|
| Test / derleme | TR-VDS-4 | 4 vCPU, 6 GB RAM, 55 GB NVMe SSD |
| 100-300 çevrimiçi · 2 kanal | R9 - 7 | 6 vCPU Ryzen, 10 GB RAM, 150 GB NVMe SSD |
| 300-800 çevrimiçi · 3-4 kanal | R9 - 12 | 10 vCPU Ryzen, 20 GB RAM, 320 GB NVMe SSD |
| 800+ çevrimiçi · çok kanallı | R9 - 14 | 12 vCPU Ryzen, 32 GB RAM, 400 GB NVMe SSD |
800 çevrimiçi oyuncunun üzerine çıktığınızda veritabanını ikinci bir sunucuya taşımayı değerlendirin; sunucularınız arasındaki iç trafik ücretlendirilmez.
Yedekleme: İhmal Edilen Kritik Adım
Bir Metin2 sunucusunun en değerli varlığı karakter veritabanıdır. Günlük otomatik yedek almadan sunucu açmayın:
mysqldump --single-transaction -u root -p player > /backup/player_$(date +%F).sql
Bu komutu cron ile günlük çalıştırın ve yedekleri farklı bir sunucuda saklayın. Otomatik yedekleme kurulumunun ayrıntıları için Linux sunucuda otomatik yedekleme yazımıza bakabilirsiniz.
Saldırılara Karşı Hazırlık
Metin2 pvp sunucuları, özellikle açılış ve etkinlik günlerinde saldırı hedefidir. Sunucu tarafında yapabilecekleriniz sınırlıdır; hacimsel saldırılar altyapı seviyesinde filtrelenmelidir. Barındırma sağlayıcınızın saldırı anında IP’nizi kapatıp kapatmadığını önceden öğrenin. Bu, açılış gününüzü kurtaran ayrıntıdır.
Sonuç
Metin2 server kurulumu, doğru FreeBSD sürümüyle başlar ve doğru bellek dağılımıyla ayakta kalır. Kanal başına düşen işlemci payı, MySQL’e ayrılan bellek ve düzenli yedek, sunucunuzun ömrünü belirleyen üç ayardır.
👉 FreeBSD kurulu sunucu seçenekleri için Metin2 sunucu kiralama sayfamıza, tüm oyun sunucusu paketleri için oyun sunucusu kiralama sayfamıza göz atın.