Aikar के फ़्लैग 12 GB पर बदलते हैं — उनमें से पाँच, और एक कम होता है
16 GB सर्वर पर 4 GB फ़्लैग सेट कॉपी करने से पाँच मान गलत हो जाते हैं। यहाँ ठीक वही पाँच दिए गए हैं, साथ ही खिलाड़ियों की वह संख्या जहाँ एक modded सर्वर सीमा पार करता है और vanilla नहीं करता।
Aikar के फ़्लैग Paper सर्वर के लिए कम्युनिटी-मानक JVM तर्क हैं, और उन्हें आमतौर पर एक ब्लॉक के रूप में कॉपी किया जाता है। वे एक ब्लॉक नहीं हैं: बीस तर्कों में से, पाँच इस बात पर निर्भर करते हुए बदलते हैं कि आपका हीप 12 GB से कम है या अधिक। एक बड़े-हीप वाले सर्वर पर छोटे-हीप वाले सेट को पेस्ट करना "अनुशंसित फ़्लैग" चलाने और उन्हें ठीक से प्राप्त न करने का सबसे आम तरीका है।
बदलने वाले पाँच
| फ़्लैग | 12 GB से कम | 12 GB और अधिक |
|---|---|---|
-XX:G1NewSizePercent | 30 | 40 |
-XX:G1MaxNewSizePercent | 40 | 50 |
-XX:G1HeapRegionSize | 8M | 16M |
-XX:G1ReservePercent | 20 | 15 |
-XX:InitiatingHeapOccupancyPercent | 15 | 20 |
G1ReservePercent is the one that goes down. पाँच में से चार हीप के आकार के साथ बढ़ते हैं और वह एक घटता है, यही कारण है कि आधा-अधूरा याद रखा गया "बड़े सर्वर के लिए संख्याएँ बढ़ाएँ" केवल उप-इष्टतम के बजाय एक गलत सेट तैयार करता है। यह इवैक्यूएशन विफलता के विरुद्ध हीप का एक अंश आरक्षित करता है, और एक बड़े हीप को समान पूर्ण हेडरूम बनाए रखने के लिए एक छोटे अंश की आवश्यकता होती है।
शेष तेरह -XX: arguments are identical at every heap size — -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+AlwaysPreTouch, -XX:SurvivorRatio=32, -XX:MaxTenuringThreshold=1 and the rest do not move. Only -Xms and -Xmx track the heap size itself.
12 GB की सीमा वास्तव में कहाँ आती है
इस पृष्ठ पर जनरेटर आपके खिलाड़ी संख्या से हीप का आकार निर्धारित करता है:
GB = clamp( ceil( (modded ? 2.5 : 1) × (2 + players / 12) ), 2, 32 )
Modded सर्वरों का बजट 2.5× vanilla पर तय किया जाता है, और यही कारक तय करता है कि कौन बड़े-हीप वाली शाखा को देख पाता है:
| खिलाड़ी | vanilla | modded |
|---|---|---|
| 10 | 3 GB | 8 GB |
| 20 | 4 GB | 10 GB |
| 29 | 5 GB | 12 GB ← modded यहाँ पार करता है |
| 50 | 7 GB | 16 GB |
| 100 | 11 GB | 26 GB |
| 109 | 12 GB ← vanilla यहाँ पार करता है | 28 GB |
एक modded सर्वर बड़े-हीप फ़्लैग तक पहुँचता है 29 खिलाड़ियों पर। vanilla तब तक नहीं पहुँचता जब तक 109। इसलिए vanilla Paper चलाने वाले अधिकांश लोगों के लिए, छोटा-हीप सेट स्थायी रूप से सही होता है — और modded चलाने वाले अधिकांश लोगों के लिए, यह उनकी अपेक्षा से बहुत पहले सही होना बंद हो जाता है।
उस सूत्र में जानने योग्य दो सीमाएँ
यह कभी भी 32 GB से अधिक की अनुशंसा नहीं करता है। Vanilla 349 खिलाड़ियों पर सीमा तक पहुँचता है और वहीं रहता है। यह कोई राउंडिंग आर्टिफ़ैक्ट नहीं है — लगभग 32 GB के बाद JVM कंप्रेस्ड ऑब्जेक्ट पॉइंटर्स खो देता है और हीप में प्रत्येक संदर्भ बड़ा हो जाता है, इसलिए अधिक RAM का अर्थ हो सकता है कम उपयोग योग्य हीप। उस बिंदु से आगे बढ़ना दूसरे सर्वर का काम है, बड़े सर्वर का नहीं।
यह कभी भी 2 GB से कम की अनुशंसा नहीं करता है, एक एकल खिलाड़ी के लिए भी, क्योंकि निचली सीमा जनसंख्या के बजाय सर्वर सॉफ्टवेयर है।
और सूत्र जो कुछ भी कहता है: JVM को वह सब कुछ न दें जो सिस्टम के पास है। -Xms and -Xmx are set to the same value here on purpose — a fixed heap avoids the JVM resizing under load — which means the number you pick is claimed immediately and permanently. Leave the operating system 1–2 GB it does not have to fight you for.