Aikar 플래그, 12GB에서 5개 변경 — 하나는 감소
4GB 플래그 세트를 16GB 서버에 복사하면 5개의 값이 잘못됩니다. 정확히 어떤 5개가 잘못되는지, 그리고 모드 서버와 바닐라 서버가 선을 넘는 플레이어 수를 알려드립니다.
Aikar 플래그는 Paper 서버의 커뮤니티 표준 JVM 인수이며, 일반적으로 하나의 블록으로 복사됩니다. 하지만 이들은 하나의 블록이 아닙니다. 20개의 인수 중 5개는 힙이 12GB 미만인지 초과하는지에 따라 변경됩니다. 작은 힙 세트를 큰 힙 서버에 붙여넣는 것은 "권장 플래그"를 사용한다고 생각하면서도 실제로는 그렇지 않은 가장 흔한 방법입니다.
변경되는 5가지
| 플래그 | 12GB 미만 | 12GB 이상 |
|---|---|---|
-XX:G1NewSizePercent | 30 | 40 |
-XX:G1MaxNewSizePercent | 40 | 50 |
-XX:G1HeapRegionSize | 8M | 16M |
-XX:G1ReservePercent | 20 | 15 |
-XX:InitiatingHeapOccupancyPercent | 15 | 20 |
G1ReservePercent은 감소하는 플래그입니다. 5개 중 4개는 힙 크기에 따라 증가하고 하나는 감소합니다. 이것이 "큰 서버를 위해 숫자를 늘려야 한다"는 어설픈 기억이 단순히 최적화되지 않은 세트가 아닌 잘못된 세트를 생성하는 이유입니다. 이 플래그는 회수 실패에 대비하여 힙의 일부를 예약하며, 더 큰 힙은 동일한 절대적인 여유 공간을 유지하기 위해 더 작은 비율이 필요합니다.
나머지 13개의 -XX: 인수는 모든 힙 크기에서 동일합니다. -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+AlwaysPreTouch, -XX:SurvivorRatio=32, -XX:MaxTenuringThreshold=1 및 나머지는 변경되지 않습니다. -Xms 및 -Xmx만 힙 크기 자체를 추적합니다.
12GB 경계가 실제로 적용되는 지점
이 페이지의 생성기는 플레이어 수에 따라 힙 크기를 조정합니다.
GB = clamp( ceil( (modded ? 2.5 : 1) × (2 + players / 12) ), 2, 32 )
모드 서버는 바닐라 서버의 2.5배로 예산이 책정되며, 이 요소가 큰 힙 분기를 볼 수 있는지를 결정합니다.
| 플레이어 수 | 바닐라 | 모드 |
|---|---|---|
| 10 | 3 GB | 8 GB |
| 20 | 4 GB | 10 GB |
| 29 | 5 GB | 12 GB ← 모드 서버가 여기서 경계를 넘음 |
| 50 | 7 GB | 16 GB |
| 100 | 11 GB | 26 GB |
| 109 | 12 GB ← 바닐라 서버가 여기서 경계를 넘음 | 28 GB |
모드 서버는 29명의 플레이어에서 큰 힙 플래그에 도달합니다. 바닐라 서버는 109명이 될 때까지 도달하지 않습니다. 따라서 대부분의 바닐라 Paper를 실행하는 사람들에게는 작은 힙 세트가 영구적으로 올바른 것이며, 모드 서버를 실행하는 대부분의 사람들에게는 예상보다 훨씬 빨리 올바르지 않게 됩니다.
해당 공식에서 알아야 할 두 가지 제한 사항
32GB 이상은 절대 권장하지 않습니다. 바닐라 서버는 349명의 플레이어에서 상한선에 도달하고 그 상태를 유지합니다. 이것은 반올림 오차가 아닙니다. 약 32GB를 초과하면 JVM은 압축된 객체 포인터 (compressed object pointers)를 잃고 힙의 모든 참조가 커지므로 더 많은 RAM이 더 적은 사용 가능한 힙을 의미할 수 있습니다. 이 지점을 넘어 확장하는 것은 더 큰 서버가 아닌 두 번째 서버의 역할입니다.
단일 플레이어의 경우에도 2GB 미만은 절대 권장하지 않습니다. 이는 최소값이 플레이어 수가 아닌 서버 소프트웨어 자체이기 때문입니다.
그리고 공식이 무엇을 말하든: JVM에 서버의 모든 리소스를 할당하지 마십시오. -Xms 및 -Xmx은 의도적으로 동일한 값으로 설정되어 있습니다. 고정된 힙은 로드 시 JVM이 크기를 조정하는 것을 방지합니다. 이는 선택한 숫자가 즉시 영구적으로 할당된다는 것을 의미합니다. 운영 체제가 당신과 싸울 필요가 없도록 1-2GB를 남겨두십시오.