Sunucusunda lag olanlar

Nish951

Taş Madencisi
Mesajlar
81
En iyi cevaplar
0
Beğeniler
37
Puanları
450
Soru: Lag nedir?
Oyunda veri alışverişinin gecikmesi.

Soru: Sunucumda lag olduğunu nasıl anlayabilirim?
Essentials var ise /lag yazın ve "Current TPS = " kısmında ki sayıya bakın. Bu sayı en fazla 20 olabilir. Eğer 20 ise sunucunuzda hiçbir problem yoktur.
(TPS: Ticks per second yani saniye başına tick, 1 saniye = 20 tick)
NOT: Gecikme sadece sunucunun kasmasından kaynaklanmaz. Oyuncunun veya sunucunun internetiyle ilgili bir sorun olabilir. Veya sunucu internetinin maksimum
kaldırabileceğinden fazla oyuncu almaya çalışıyorsunuzdur.

Soru: Hangi eklentiler lag yapar?
MythicMobs (aşırı ram kullanımı), boosCooldowns (aşırı ram kullanımı), AuthMe (çok fazla üyeniz var ise lag yapar (ani cpu kullanımı)), MCore (ani cpu kullanımı), LWC (özellikle sunucunuzda çok hopper varsa. bunun yerine Lockette önerilir), PEX (PermissionsEX tam olarak lag yapıyor demeyelim ama GroupManager'a kıyasla performansı daha düşük)
Aynı zamanda fark ettiğim bir şey sunucuda ekonomi sistemi kullanılıyorsa ve Vault yok ise (çoğu eklentinin kendi ekonomi sistemi optimize edilmiş bir şekilde kodlanmamış) sunucuda lag oluyor.
Şu komutları kullanmak eğer sunucunuzda çok fazla üye var ise aşırı fazla ram kullanımına sebep olur:
Essentials: /seen <ip>, /baltop
NOT: Eklentiler en son kullandığım haline göre yazılmıştır. Ben kullandıktan sonra yeni bir sürümü çıkmış ve bu hatalar çözülmüş olabilir.

Soru: Eklenti, sunucuya crash verdirebilir mi?
Evet. Sunucuya crash verdirebilen eklentiler:
BlockRegen, Quests, LogIt
NOT: Eklentiler en son kullandığım haline göre yazılmıştır. Ben kullandıktan sonra yeni bir sürümü çıkmış ve bu hatalar çözülmüş olabilir.

Soru: Sunucumda neyin lag yaptığını nasıl anlayabilirim?
Sunucunuz Spigot ise /timings on ve 30 saniye kadar sonra /timings paste
yazdığınızda size bir web adresi verecektir. Bu adreste sunucunuzda hangi eklentinin ve neyin sunucunuzu ne kadar kastırdığı yazar. (CPU kullanımına göredir. Ram ile alakası yoktur)
(/Timings paste den sonra /timings off yapmayı unutmayın. Timings açık durumdayken sunucunuzda biraz kasma olur)

Soru: Timingsler çok karışık, bunları nasıl anlayabilirim?
Timings adresini konuya yazarsanız size neyin sunucuyu kastırdığını söyleyebilirim.
Dikkat: Timingsde tüm eklentiler gözükür.

Soru: Eklentiler dışında oyun başka bir şekilde optimize edilebilir mi?
Sunucunuzu PaperSpigot yapabilirsiniz. PaperSpigot spigota kıyasla daha çok optimizeye (ve bug fixe) sahip.
1.8.8 PaperSpigot = http://tcpr.ca/files/paperspigot/PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar
1.7.10 PaperSpigot = http://tcpr.ca/files/paperspigot/PaperSpigot-1.7.10-R0.1-SNAPSHOT-latest.jar
1.7.10 sunucuya 1.7.* veya 1.8.* ile girilebilir (1.8 eşyaları kullanılamaz) fakat 1.8.8 sunucuya sadece 1.8.8 ile girilebilir (1.8 eşyaları kullanılabilir)
(EfsaneCraft sunucumda şu anda 1.7.10 PaperSpigot kullanılıyor.)
Sunucuyu daha basit bir script ile başlatmayı deneyin. Örnek: "java -Xmx16G -XX:MaxPermSize=256M -jar spigot.jar"
Yani bir eklentinin yaptığı aşırı Ram kullanım sorununu çözemeyip GC açmayın, bu da lag yapar.
Sunucuyu Java 8 ile çalıştırın. Minecraft sunucusu ve client için önerilen version bu. (java 8 de -XX:MaxPermSize kullanılmaz)

Soru: Timings dışında daha karışık ve detaylı bir şekilde neyin lag yaptığını öğrenebilirmiyim?
WarmRoast: https://github.com/sk89q/warmroast (bunun için biraz bilginiz olmalı)

Örnekler (EfsaneCraft.com sunucusu):
Örnek başlatma scripti: "
cd /home/EfsaneCraftFactionWars/
/usr/lib/jvm/java-8-oracle/bin/java -Xmx128G -jar spigot.jar
bash start.sh"
(Javanın tam adresi verilerek açılmış. Javanın işlemi bitip sunucu kapandığında tekrar start.sh yi çalıştırarak sunucuyu açıyor. Yani sunucu herhangi bir şekilde kapandığında tekrar açıyor kendini)
Örnek Timings (120 oyuncu): http://timings.aikar.co/?url=13798109
Örnek WarmRoast (120 oyuncu): http://185.115.40.40/warmroast.html
Örnek Essentials /lag çıktısı (120 oyuncu):
 


Son düzenleme:

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
Böyle yararlı bir konuyu tamda adamından okumak konuya ayrı bir keyif katıyor çok beğendim birşeyler çıkardım bu konudan. :)
500'e yakın oyuncuyu BungeeCord olmadan tek sunucuda tutabilmek zor iş olsa gerek efendim..
Yalnız aklıma takılan bir soru var, paperspigot daha iyiyse getspigot.org'ta neden direk bunu vermiyor?
 

