Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TUT] RamDisk **PL** - czyli optymalizacja serwera o około 90%! **PL**


daviddv

Rekomendowane odpowiedzi

Opublikowano

* PL * Optymalizacja serwera Minecraft * PL *

 

 

Serwery Minecrafta chodzą bardzo powoli i pochłaniają znaczną ilość pamięci ram. Gra na serwerach co niektórych jest po prostu nie możliwa, z powodu lagów, w pliku: server.log najczęściej jest takie coś:

 

[WARNING] Can't keep up! Did the system time change, or is the server overloaded?

 

Poradnik opisuje następujące optymalizację:

  • Znacznie zmniejszone zużycie procesora.
  • Redukcja zużycia pamięci ram od około 20-30 do nawet 90%! (na 1 GB Ram). Oznacza to, że można uruchomić serwer Minecraft na zaledwie 200MB Ramu.
  • Wyeliminowany komunikat o przeciążonym serwerze.
  • Lagi na serwerach zredukowane prawie do zera!
  • Zoptymalizowanie ładowania chunków.

To wydaje się nieznaczącym wzrostem w chunkach nie załadowujących jak należy ale to może być moja wyobraźnia.

 

 

Więc co ja zrobiłem ? To jest naprawdę proste:

  • UruchomIłem serwer i świat przez RAM disk.To znacznie zwiększy efektywność załadowywania chunków a zarazem zredukuje ładunek CPU. Zużycie pamięci będzie szło w górę ( ponieważ cały świat jest teraz w RAM) ,ale ponieważ nowy Minecraft McRegion przechowuje format (...) używa dużo mniej przestrzeni na dysku.
  • Umożliwiłem opcję -Xincgc Java. To dało jednocześnie przyrostową garbage collector, co w zasadzie oznacza, że Java nie zatrzyma się na kilka sekund, aby oczyścić stare nieużywane rzeczy (bez małego opóźnienia). Czyli zmniejsza to opóźnienia i choppiness w załadunku klocków / spawn mobów / zniszczenie / umieszczania bloków.
     
     
    ______________________________________________

!UWAGA! Poradnik zakłada że korzystasz z systemu operacyjnego Linux, a serwer Minecraft znajduje się w katalogu /home/minecraft/minecraft/minecraft_server/ (katalog, w którym znajduje się minecraft_server.jar). Polecenia są poprzedzone '$' lub '#' dla zachęty, czyli należy uruchomić to polecenie jako użytkownik Minecraft (lub inny użytkownik z dostępem do odczytu / zapisu w katalogu serwera minecraft) lub zwykły root.

 

______________________________________________

 

 

 

Do roboty !

Omówię tutaj jak skonfigurować dysk RAM i jak zrobić żywą kopię mapy (jeśli nie to stracisz wszystko na restarcie).

____________

 

 

1. Pierwszym krokiem będzie sprawdzenie, ile miejsca będzie potrzebne do umieszczenia świata minecraft w pamięci ram:

$ du -hs /home/minecraft/minecraft/minecraft_server

Odpowiedź od serwera:

50M /home/minecraft/minecraft/minecraft_server

Oznajmia nam że Minecraft zajmuje obecnie 50mb, jest już dość duży świat, więc podwoimy go.(100mb)

____________

 

2. Katalog minecraft_server należy przenieść do innej nazwy, ponieważ musimy stworzyć pusty dysk RAM w jego miejsce:

$ mv /home/minecraft/minecraft/minecraft_server /home/minecraft/minecraft/minecraft_server.persistent

$ mkdir /home/minecraft/minecraft/minecraft_server

 

____________

 

3. Następnie dodajemy wpis na dysku RAM do pliku /etc/fstab. To zagwarantuje, że zostanie on automatycznie przemontowany Po ponownym uruchomieniu systemu.

UWAGA! 100M zamień na swoją wartość !

$ sudo echo "tmpfs /home/minecraft/minecraft/minecraft_server tmpfs rw,size=100M 0 0" >> /etc/fstab

____________

 

4. Montujemy go:

# mount /home/minecraft/minecraft/minecraft_server

____________

 

5. Skopiuj zawartość wyłączonego katalogu backup minecraft_server na dysk RAM:

