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
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.....
 
Son düzenleme:

Blitz

Zombi Geldi, Beni Yedi

Discord:

SwapsKe#6314

Katılım
22 Ekim 2016
Mesajlar
270
Elmaslar
147
Puanlar
13.820
Yaş
27
Eline Sağlık Kardeşim.
 

canhucko

Creeper Evimi Patlattı

Discord:

Can Öztürk#6167

Katılım
19 Ekim 2014
Mesajlar
419
Elmaslar
186
Puanlar
14.075
Yer
Türkiye
Minecraft
KnightTR
Güzel yazmışsın ve sanırım devam edeceksin. Eline sağlık.
 

zRodsh

Play.SoulCubeNw.Com
Katılım
21 Mart 2020
Mesajlar
131
Elmaslar
77
Puanlar
0
Minecraft
zRodsh
Eline sağlık güzel bir konu olmuş. Okurken çok keyif aldım.
 

Algos

Bir Kömür Göründü Kaptanım!

Discord:

Algos#8991

Katılım
21 Mart 2019
Mesajlar
165
Elmaslar
106
Puanlar
2.310
Yer
Kayseri
Minecraft
Algos,749
Bilmediğim şeyler öğrenmeye devam ediyorum.
Makale için teşekkürler güzel olmuş.
 

FatihE

Java Dev

Discord:

Fatih#1469

Katılım
19 Ağustos 2019
Mesajlar
153
Elmaslar
115
Puanlar
1.290
Yer
Ankara
Minecraft
Fatih
Yararlı bir rehber olmuş :).
 

mainstein

Somon Balığı Selam Vermeye Geldi

Discord:

Mainstein

Katılım
4 Nisan 2020
Mesajlar
10
Elmaslar
2
Puanlar
0
Yaş
23
Minecraft
Mainstein
Yararlı olmuş eline sağlık
 
S

Silinen üye 79251

Ziyaretçi

Şu son zamanlarda sunucu sahiplerinin yaşamış olduğu en temel sorunların çözümünü konu içerisinde ele almanız hoş olmuş ki elinize sağlık ?
 

Castle Network

Zombi Geldi, Beni Yedi
Katılım
17 Şubat 2016
Mesajlar
274
Elmaslar
153
Puanlar
13.820
Yaş
108
günümüz sunucularının sıkça yaşadığı bir problem gerçekten forumdaki en yararlı rehberlerden bu konu sayesinde çoğu sunucu klasik problemlerden kurtulacaktır sağolun
 

oliver3765

Somon Balığı Selam Vermeye Geldi
Katılım
12 Temmuz 2016
Mesajlar
10
Elmaslar
4
Puanlar
0
Yaş
25
Güzel yazılmış, detaylandırılabilir özellikle tespit aşamasından sonra çözüme yönelik.
 

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
Eline Sağlık Kardeşim.
Teşekkürler :))
Güzel yazmışsın ve sanırım devam edeceksin. Eline sağlık.
Hala toparlamaya çalışıyorum. Rehberi tamamlama niyetindeyim.
Eline sağlık güzel bir konu olmuş. Okurken çok keyif aldım.
Teşekkürler :))
Bilmediğim şeyler öğrenmeye devam ediyorum.
Makale için teşekkürler güzel olmuş.
Daha bitmedi ama yeni şeyler katabildiysem ne mutlu bana :))
Yararlı bir rehber olmuş :).
Teşekkürler :))
Yararlı olmuş eline sağlık
Teşekkür Ederim :)))

Şu son zamanlarda sunucu sahiplerinin yaşamış olduğu en temel sorunların çözümünü konu içerisinde ele almanız hoş olmuş ki elinize sağlık ?
Biterse daha tatlı bir hal alacak bakalım :)))
günümüz sunucularının sıkça yaşadığı bir problem gerçekten forumdaki en yararlı rehberlerden bu konu sayesinde çoğu sunucu klasik problemlerden kurtulacaktır sağolun
Maalesef öyle. Umarım kurtulurlar :))
Güzel yazılmış, detaylandırılabilir özellikle tespit aşamasından sonra çözüme yönelik.
Elimden geldiğince detaylandırmaya çalışıyorum. Tamamen bittikten sonra önerilere açığım :)))

İşlemci konusu eklenmiştir :)))​
 

iTaKka

Creeper Evimi Patlattı

Discord:

๖̶̶̶ζ͜͡iTaKka๖̶̶̶ζ#4205

Katılım
19 Ekim 2016
Mesajlar
416
Elmaslar
143
Puanlar
6.840
Minecraft
iTaKka
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...
 

Atrax

Somon Balığı Selam Vermeye Geldi

Discord:

Atrax#9988

Katılım
11 Nisan 2020
Mesajlar
16
Elmaslar
13
Puanlar
0
Yaş
20
Minecraft
iCannK
Güzel konu olmuş.
 

TorkauL

CAPE NETWORK OYUN HİZMETLERİ
Emektar
Sunucu Sahibi

Discord:

torkaul

Katılım
15 Mayıs 2017
Mesajlar
547
Elmaslar
470
Puanlar
15.525
Yaş
21
Discord İzni
Minecraft
TorkauL
Özellikle sunucu işine yeni girecek olan arkadaşlar için gayet yararlı ve emek verilmiş bir konu.
Elinize, emeğinize sağlık :)
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı