Sol Reklam
Sağ Reklam

Rehber Sunucu Optimizasyonu (Donanım, Yazılım ve Eklenti Bileşimi)

Durum
Mesaj gönderimine kapalı.

SYN_T3SL4

If you can't handle it you will win nothing !

Discord:

Halil#4439

Katılım
11 Mart 2016
Mesajlar
991
Elmaslar
911
Puanlar
19.300
Yaş
22
Yer
Aydın / Kuşadası
Minecraft
SYN_T3SL4
Bilmediğim bir çok şeyi sayende öğrenmiş oldum, anlatım biçimi ve kullandığın kelimeler çok anlaşılır ve sade ?
Rehberin devamını sabırsızlıkla bekliyorum...
Teşekkürler :)))
Güzel konu olmuş.
Teşekkür Ederim :))
Özellikle sunucu işine yeni girecek olan arkadaşlar için gayet yararlı ve emek verilmiş bir konu.
Elinize, emeğinize sağlık :)
İlerleyen dönemlerde daha sağlıklı sunucular görmek adına :))

Bellek, Depolama Birimi ve İşletim Sistemi konuları eklenmiştir....
 

Arexios

Somon Balığı Selam Vermeye Geldi

Discord:

İsmail

Katılım
6 Mayıs 2020
Mesajlar
10
Elmaslar
1
Puanlar
885
Yaş
23
Güncelleme Tarihi: 23.04.2020 -- 17.02
Güncelleme Notu: Kaynakça eklendi.

Rehber İçeriği:
• Önsöz,
• Lag,
• İşlemci,
• Bellek,
• Depolama Birimi,
• İşletim Sistemi,
• Bukkit, Spigot, PaperSpigot, TacoSpigot, Flux....
• Java Flagları,
• Sunucu Ayarları,
• Eklenti Ayarları,
• Timings,
• Dipnot,
• Kaynakça,

ÖNSÖZ:

Bu teknik yazıya girmeden önce birkaç öneride bulunmak istiyorum sunucu sahiplerine, paket yapımcılarına kısacası bu tarz işlerle uğraşan herkese. Bir hatayı çözmenin ilk adımı hatayı anlamaktan geçer. Bu yüzden de yapılacak olan ilk şey bu hatanın neyden ve ne şekilde kaynaklandığını anlamaktır.
İki çeşit hatadan bahsetmek mümkün olur bu durumda da:
• Sistemsel hata,
• Mantıksal hata.

Sistemsel hatayı istenilen bir sistemin hiç çalışmaması ya da kesik bir şekilde çalışması olarak tanımlayabiliriz. Bu durumda yapmanız gereken şey düzgün bir günlük (Log) çıktısını ya da Timings raporunu incelemek olacaktır.

Mantıksal hata ise sistemin istenilen gibi çalışmaması desek yeridir. Siz sistemden " x " çıktısını almak isterken, sistem size " y " çıktısı veriyorsa mantıksal bir hata var demektir.

Hataları çözme eylemine girişirken de ne kadar düzgün bir kaynak varsa elinizde o kadar kısa sürede hatanın sebebini keşfedebilirsiniz. Bu konuda sizlere tavsiyem ConsoleSpamFix eklentisi olacaktır. Eklentiyi kurup eklenti yükleme mesajlarını, yoksaymak istediğiniz uyarıları (WARN) gözden gelerek düzgün bir günlük (Log) çıktısı elde etmiş olursunuz. Bu da sizi çözüme ulaştıracak yolu kısaltacaktır.

LAG:

Lag kökeninde bir "Arz-Talep" ilişkisine dayanır. Aslında internetin tüm olayı buna bağlıdır. Bir talebe karşılık buna verilen cevap üzerine kurulu bir sistem düşünün. Aslında gecikme denmesinin sebebi de budur. Siz bir oyuncu olarak sunuculardan herhangi birine bağlandığınızda aslında o sunucuya bir talepte bulunuyorsunuz. Bunu üç şekilde inceleyebiliriz sunucu içerisindeki arz-talep dengesi. sunucu ve oyuncu arasındaki arz-talep dengesi. oyuncunun kendi içerisindeki arz-talep dengesi.

