1. แยกแยะว่า "แลคเน็ต (Ping)" หรือ "แลคเครื่อง (TPS)"
ก่อนเริ่มปรับแต่ง ต้องทราบก่อนว่าอาการแลคเกิดจากอะไร:
- TPS ตก (Server Tick Lag): มอนสเตอร์ขยับช้า ทุบกล่องแล้วของดร็อปช้า หรือกินอาหารแล้วแถบหลอดอาหารไม่ขึ้น สาเหตุเกิดจาก CPU/RAM ของเซิร์ฟเวอร์ประมวลผลไม่ทัน ค่าปกติของ Minecraft คือ 20.0 TPS
- Ping สูง (Network Lag): ตัวละครคนอื่นวาร์ปไปมา แต่ในเกมทุบบล็อกได้ปกติ สาเหตุเกิดจากระยะทางอินเทอร์เน็ตระหว่างผู้เล่นกับโฮสต์ (MinNu Cloud ใช้ดาต้าเซ็นเตอร์ในประเทศไทย จึงการันตี Ping ต่ำ 5-15ms สำหรับคนไทย)
2. ปรับลด View Distance & Simulation Distance
ในไฟล์ server.properties ให้ตั้งค่าดังนี้:
simulation-distance=4
การแยก simulation-distance (ระยะคำนวณมอนสเตอร์และฟาร์ม) ให้เหลือ 4-5 Chunks จะช่วยลดภาระ CPU ลงได้มากกว่า 50% โดยที่ผู้เล่นยังสามารถมองเห็นทิวทัศน์รอบตัวได้ปกติ
3. เปลี่ยนมาใช้ Core ที่ปรับแต่งมาแล้ว (Paper หรือ Purpur)
Vanilla Server (ตัวดั้งเดิมจาก Mojang) ไม่มีการบริหารจัดการ Multithreading ที่ดี การเปลี่ยนมาใช้ Paper หรือ Purpur จะช่วยให้เซิร์ฟเวอร์กินทรัพยากรน้อยลงและรองรับผู้เล่นได้มากขึ้นหลายเท่าตัว
4. ใช้ปลั๊กอิน Chunky เพื่อ Pre-generate โลกไว้ล่วงหน้า
สาเหตุอันดับ 1 ที่ทำให้เซิร์ฟเวอร์เกิดอาการ Freeze หรือแลคชั่วขณะ คือตอนที่มีผู้เล่นบินสำรวจโลกใหม่ด้วย Elytra ทำให้เซิร์ฟเวอร์ต้องสร้างและเซฟ Chunk ใหม่แบบ Real-time
วิธีแก้คือติดตั้งปลั๊กอิน Chunky และรันคำสั่งโหลดแมปพื้นที่ 5,000 - 10,000 บล็อกไว้ล่วงหน้าก่อนเปิดให้คนเล่นจริง:
/chunky start
5. ตรวจสอบ RAM และ Mod ที่มีปัญหา Memory Leak
หากเซิร์ฟเวอร์รันไปนานๆ หลายชั่วโมงแล้ว RAM เริ่มเต็มและเริ่มค้าง อาจมี Mod หรือ Plugin บางตัวที่เขียนโค้ดไม่ดีและกิน Memory สะสม สามารถใช้เครื่องมือวิเคราะห์ Spark Profiler (พิมพ์คำสั่ง /spark health หรือ /spark profiler start) เพื่อดูรายงานได้ทันทีว่า Mod ไหนที่กิน CPU สูงสุด