$ cp -ar /home/minecraft/minecraft/minecraft_server.persistent/* /home/minecraft/minecraft/minecraft_server/

____________

 

6. Teraz można uruchomić Minecraft za pomocą następującego polecenia:

$ tmux new -d -n "minecraft" "minecraft" "java -Xincgc -Xmx1G -jar minecraft_server.jar nogui"

____________

 

 

 

 

 

 

 

 

______________________________________________

 

Rób stale kopie!

 

Konieczne jest regularne tworzenie kopii zapasowej dysku RAM! Jeśli moc na serwerze spadnie (lub jeśli go zrestartujesz ręcznie), twój świat zostanie stracony! Możesz skorzystać również z mojego skryptu który automatycznie wykona kopię co określony czas.

 

Jeśli używasz serwera Minecraft w sesji tmux (i uruchamiasz go - tmux z: 'tmux-n-s minecraft minecraft "), możesz utworzyć shellscript połączony z cronem który wykona tą kopię np. co godzinę. Możesz też skorzystać z mojego skryptu uruchamiającego serwer, którym również można robić kopie zapasowe, włączać i wyłączać serwer minecraft bez konieczności wchodzenia do konsoli.

 

Ale dla tych, którzy chcą na robić trwale kopię udostępniam skrypt:

 

PATH_MC="/home/minecraft/minecraft/minecraft_server"

# Tymaczasowo wyłącza zapisywanie świata, aby nie uzyskać uszkodzonej kopii zapasowej[/center]

tmux send -t "minecraft" "save-off" C-m
tmux send -t "minecraft" "save-all" C-m
# Czeka, aż log serwera wskaże wiadomość o zakończeniu zapisywania
while true; do
sleep 0.2
TMP=`grep "Save complete." $PATH_MC/server.log | wc -l`
if [ $TMP -gt $SAVE_COMPLETE ]; then
break
fi
done
# Tworzy kopie świata ram
rm -rf "$PATH_MC.persistent"
cp -ar "$PATH_MC" "$PATH_MC.persistent"
# Włączenie zapisywania z powrotem na świat
tmux send -t "minecraft" "save-on" C-m

 

 

 

1. Zapisz powyższy skrypt w/jako: /home/minecraft/mc_persistent.sh i nadaj mu uprawnienia:

chmod 750 /home/minecraft/mc_persistent.sh

2. Dodaj teraz polecenie do crona, aby zapisywał świat co godzinę

0 * * * * /home/minecraft/mc_persistent.sh

 

 

 

KONIEC !

 

______________________________________________

 

 

NIE ZEZWALAM na kopiowanie mojego tłumaczenia na inne fora bez mojej zgody.

Pierwsze dwa akapity kopiowane od nieukończonego tłumaczenia Krzysztofy, reszta przetłumaczona w całości prze zemnie.

 

Zródło:

http://www.electricmonk.nl/log/2011/07/22/minecraft-server-optimization/

 

 

Nie biorę odpowiedzialności za błędy/uszkodzenia powstałe podczas korzystania z tego poradnika.

 

Liczę na ++

 

 

Proszę o ściągnięcie kilku %

 

 

______________________________________________

Opublikowano

Dodaj jeszcze że gdy mamy iConomy na flatfile to możliwe jest okresowe kasowanie całej takiej bazy danych - spotkałem się z tym tylko pod ramdyskiem.

 

Od siebie dodam że warto mieć trzy foldery:

mc

mc_rm

mc_bk

 

W mc przechowuje się minecrafta przed startem serwera, w mc_rm przechowuje się aktualny działający serwer, w mc_bk tworzą się backupy.

 

W takiej sytuacji zawsze jest możliwość przywrócenia serwera, czy też uniknięcia poważniejszych cofek. Jeśli doda się wpis do crona to jest to lepsze niż AutoSavery czy inne bzdety.

 

Pozdr

 

PS: Lagi zredukowane do 0, wyeliminowany komunikat o przeciążonym serwerze i zmniejszone użycie ramu to bujda - ramdysk to tak jak mówi jego nazwa dysk w pamięci RAM - przez co odczyt/zapis jest o wiele szybszy niż na dysku HDD/SDD. Jak według ciebie ma to powodować zmniejsze użycie RAM?

Aha, i jeśli serwer ma 5 osób to nie będziesz mieć komunikatu o przeciążeniach - natomiast jeśli robisz poważny serwer, a tylko dla takiego stawia się ramdysk, to celujesz w więcej niż 100 osób.

:)
  • 3 tygodnie później...
  • 9 miesięcy temu...
  • 4 tygodnie później...
  • 3 miesiące temu...
Opublikowano

Ramu nie zmniejsza ale chunki sie ładują że cho :D

Serwer normalnie utrzymywał max 20. osób, a teraz 100-150 dopiero małe lagi są (Ale to zależy od komputera klienta)

Like leci :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...