Kısa cevap
Önce kötü optimize edilmiş eklentileri kaldırın, çünkü bunlar diğer her şeyin toplamından
daha fazlasına mal olur. Ardından batching.colliders "0"'ı ayarlayın,
fps.max'ı 30 ile 100 arasında sınırlayın, server.saveinterval "600"'ü
yükseltin ve hayvan hareketi olmadan yaşayabiliyorsanız nav_disable "true" ve
ai.think 0'ı düşünün.
Önemli noktalar
- Rust'ın ihtiyacı olan çekirdek sayısı değil saat hızıdır. Unity'nin çekirdek fonksiyonları tek iş parçacıklıdır.
- Kötü kodlanmış tek bir eklenti, bu sayfadaki diğer her optimizasyonu boşa çıkarabilir.
- Sunucu FPS'i, oyuncu FPS'i değildir. Farklı şeyleri ölçen farklı sayılardır.
- Performance Monitor eklentisiyle ölçün, sonra kaldırın. O da performansa mal olur.
- Buradaki her convar bir takastır. Onu ayarlamadan önce neyden vazgeçtiğinizi bilin.
Performansı gerçekte ne etkiler
Tutarlı performans, oyuncularınıza güvenli bir oynama yerleri olduğuna dair güvence veren şeydir, burada lag yüzünden bir dövüş kaybetmez veya bir uçurum kenarından rubber-band yaparak düşmezler. Nereden geldiği konusunda kesin olmakta fayda var, çünkü yanlış şeye harcanan zaman boşa gider.
Kabaca etki sırasına göre:
- Eklentiler. Kötü yazılmış tek bir tanesi her sunucu tick'ini domine edebilir.
- CPU saat hızı. Diğer her şeyin altında çalıştığı tavan.
- Varlık sayısı. Bir wipe döngüsünün sonlarına doğru, altınızda değişen şey budur.
- Kaydetme işlemleri. Büyük bir dünyada, her çalıştıklarında fark edilir.
Donanım: çekirdek sayısından önce saat hızı
3GHz üzerinde saat hızına sahip daha hızlı CPU'lar kullanan sağlayıcılardan çarpıcı derecede daha iyi sunucu performansı görürsünüz. Sebep, tesadüfi değil mimaridir: Unity'nin çekirdek fonksiyonları tek iş parçacıklıdır, bu yüzden tek bir çekirdekte çalışırlar ve diğerlerine yayılamazlar. 2.2GHz'de 32 çekirdekli bir CPU, 4GHz'de 8 çekirdekli bir CPU'dan daha kötü bir Rust sunucusu çalıştırır.
Çekirdek sayısı önemsiz değildir. NPC ve hayvan AI'sı ile diğer harita ile ilgili nesneler gibi şeyler birden fazla çekirdeğe yayılabilir, bu yüzden daha yüksek nüfuslu sunucular ekstra çekirdeklerden gerçekten fayda görür. İyi bir host, daha büyük bir sunucu için daha fazla çekirdek seçeneği sunmalı ve zaten Rust'ı yüksek frekanslı CPU'larda barındırıyor olmalıdır.
Bu, satın almadan önce kontrol edebileceğiniz en yararlı tek şeydir. Bir host çekirdek sayısını ve RAM'i reklam ediyor ama saat hızını etmiyorsa, bu genellikle saat hızının satış noktası olmadığı içindir.
Eklentiler: en büyük tek etken
uMod, sunucuların çoğunlukla topluluk tarafından geliştirilen eklentileri çalıştırmasını sağlayan bir Rust modding eklentisidir. Sunucu performansı, iyi yazılmış ve aktif olarak bakımı yapılan eklentilerden etkilenmez.
Kötü bir tanesi tarafından yok edilecektir. Farkında olmadan, eklentilerinizden herhangi birindeki küçük bir kod parçası sunucunuzun performansını ciddi şekilde düşürebilir ve bir eklentinin boyutu veya görünürdeki basitliği hakkında size hangisi olduğunu söyleyen hiçbir şey yoktur. En küçük, en hafif görünen eklenti bile kaosa yol açabilir, bunu deneyimli herhangi bir Rust sunucu sahibi veya eklenti geliştiricisi doğrulayacaktır.
Çok fazla eklenti çalıştırmaktan kaçının. Herhangi birinin kalitesinden tamamen ayrı olarak, sayının kendisinin bir bedeli vardır ve bir soruna cevap, bir eklenti eklemekten çok bir eklentiyi kaldırmaktır.
Tuttuğunuz eklentileri optimize etmek
Bazı eklentiler zamanlayıcılar ve aralıklar gibi performans ayarlama ayarlarını sunar. Bunlar genellikle varsayılan olarak kapalıdır veya muhafazakar bir şekilde ayarlanmıştır. Eklentinin config dosyasına bakın ve bunları etkinleştirin, çünkü otuz saniyede bir sorgulayabilecek bir eklentinin her tick'te sorgulaması, ihtiyacından otuz kat daha fazla iş yapması demektir.
Herhangi bir şeyi değiştirmeden önce ölçmek
Performans sorunlarını tahmin etmek zaman kaybettirir. Almaya değer iki ölçüm vardır.
Sunucu FPS'i
Bu, sunucunun çalıştığı kare hızıdır. Oyuncularınızın kare hızları üzerinde doğrudan
bir etkisi yoktur, ancak bir bölgedeki yüksek varlık sayıları ikisini de etkiler.
RCON üzerinden FPS komutuyla izleyin.
Performance Monitor eklentisi
uMod için Performance Monitor, bellek kullanımı, eklenti hook süresi ve sunucu performansını etkileyen diğer zamanlamalar hakkında gerçek zamanlı bilgi raporlar. Size hangi eklentinin tek bir hook'ta en çok zaman tükettiğini gösterir ve bu da "sunucu kötü hissettiriyor" ifadesini bir isme dönüştürür.
Performance Monitor'ı süresiz olarak çalışır durumda bırakmayın. İzlemenin kendisi kaynak tüketir ve ölçmeye çalıştığınız performansı kötüleştirir. Kurun, ölçümlerinizi alın, onlara göre hareket edin, sonra kaldırın.
Önemli olan convarlar
Bunların her biri bedava bir performans değil bir takastır. Kazançlar gerçektir, vazgeçtiğiniz şeyler de öyle.
batching.colliders "0"
Sunucunun varlıkları gruplaması ihtiyacını ortadan kaldırır. Bu büyük bir performans kazancıdır: gruplama etkinken, biri her inşa ettiğinde, sunucu ilgili tüm varlıkları gruptan çıkarmak ve sonra yeniden gruplamak zorunda kalır.
Uyarı: sunucunuz 265,000 varlığın üzerine çıkarsa, Unity varlık sınırını aşmak için onu yeniden etkinleştirmeniz gerekir. Yoğun bir sunucuda uzun bir wipe döngüsünün sonlarına doğru bu, teorik değil gerçek bir sayıdır, bu yüzden göz önünde bulundurmaya değer.
nav_disable "true"
Sunucunuzdaki NAV mesh'i devre dışı bırakır. Performans kazancı büyüktür. Bedeli, hayvanların ve NPC'lerin tamamen hareket etmeyi durdurmasıdır.
Bunun kabul edilebilir olup olmadığı sunucunuza bağlıdır. Kimsenin geyik avlamadığı ağırlıklı bir PvP sunucusunda, neredeyse bedavadır. Bir PvE veya roleplay sunucusunda, oyunun anlamlı bir bölümünü ortadan kaldırır.
ai.think 0
Büyük sunucularda hayvanların tepki vermediğini veya karşılık vermediğini fark etmiş
olabilirsiniz. Bu, ai.think'in 0'a ayarlanmasıdır. Özellikle oyuncu sayısı
yüksek olduğunda ve oyuncular hayvanlara sık sık yakın olduğunda performans üzerinde önemli
bir olumlu etkisi vardır.
server.saveinterval "600"
Yüksek varlıklı bir sunucuda sunucu kaydettiğinde sunucu tarafı FPS düşüşleri görebilirsiniz. Kaydetmeler arasındaki süreyi artırmak bunu minimumda tutar.
Buradaki takas risktir: daha uzun bir aralık, sunucu kaydetmeler arasında çökerse daha fazla ilerlemenin kaybolması anlamına gelir. 600 saniye makul bir dengedir, ama sunucunuz başka sebeplerden dolayı kararsızsa, çökmeleri daha maliyetli hale getirerek belirtiyi düzeltmeyin.
fps.max
Sunucunuzun FPS'ini kontrol etmek genel olarak iyi bir fikirdir, böylece sunucu
oyuncularınıza hiçbir fayda sağlamadan ihtiyacından daha sert çalışmaz. Facepunch, oyuncuların
saniyede 30 kareyle sınırlı bir sunucuyu fark etmeyeceğini söyledi. fps.max'ı
30 ile 100 arasında bir sayıya ayarlamak şiddetle tavsiye edilir.
Yeniden başlatmalar
Günlük yeniden başlatmalar, modlanmış sunucularda performansa yardımcı olabilir. Uzun süredir çalışan işlemler bellek baskısı biriktirir ve yavaşça sızıntı yapan eklentiler yeterince yaygındır, bu yüzden zamanlanmış bir yeniden başlatma makul bir sigorta poliçesidir.
Onları sessiz bir saatte planlayın ve duyurun. global.restart oyunculara 300
saniyelik bir uyarı verir ve 5 saniyelik aralıklarla geri sayar, bu da güvenli bir yere
gitmek için yeterli zamandır. Bir baskının ortasında sessiz bir yeniden başlatma, performans
kazancının size kazandırdığından daha fazla oyuncu kaybettirir.
Ne yapılmalı, sırasıyla
-
Önce ölçün
RCON üzerinden sunucu FPS'ini kontrol edin ve Performance Monitor'ı kısa süreliğine çalıştırın. Bir referans noktası olmadan yaptığınız şeyin işe yarayıp yaramadığını anlayamazsınız.
-
En kötü eklentiyi kaldırın
Monitörün adlandırdığı her ne ise. Bu neredeyse her zaman mevcut en büyük tek kazançtır ve bedavadır.
-
Tuttuğunuz eklentileri ayarlayın
Config dosyalarındaki, varsa, zamanlayıcılar ve aralıklar.
-
Convarları uygulayın
batching.colliders "0",fps.maxveserver.saveintervalile başlayın, bunlar oyuncularınızın fark edeceği hiçbir şeye mal olmaz. Sadece durağan yaban hayatını kabul edebiliyorsanıznav_disableveai.think'i düşünün. -
Tekrar ölçün
Aynı araçlar, aynı koşullar, ideal olarak benzer bir oyuncu sayısında. Sonra monitörü kaldırın.
-
Donanıma bakın
Yukarıdakilerin hepsini yaptıysanız ve performans hâlâ kötüyse, tavan CPU'dur ve hiçbir miktarda yapılandırma onu aşamaz.
Bu son adımdaysanız, bir Rust sunucusu satın alırken nelere dikkat edilmeli rehberimiz, taşınmadan önce bir hosta ne soracağınızı ele alıyor.