Guides / Server & Performance

Flagi Aikara zmieniają się przy 12 GB — pięć z nich, a jedna maleje

Skopiowanie zestawu flag dla 4 GB na serwer 16 GB powoduje, że pięć wartości jest błędnych. Oto dokładnie, które pięć, plus liczba Graczy, przy której serwer z modami przekracza limit, a serwer vanilla nie.

Flagi Aikara to standardowe w społeczności argumenty JVM dla serwera Paper, które zazwyczaj kopiuje się jako jeden blok. Nie są one jednym blokiem: z dwudziestu argumentów, pięć zmienia się w zależności od tego, czy twoja sterta (heap) ma mniej, czy więcej niż 12 GB. Wklejenie zestawu dla małej sterty na serwer z dużą stertą to najczęstszy sposób na uruchomienie "zalecanych flag" i nieuzyskanie ich.

Pięć, które się zmieniają

flagaponiżej 12 GB12 GB i więcej
-XX:G1NewSizePercent3040
-XX:G1MaxNewSizePercent4050
-XX:G1HeapRegionSize8M16M
-XX:G1ReservePercent2015
-XX:InitiatingHeapOccupancyPercent1520

G1ReservePercent to ta, która maleje. Cztery z pięciu rosną wraz z rozmiarem sterty, a ta jedna maleje, dlatego półzapamiętane "podnieś liczby dla dużego serwera" prowadzi do błędnego zestawu, a nie tylko nieoptymalnego. Rezerwuje ona ułamek sterty na wypadek niepowodzenia ewakuacji, a większa sterta potrzebuje mniejszego ułamka, aby utrzymać ten sam absolutny zapas.

Pozostałe trzynaście argumentów -XX: jest identycznych dla każdego rozmiaru sterty — -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+AlwaysPreTouch, -XX:SurvivorRatio=32, -XX:MaxTenuringThreshold=1 i reszta nie zmieniają się. Tylko -Xms i -Xmx śledzą sam rozmiar sterty.

Gdzie faktycznie przebiega linia 12 GB

Generator na tej stronie dostosowuje rozmiar sterty do liczby Graczy:

GB = clamp( ceil( (modded ? 2.5 : 1) × (2 + players / 12) ), 2, 32 )

Serwery z modami są budżetowane na 2.5× serwera vanilla, i ten czynnik decyduje, kto w ogóle zobaczy gałąź dla dużej sterty:

Graczevanillaz modami
103 GB8 GB
204 GB10 GB
295 GB12 GB ← serwer z modami przekracza tutaj
507 GB16 GB
10011 GB26 GB
10912 GB ← serwer vanilla przekracza tutaj28 GB

Serwer z modami osiąga flagi dla dużej sterty przy 29 Graczach. Serwer vanilla nie osiąga ich aż do 109. Tak więc dla większości osób uruchamiających vanilla Paper, zestaw dla małej sterty jest na stałe poprawny — a dla większości osób uruchamiających serwer z modami, przestaje być poprawny znacznie wcześniej, niż się spodziewają.

Dwa limity w tej formule, o których warto wiedzieć

Nigdy nie zaleca więcej niż 32 GB. Vanilla osiąga limit przy 349 Graczach i tam pozostaje. Nie jest to artefakt zaokrąglania — powyżej około 32 GB JVM traci skompresowane wskaźniki obiektów i każde odwołanie w stercie staje się większe, więc więcej RAM-u może oznaczać mniej użytecznej sterty. Skalowanie poza ten punkt to zadanie dla drugiego serwera, a nie większego.

Nigdy nie zaleca mniej niż 2 GB, nawet dla jednego Gracza, ponieważ dolny limit to oprogramowanie serwera, a nie populacja.

I cokolwiek mówi formuła: nie dawaj JVM wszystkiego, co ma maszyna. -Xms i -Xmx są tutaj celowo ustawione na tę samą wartość — stała sterta zapobiega zmianie rozmiaru JVM pod obciążeniem — co oznacza, że wybrana liczba jest natychmiast i na stałe zajmowana. Zostaw systemowi operacyjnemu 1–2 GB, o które nie musi z tobą walczyć.

Generatory konfiguracji serwera →

More guides

Browse all →

Szukasz innych narzędzi do Minecrafta?

Zestaw generatorów, podglądów i konwerterów działających w przeglądarce — wszystkie za darmo.