Sunucu içi:
Aslında birçoğunuz bu arz-talep dengesini TPS olarak biliyorsunuz. Bu durumu şu şekilde detaylandırmak hoş olacaktır. Bir vds, vps, dedicated kiraladınız ya da kendi bilgisayarınızda bir sunucu açmak istediniz. Bir craftbukkit, spigot ya da forklardan herhangi birini seçip indirdiniz. Ardından bir başlatma skripti ile bu dosyayı çalıştırdınız. İşte buradan sonra devreye TPS gibi ölçeklendirilmiş bir gecikme değeri giriyor. Bilgisayarınız ya da kiraladığınız sunucu bünyesinde donanım (işlemci, bellek, depolama birimi) ile bu sunucunun taleplerini yerine getirmeye başlıyor. İndirmiş olduğunuz spigot (kolaylık olması bakımından ele aldım.) artık bilgisayarınızla olan iletişimindeki aksaklıkları size TPS (Ticks Per Second) birimiyle iletmeye başlıyor. Bu değer size yapılması gereken işlem yapılırken donanımın ne kadar zorlandığını daha doğrusu ne kadar vakit harcadığını gösterir. Bu değerin düşmesi 1 saniye içerisinde gerçekleşen işlemlerin sayısında bir azalma olduğunun göstergesidir. Yani bu değer ne kadar azalırsa sisteminiz o kadar yorulacaktır.

TPS Ölçeği:
20.0 = Her şey yolunda.
19.95-19.99 = Göz ardı edilebilir tps kaybı.
18.5-19.94 = Rahatsız edici olabilir ancak oynanışı etkilemez.
16.0-18.4 = Acilen düzeltilmesi gereken seviyeler.
16.0 ve aşağısı = Akıcı oyun sağlayamaz...

Sunucu - Oyuncu:
Sunucu tarafını hallettiğimize göre sıra geldi sunucu - oyuncu arasındaki arz-talep ilişkisine. Bunu da kısaca Ping olarak adlandırabiliriz. Bir oyuncu sunucunuza bağlanmak için bilgisayarınıza ya da uzaktaki sunucunuza talep gönderir. Sunucunuz ya da bilgisayarınız bu talebi işler ve işleme sonucunu oyuncuya geri gönderdiğinde geçen süreyi ping olarak adlandırıyoruz. Pinginiz ne kadar yüksekse sunucudan aldığınız verinin hızı da bir o kadar düşük olacaktır. Localhost yani yerel sunucu kurduğunuzda anlık bir işlem gerçekleştiği için pinginiz genellikle 1 ve civarındadır.
• Bu durumu iyileştirmek için yapabileceğiniz şey alacağınız sunucunun lokasyonuna ve internet altyapısına dikkat etmek olacaktır.

Ping Ölçeği:

1-90 = Her şey yolunda.
91-179 = Savaş durumlarında sıkıntı çıkarabilir.
180-299 = Kırdığınız bloklar geç gelebilir ya da öldürdüğünüz canlılar ölmeyebilir :))
300-499 = Oynanılamaz durumda.
500 ve üstü = Büyük ihtimalle sunucudan otomatik olarak atılacaksınız.

Oyuncu - Oyuncu:
Bir oyuncu olarak herhangi bir sunucuya bağlandığınızı varsayarsak bu sefer de devreye oyun kaliteniz devreye girecektir. Oyun kaliteniz ise tamamen kişisel bilgisayarınızın gücüne bağlıdır ve bu gücün size yansıması ise FPStir. FPS değeriniz ne kadar yüksek olursa oyundaki akıcılıkta o denli yüksek olacaktır.

FPS Ölçeği:

60 ve üstü = Her şey yolunda.
40-59 = Herhangi bir sıkıntı yaşamayacaksın.
25-39 = Render konusunda ufak tefek sıkıntılar olabilir.
15-24 = Yoğun grafiksel bölgelerde zorlanabilir. (Herhangi bir efekt durumunda)
1-10 = Oynanılamaz durumda.

İşlemci:
C
entral Processing Unit -- CPU. Merkezi işlem birimi olarak çevirebileceğimiz bu kutsal elektronik eleman diğer işlem birimlerinden gelen veri akışıyla sistemi yönlendirir. Bir sunucu sahibinin işlemci seçerken dikkat etmesi gereken en önemli etkenler: işlemcinin saat hızı, işlemcinin çekirdek sayısı ve işlemcinin tekli (single) ve çoklu (multi) çekirdek performansıdır.

