קודי הפעלה של שרת Minecraft ואופטימיזציה של זיכרון RAM (הדגלים של אייקר)
לא משנה כמה זיכרון RAM יש לך בשרתי Minecraft, אם לוגיקת ניקוי הזיכרון של Java (Garbage Collection) אינה מוגדרת כהלכה, השרת יחווה הקפאה פתאומית (Spike Lag) כל כמה דקות. אתה פותח את השרת שלךstart.batאוbaslat.batאופטימיזציה של הקובץ פותרת את ההקפאות הללו באופן קיצוני. מפורסם בעולם הדגלים של אייקר אתה יכול למצוא את קוד האתחול הנכון עם פרמטרים במדריך זה.
שלב 1: נזקים של קוד אתחול שגוי
רוב בעלי השרתים פשוט מפעילים את השרת שלהםjava -Xmx8G -Xms8G -jar server.jarזה מתחיל בפקודה. קוד זה משחרר לחלוטין את Java. Java ממלאת את הזיכרון ואז עוצרת את כל השרת לשבריר שנייה כדי לנקות אותו (פיגור GC). שחקנים מרגישים את זה כ"לזרוק לאחור או להיתקע".
שלב 2: אופטימיזציה של קודי ההשקה של Aikar
השרת שלך start.bat לחץ לחיצה ימנית על הקובץ, ערוך אותו, מחק את כל הקודים שבו והדבק את הקודים המעודכנים הבאים בהתאם לכמות ה-RAM שהקצית לשרת שלך:
עבור שרתים שמקצים 8 GB RAM:
@echo off java -Xmx8G -Xms8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8m -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapProfilingPercent=45 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui pause
הערה: אם אתה מתכוון לתת 12 GB RAM לשרת שלך, הקוד בהתחלה-Xmx8G -Xms8Gאזורים-Xmx12G -Xms12Gכדאי לשנות את זה ל. כמו כןserver.jarסנכרן את החלק שאומר עם השם של קובץ ה-jar הראשי שלך (לדוגמה: paper.jar).
שלב 3: יתרונות הקוד
- הפעלת G1GC: הוא מפעיל את מודול איסוף האשפה היציב ביותר ותואם Minecraft של Java.
- נקה זיכרון מיידי: זה מנקה את זיכרון ה-RAM בחתיכות קטנות ברקע כשהשרת לא פעיל, ומונע מהשרת לקפוא.
- עדיפות מעבד: זה מאפשר ל-Java להשתמש בליבות המעבד בצורה מאוזנת יותר.
מאמר זה הוכן במיוחד עבור PvPServer.