Guides / Server & Performance

Aikar's flags เปลี่ยนไปเมื่อฮีปเกิน 12 GB — มี 5 ตัวที่เปลี่ยน และ 1 ตัวลดลง

การคัดลอกชุดแฟล็กขนาด 4 GB ไปยังเซิร์ฟเวอร์ขนาด 16 GB จะทำให้ค่า 5 ตัวผิดพลาด นี่คือค่าทั้งห้าที่ผิดพลาด รวมถึงจำนวนผู้เล่นที่เซิร์ฟเวอร์แบบ Modded จะข้ามเส้นแบ่ง แต่เซิร์ฟเวอร์แบบ Vanilla จะไม่ข้าม

Aikar's flags คืออาร์กิวเมนต์ JVM มาตรฐานของคอมมูนิตี้สำหรับเซิร์ฟเวอร์ Paper และมักจะถูกคัดลอกเป็นบล็อกเดียว แต่จริงๆ แล้วมันไม่ใช่บล็อกเดียว: จากอาร์กิวเมนต์ทั้งหมด 20 ตัว มี 5 ตัวที่เปลี่ยนไปขึ้นอยู่กับว่าฮีปของคุณน้อยกว่าหรือมากกว่า 12 GB การวางชุดแฟล็กสำหรับฮีปขนาดเล็กบนเซิร์ฟเวอร์ที่มีฮีปขนาดใหญ่เป็นวิธีที่พบบ่อยที่สุดในการเรียกใช้ "แฟล็กที่แนะนำ" แต่กลับไม่ได้ผลตามที่ควรจะเป็น

ห้าตัวที่เปลี่ยนไป

แฟล็กน้อยกว่า 12 GB12 GB ขึ้นไป
-XX:G1NewSizePercent3040
-XX:G1MaxNewSizePercent4050
-XX:G1HeapRegionSize8M16M
-XX:G1ReservePercent2015
-XX:InitiatingHeapOccupancyPercent1520

G1ReservePercent เป็นตัวที่ลดลง สี่ในห้าตัวเพิ่มขึ้นตามขนาดฮีป และตัวนี้ลดลง ซึ่งเป็นเหตุผลว่าทำไมการจำแบบครึ่งๆ กลางๆ ว่า "เพิ่มตัวเลขสำหรับเซิร์ฟเวอร์ขนาดใหญ่" จึงทำให้ได้ชุดแฟล็กที่ผิดพลาด แทนที่จะเป็นแค่ชุดแฟล็กที่ไม่เหมาะสม มันสำรองส่วนหนึ่งของฮีปไว้เพื่อป้องกันความล้มเหลวในการอพยพข้อมูล และฮีปที่ใหญ่ขึ้นต้องการ สัดส่วน ที่เล็กลงเพื่อรักษาระยะห่างที่แน่นอนเท่าเดิม

อาร์กิวเมนต์ -XX: ที่เหลืออีกสิบสามตัวจะเหมือนกันในทุกขนาดฮีป — -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+AlwaysPreTouch, -XX:SurvivorRatio=32, -XX:MaxTenuringThreshold=1 และส่วนที่เหลือไม่เปลี่ยนแปลง มีเพียง -Xms และ -Xmx เท่านั้นที่ติดตามขนาดฮีปเอง

เส้นแบ่ง 12 GB อยู่ตรงไหน

ตัวสร้างบนหน้านี้จะกำหนดขนาดฮีปจากจำนวนผู้เล่นของคุณ:

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

เซิร์ฟเวอร์แบบ Modded จะถูกตั้งงบประมาณไว้ที่ 2.5 เท่า ของ Vanilla และปัจจัยนี้เป็นตัวตัดสินว่าใครจะได้เห็นการใช้แฟล็กสำหรับฮีปขนาดใหญ่เลยหรือไม่:

ผู้เล่นVanillaModded
103 GB8 GB
204 GB10 GB
295 GB12 GB ← Modded ข้ามตรงนี้
507 GB16 GB
10011 GB26 GB
10912 GB ← Vanilla ข้ามตรงนี้28 GB

เซิร์ฟเวอร์แบบ Modded จะถึงจุดที่ใช้แฟล็กสำหรับฮีปขนาดใหญ่เมื่อมีผู้เล่น 29 คน ส่วนเซิร์ฟเวอร์แบบ Vanilla จะไม่ถึงจนกว่าจะมีผู้เล่น 109 คน ดังนั้นสำหรับผู้ใช้ Paper แบบ Vanilla ส่วนใหญ่ ชุดแฟล็กสำหรับฮีปขนาดเล็กจึงถูกต้องตลอดไป — และสำหรับผู้ใช้แบบ Modded ส่วนใหญ่ มันจะหยุดถูกต้องเร็วกว่าที่พวกเขาคาดไว้มาก

สองข้อจำกัดในสูตรที่ควรทราบ

ไม่แนะนำให้ใช้เกิน 32 GB Vanilla จะถึงขีดจำกัดที่ผู้เล่น 349 คนและคงอยู่ที่นั่น นี่ไม่ใช่ข้อผิดพลาดจากการปัดเศษ — เมื่อเกินประมาณ 32 GB JVM จะสูญเสียตัวชี้อ็อบเจกต์ที่ถูกบีบอัด และทุกการอ้างอิงในฮีปจะใหญ่ขึ้น ดังนั้น RAM ที่มากขึ้นอาจหมายถึงฮีปที่ใช้งานได้ น้อยลง การขยายขนาดเกินจุดนั้นเป็นงานสำหรับเซิร์ฟเวอร์ตัวที่สอง ไม่ใช่เซิร์ฟเวอร์ที่ใหญ่ขึ้น

ไม่แนะนำให้น้อยกว่า 2 GB แม้แต่สำหรับผู้เล่นคนเดียว เพราะขีดจำกัดขั้นต่ำคือซอฟต์แวร์เซิร์ฟเวอร์ ไม่ใช่จำนวนประชากร

และไม่ว่าสูตรจะว่าอย่างไร: อย่าให้ JVM ใช้ทุกอย่างที่เครื่องมี -Xms และ -Xmx ถูกตั้งค่าให้เท่ากันที่นี่โดยเจตนา — ฮีปที่คงที่ช่วยให้ JVM ไม่ต้องปรับขนาดภายใต้โหลด — ซึ่งหมายความว่าตัวเลขที่คุณเลือกจะถูกอ้างสิทธิ์ทันทีและถาวร ปล่อยให้ระบบปฏิบัติการมี RAM 1–2 GB ที่ไม่ต้องแย่งกับคุณ

ตัวสร้างการตั้งค่าเซิร์ฟเวอร์ →

More guides

Browse all →

กำลังหาเครื่องมือ Minecraft อื่นอยู่ไหม

ชุดเครื่องมือสร้าง ดู และแปลงไฟล์ที่ทำงานในเบราว์เซอร์ ฟรีทั้งหมด