İşlemci saati hızı kavramı işlemcinin yaptığı işlem sayısına dayanır. İşlemcinin yaptığı her bir hesaplama işlemi 1 Hertz olarak kabul edilir. 3.4 GHz lik bir işlemcimiz olduğunu varsayalım. Bu işlemcinin 1 saniyede yaptığı işlem sayısını bulmak için 1 GHz = 1 000 000 000 Hertz eşitliğinde GHz yerine işlemcimizin saat hızını koyarsak ortaya 3 400 000 000 işlem çıkacaktır. Yani saat hızının yüksekliği doğrudan işlem kapasitesiyle alakalıdır.

İşlemci çekirdek sayısını açıklığa kavuşturabilmek için iş yeri ve çalışan benzetmesine gitmek açıklayıcı olacaktır. İşlemciyi bir iş yeri olarak ele alalım. İşlemci çekirdekleri de bu iş yerindeki çalışanlar olsun. Bu durumda bir işi nihayete erdirmek o kadar kısa sürecektir. Yani ne kadar çalışan varsa hızımızda o kadar artar. Ancak burada önemli olan nokta çalışanlarınıza iş vermeniz. Eğer bir program ya da herhangi bir servis işlemcideki yükü çalışanları yani çekirdekleri arasında dağıtamıyorsa bu durumda hızınızda pekte bir değişiklik olmayacaktır.

Sunucularınızı satın almadan önce aşağıdaki sitelerden tekli ve çoklu çekirdek performanslarını kontrol edebilirsiniz. Ek olarak durumu değerlendirebilmek için normal kullanıcı gözüyle değil bir sunucu gözüyle bakmalısınız neticede siz sunucunuzda oyun oynamayacaksınız sadece gerekli işlemleri yürütecek yazılımları çalıştıracaksınız.

CPU - Benchmark: 1 milyondan fazla test sonucu ve 3100'den fazla işlemci modeliyle kıyaslama hizmetini sürdürmeye devam etmektedir.

User - BenchMark: Sadece işlemci kategorisinde değil bütün donanımlar kapsamında kullanıcıların katkısıyla kıyaslama hizmetine devam etmektedir.

Bellek:
R
andom Access Memory - Rastgele Erişimli Bellek anlamına gelen bu bileşenin amacı veri depolamak ve herhangi bir zamanda bu veriler üzerinde değişikliği sağlamaktır. Bir sunucu sahibinin aldığı sunucunun belleğine bakarken dikkat etmesi gereken en önemli etken o belleğin ne kadar depolama alanına sahip olduğu değildir. Tabii ki bunu da kontrol etmelisiniz ancak bundan daha önemli etkenler mevcuttur. Belleğin DDR yapısı (kaç kanal olduğu) ve CL değeri ve frekansı gibi değerler depolama alanından daha kritik değerlerdir.
Bir belleğin DDR yapısı o bellekteki kanal sayısını belli eder. Öncelikle CL değerinden bahsedelim. CL değeri bir belleğin gecikme değerini gösterir. "Column Address Strobe Latency "ya da "Cas Latency" olarak ifade ettiğimiz bu değer bellek denetleyicisinden bellek modülüne gönderilen komutun ne kadar sürede geri dönüş sağladığını gösterir. Bu değerin yüksekliği bellekteki gecikme süresinin fazla olduğunu gösterir. Online oyunlardaki ping değeri gibi düşünebiliriz bu değeri.
Bir belleğin DDR yapısı o belleğin verimliliğini bizlere gösterir. Hem güç tüketimi açısından hem de performans açısından. Günümüzde en yaygın bellek tipi olan DDR3 bellekler bugün 2133 MHz frekans değerlerine ulaşabilirken DDR4 bellekler 3200 MHz frekans değerlerine kadar ulaşabiliyor. Ancak unutmayalım 3200 MHz CL9 bellek almaktansa 3200 MHz CL7 bellek almak her zaman avantajlıdır.

Peki sunucu sahipleri CL değerlerini göremedikleri halde seçimlerini nasıl yapacaklar?
Bu durumda işlemci bellek konfigürasyonuna bakarak en ideal seçimi sağlayabilirler.

Depolama Birimi:
Öncelikle minecraft sunucusunda depolama birimine yüklenen şeylere göz atmamız gerekecek. Bu durumda elimizde:

