Skocz do zawartości


Zdjęcie

Zapychanie pamięci ram na serwerze


  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Kopjuszen

Kopjuszen

    Nowy

  • Użytkownik
  • 26 postów
  • kopjuszen

Napisano 12 October 2019 - 14:13

Problem polega na tym że gdy na serwerze startuje z 2 gb ramu to bez żadnej osoby zużywał 1 gb ale gdy zwiększyłem pojemność do 3 gb to po starcie serwera bez żadnej osoby jest wykorzystywane 2 gb. Oraz gdy zacznę np eksplorować świat (który był już wygenerowany) po 1000 kratek wywala serwer bo jest zapchana cała pamięć. Po restarcie serwera znowu ten proces się powtarza. Na serwerze gra max 4 osoby ale zazwyczaj od 1 -  3. Serwer jest postawiony na hostingu TitanAxe na wersji 1.14.4. Serwer waży 7 242 MB na 10 000 MB na dysku.

 

 

Na stronie serwera pisze 

 

Alokowanie i zwalnianie pamięci

Java wykorzystuje Garbage Collector - specjalny mechanizm „odśmiecania pamięci”, ponieważ w odróżnieniu do innych języków programowania takich jak C/C++, programista nie musi dealokować / niszczyć obiektów po ich wykorzystaniu. Zamiast tego, specjalny program wykonuje tą żmudną pracę za niego.

Ma to swoje konsekwencje w wydajności. Podczas sprzątania śmieci, cały proces Java musi być na moment wstrzymany, czyli przez ułamek sekundy serwer nie pracuje. Dodatkowo, wymagane są zasoby CPU na wykonanie tej operacji - a obiektów do zniszczenia są miliony. Dlatego Java uruchamia proces sprzątania bardzo rzadko - zwykle, gdy brakuje już pamięci.

 

Im więcej RAM, tym większe zużycie

Jak to zostało już wspomniane, Java zwalnia pamięć gdy jej potrzebuje w innym miejscu. Często zdarza się tak, że im więcej RAM serwer ma przypisane, tym większe jego zużycie. Np. dla serwera 1500MB RAM po starcie zużycie wynosi ok 1000MB, gdy dla serwera 8000MB po starcie nierzadko widać 3000MB. Dlaczego? Java nie usuwa z pamięci śmieci, gdy pamięci jest pod dostatkiem.

 

Objawy zwalniania i braku pamięci

Często bardzo łatwo zauważyć moment zwalniania pamięci przez Javę. Na serwerach z małą ilością pamięci RAM, Java uruchamia często Garbage Collector, co objawia się lagowaniem. To jest pierwszy objaw braku pamięci. Oczywiście gdy Java nie wyrabia się w limicie pamięci, zaczyna go przekraczać, wtedy proces Java (serwer) zostaje nagle zatrzymany przez brak pamięci. Zwyczajnie się crash'uje.

 

linki do tego tematu

 

Jak mogę rozwiązać ten problem czy to jest wina serwera czy hostingu ? Czytałem też że ten hosting jest jednym z najgorszych bo ma problem z ramem i wykorzystuje serwery innych hostingów (nie wiem o co chodziło temu co to pisał xd)

 

Timingi serwera z 2 osobami 

By zobaczyć linki musisz się zalogować lub zarejestrować

 Jak to zobaczysz to dostaniesz laga mózgu ( chyba )

Timingi serwera bez żadnej osoby 

By zobaczyć linki musisz się zalogować lub zarejestrować

o pisze tam You are using DynMap, and its rendering is causing you a decent amoung of lag due to it loading chunks.

Notice: Your AVG TPS is less than 19 but server load is less than 95. This may mean your server is having memory issues (leak or not enough).
This is usually a sign that Java is spending too much time Garbage Collecting. Try using -XX:+UseG1GC -XX:MaxGCPauseMillis=50 flags and increasing your -Xmx.

 

 


Użytkownik Kopjuszen edytował ten post 12 October 2019 - 14:26


craftportal

Craftserve to największy i najlepszy polski hosting serwerów Minecraft, jest solidny i tani więc go polecam

#2 Yxu.

Yxu.

    Znawca

  • Użytkownik+
  • 244 postów
  • Yxu.#6560
  • Yxu_

Napisano 12 October 2019 - 15:15

Wystarczy zmienić hosting, titanaxe to najgorszy syf, w którym ram sam się zapycha :))))