Nish951

Taş Madencisi
Mesajlar
81
En iyi cevaplar
0
Beğeniler
37
Puanları
450
http://getspigot.org Spigot sahibinin açtığı bir site değil ve sanırım Spigot yapımcıları PaperSpigot'u önermiyorlar (nedenini tam olarak bilmiyorum)
 

WhyCoconut

Zombi Katili
Mesajlar
187
En iyi cevaplar
0
Beğeniler
100
Puanları
0
Sunucunun ip ini merak ettim şimdi.. :gg:
 

Jacops

Bedrock Kaşifi
Mesajlar
1,656
En iyi cevaplar
0
Beğeniler
1,636
Puanları
4,700
Ruh hali
Çok yararlı bir konu olmuş emeğine sağlık.
 
Son düzenleme:

EnesXYZ

Kızıltaş Madencisi
Mesajlar
426
En iyi cevaplar
0
Beğeniler
138
Puanları
0
@Nish951 açtığın konu gerçekten yararlı olmuş.
Bazı kendini bilmişler RAM çok olsun sunucu iyi olur diye düşünüyor.
Ama asıl öndeki unsur İşlemci yani bir diğer adıyla CPUdur.

Konu için teşekkürler.
 

Nish951

Taş Madencisi
Mesajlar
81
En iyi cevaplar
0
Beğeniler
37
Puanları
450
Böyle yararlı bir konuyu tamda adamından okumak konuya ayrı bir keyif katıyor çok beğendim birşeyler çıkardım bu konudan. :)
500'e yakın oyuncuyu BungeeCord olmadan tek sunucuda tutabilmek zor iş olsa gerek efendim..
Yalnız aklıma takılan bir soru var, paperspigot daha iyiyse getspigot.org'ta neden direk bunu vermiyor?

@Nish951 açtığın konu gerçekten yararlı olmuş.
Bazı kendini bilmişler RAM çok olsun sunucu iyi olur diye düşünüyor.
Ama asıl öndeki unsur İşlemci yani bir diğer adıyla CPUdur.

Konu için teşekkürler.

Çok yararlı bir konu olmuş emeğine sağlık.
Teşekkürler.
Konu güncellendi.
 

gogorec

Zombi Katili
Mesajlar
229
En iyi cevaplar
0
Beğeniler
47
Puanları
0
merhaba, skype adresinizi öğrenebilir miyim?
 

MustafaMertBulut

MC.MAXCRAFT.AT
Mesajlar
1,098
En iyi cevaplar
0
Beğeniler
260
Puanları
680
bir şey Sorucam Sizce Bir Server Çakmalobi Yapmalımı Yapmamalımı Bende Faction Server Varda Çakmalobi DDoS V.s. İşe Yarıyo Ama Bazen Çok Sorun Çıkartıyo ? Sizce Olmalımı Olmamalımı ?
 

Nish951

Taş Madencisi
Mesajlar
81
En iyi cevaplar
0
Beğeniler
37
Puanları
450
bir şey Sorucam Sizce Bir Server Çakmalobi Yapmalımı Yapmamalımı Bende Faction Server Varda Çakmalobi DDoS V.s. İşe Yarıyo Ama Bazen Çok Sorun Çıkartıyo ? Sizce Olmalımı Olmamalımı ?
Çakma lobi (veya giriş lobisi) çok fazla oyuncusu olan sunucular için kullanılıyor genelde.
Tüm oyuncuları tek bir lobide tutmak performans sorunları yaratabiliyor. Bu yüzden 2-3 lobi oluyor ve oyuncu girdiğinde en az oyuncu hangi lobideyse oyuncuyu oraya atıyor (tabi giriş yaptıktan sonra (botları önlemek için)).
Aşırı büyük sunuculara örnek olarak; 1.000.000 üyeliğe sahip bir sunucu, bu sunucuda oyuncu şifresini girdiğinde 1 milyon üyeliği kontrol edecek.
Tabi bu da biraz kasmaya neden olacak makine ne kadar güçlü olursa olsun. Aynı zamanda bu kasmayı asıl lobideki (veya girişlobisi-faction şeklindeyse factionu)
oyunculardan uzak tutmak için kullanılabilir. (türkiyede pek botnet'e sahip olan birileri olduğunu sanmıyorum ama güçlü bir saldırı olduğunda giriş lobisi var ise kapanır ve asıl sunucularda oyuncular oynamaya devam edebilir)

Soru: Neden tek bir lobide çok oyuncu olması performans sorunu yaratıyor?
Örnek olarak; 200 oyuncu bir sunucuda ve hepsi aynı yerde. 200 oyuncununda aynı anda hareket ettiğini düşünürsek
200 oyuncuyada bu 200 oyuncunun hareketini gönderecek. Yani 200 * 200 = 40000 bilgi gönderecek (bu 200 oyuncu 2 farklı lobide olsaydı (100*100)+(100*100)=20000 bilgi gönderilecekti. Oyuncu sayısı aynı fakat işlem yarıya iniyor.)
 
Son düzenleme:

MustafaMertBulut

MC.MAXCRAFT.AT
Mesajlar
1,098
En iyi cevaplar
0
Beğeniler
260
Puanları
680
Çakma lobi (veya giriş lobisi) çok fazla oyuncusu olan sunucular için kullanılıyor genelde.
Tüm oyuncuları tek bir lobide tutmak performans sorunları yaratabiliyor. Bu yüzden 2-3 lobi oluyor ve oyuncu girdiğinde en az oyuncu hangi lobideyse oyuncuyu oraya atıyor (tabi giriş yaptıktan sonra (botları önlemek için)).
Aşırı büyük sunuculara örnek olarak; 1.000.000 üyeliğe sahip bir sunucu, bu sunucuda oyuncu şifresini girdiğinde 1 milyon üyeliği kontrol edecek.
Tabi bu da biraz kasmaya neden olacak makine ne kadar güçlü olursa olsun. Aynı zamanda bu kasmayı asıl lobideki (veya girişlobisi-faction şeklindeyse factionu)
oyunculardan uzak tutmak için kullanılabilir. (türkiyede pek botnet'e sahip olan birileri olduğunu sanmıyorum ama güçlü bir saldırı olduğunda giriş lobisi var ise kapanır ve asıl sunucularda oyuncular oynamaya devam edebilir)

Soru: Neden tek bir lobide çok oyuncu olması performans sorunu yaratıyor?
Örnek olarak; 200 oyuncu bir sunucuda ve hepsi aynı yerde. 200 oyuncununda aynı anda hareket ettiğini düşünürsek
200 oyuncuyada bu 200 oyuncunun hareketini gönderecek. Yani 200 * 200 = 40000 bilgi gönderecek (bu 200 oyuncu 2 farklı lobide olsaydı (100*100)+(100*100)=20000 bilgi gönderilecekti. Oyuncu sayısı aynı fakat işlem yarıya iniyor.)
Benim Çakmalobimde Sorun Var O zaman En Ufak Bi Bot Saldırısında Dİrek Kendini Kapatıyor OutOfMemory Diyip 3 Gb Ram Var
 

Nish951

Taş Madencisi
Mesajlar
81
En iyi cevaplar
0
Beğeniler
37
Puanları
450
Benim Çakmalobimde Sorun Var O zaman En Ufak Bi Bot Saldırısında Dİrek Kendini Kapatıyor OutOfMemory Diyip 3 Gb Ram Var
Out of memory tam olarak ram dolduğunda javanın verdiği hata. Verebiliyorsan daha fazla ram ver ve GC yi aç giriş lobisi için
GC: Garbage Collector. Ara ara sunucuyu kısa süre durdurarak (ortalama 30 milisaniye kadar) kullanılmayan değerleri siler. Ram kullanımı azalmış oluyor tabi bu şekilde.
Açmak için: Sunucunun başlatma scriptine şunu ekle:
-XX:+UseConcMarkSweepGC
 

MustafaMertBulut

MC.MAXCRAFT.AT
Mesajlar
1,098
En iyi cevaplar
0
Beğeniler
260
Puanları
680
Out of memory tam olarak ram dolduğunda javanın verdiği hata. Verebiliyorsan daha fazla ram ver ve GC yi aç giriş lobisi için
GC: Garbage Collector. Ara ara sunucuyu kısa süre durdurarak (ortalama 30 milisaniye kadar) kullanılmayan değerleri siler. Ram kullanımı azalmış oluyor tabi bu şekilde.
Açmak için: Sunucunun başlatma scriptine şunu ekle:
-XX:+UseConcMarkSweepGC
Normal'de bir şey Yok Sadece Bot Atıldımı OutOfMemory Diyor Whitelist Açık Olsa Bile Göçüyo Server ?
 

Üst