• Chunklar,
• Dünya oluşturma,
• FLAT yedekleme,
• Backup.

İşlemleri olur. Chunk yükleme ve yenileme işlemleri dünya ne kadar büyükse o kadar zorlayacak bir işlemdir. Özellikle Survival, Faction, Anarşi gibi oyuncuların oynadıkları zaman zarfının %80'ini haritada gezmekle harcadıklarını düşünürsek ve sunucunun yenilenmesi sırasında bu yükü kaldıran elemanın depolama birimi olduğunu düşünürsek bu durumda SSD avantajı kendisini gösterecektir.
Tüm bunların yanında dünya oluşturma sırasında ya da eklentilerin datalarının (verileri) dosyalarda saklanması işlemi yine depolama biriminin mesuliyetindedir.

Üstteki olaylardan en kritiği backup işlemi. Backup eklentilerine yöneldiğinizde bu eklentiler backup işlemini gerçekleştirdiği ve bu backupla işlemler yaptığı sürece hızlı bir depolama birimine ihtiyaç duyacaksınız.

Depolama biriminin HDD ya da SSD olması bütçenizin bir parçasıdır. Eğer elverişli bir bütçeye sahipseniz seçiminiz SSD'den yana olmalı. Onun haricinde HDD aşırı kötü ya da yavaş değil. Evet kıyas yaptığımızda aradaki fark bariz ancak bu geliştirme süreci sizin sunucunuzun gelişmişliği ve popülerliğiyle de orantılıdır. Yani her şeyin en iyisi olmalı ancak aniden değil. Yavaş yavaş.

İşletim Sistemi:
Her sunucu kurmak isteyen genç arkadaşımız işe Windows ile başlıyor. Eğer yetenekleri ve başarıları sabit kalmayıp gelişirse durumu daha hafif çalışan Linux dağıtımlarından olan CentOS'a bırakıyor. İşin özü CentOS ve daha doğrusu Linux mantığının arkasında stabilite ve daha da önemlisi topluluklar geliyor. Bu topluluklar sayesinden insanlar birbirlerinden yardım almakla kalmayıp linux dağıtımının gelişmesine de katkıda bulunuyorlar.
Windowsta ise durum tam tersi tamamen kapalı bir kaynak olmasından dolayı bir sorun çıktığında bunu sadece windows ekibinin çözebiliyor oluşu söz konusudur.

Linux'un temel anlamda stabil olmasının en önemli sebebi açılışında çok fazla servis çalıştıırmıyor olmasından gelir. Bu da linux kernelinin avantajlarını ortaya koyuyor.

Eğer Windows bir sunucunuz varsa kendinizi linux konusunda eğitmeye başlayın. Bu başarılarınızı daha da arttıracaktır....

Bu yazı ya da bu rehber hem spigot bazlı kaynakların çevirisi hem aikarın tavsiyeleri hem de bunların hepsinin deneyimlerimle birikmesi sonucu oluşturuldu. Bütün rehber bittiğinde bu satırların hemen altına kaynakça eklenmiş olacaktır.


frash23 Anısına.....
Eline Sağlık Çok Güzel Olmuş Denicem
 

ThrustRS

Somon Balığı Selam Vermeye Geldi
Katılım
27 Nisan 2016
Mesajlar
12
Elmaslar
5
Puanlar
0
Yaş
27
Arşivime kaydediyorum, çok yararlı bir konu olmuş hocam. Teşekkürler.
 

Spankly

Odunlara Vur Vur Vur!

Discord:

Orçun#0802

Katılım
17 Haziran 2020
Mesajlar
38
Elmaslar
12
Puanlar
2.020
Yaş
24
Minecraft
Spankly
Ellerine sağlık dostum. :)
 

AlperenX3

❤️

Discord:

alperentr

Katılım
7 Nisan 2020
Mesajlar
3.098
Elmaslar
1.271
Puanlar
11.785
Yer
İzmir
Minecraft
Artgum
Ellerine sağlık sayende Console Spam Fix eklentisini öğrendim en yakın zamanda sunucuma yükleyeceğim teşekkürler.
 

dynamic

Bir Kömür Göründü Kaptanım!
Katılım
23 Nisan 2014
Mesajlar
109
Elmaslar
47
Puanlar
1.925
Yaş
34
Eline sağlık çok yararlı bilgiler.Sayende yeni şeyler öğrendim :)
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı