โลก Palworld ที่สุดสัปดาห์ก่อนยังลื่นดี อยู่ ๆ ก็สะดุดทุกไม่กี่วินาที หรืออีกแบบคือวันที่เพิ่งรีสตาร์ทเล่นดีมาก แล้วแย่ลงทีละวันจนต้องรีสตาร์ทอีกรอบ สองอาการนี้คนละปัญหากัน มีหลักฐานคนละชุดกัน และทั้งคู่ดูได้จากกราฟของคุณเองก่อนจะไปกดแก้ค่าอะไรสักตัว บทความนี้เริ่มจากการอ่านหลักฐาน แล้วค่อยไล่ปุ่มที่ขยับ Server FPS ได้จริงบนเซิร์ฟ Palworld ของ uniz.host พร้อมบอกตรง ๆ ว่ากรณีไหนที่ไม่มีปุ่มไหนช่วยได้เลย
อ่านหลักฐานก่อนจะไปแตะค่าอะไร
เปิดหน้าเซิร์ฟเวอร์ อยู่ที่แท็บภาพรวม แล้วหาการ์ด "การใช้ทรัพยากร" ท้ายการ์ดนั้น เซิร์ฟ Palworld จะมีบล็อก "สุขภาพเกม" อยู่ ประกอบด้วยสองเส้นคือ "Server FPS" กับ "ผู้เล่นออนไลน์" Palworld รายงานค่าเป็นเฟรมเรตของเซิร์ฟเวอร์ ไม่ใช่ TPS แบบ Minecraft ตัวเลขนี้จึงเป็นตัวที่ตรงกับความรู้สึกของผู้เล่นในโลกมากที่สุด
เทียบกราฟ Server FPS กับจำนวนผู้เล่นในช่วง 7 วัน
สลับแท็บช่วงเวลาของการ์ดไปที่ "7 วัน" ดูแค่เย็นเดียวแทบไม่บอกอะไร แต่ดูทั้งสัปดาห์จะรู้ทันทีว่าคุณเจอรูปแบบไหนในสี่แบบนี้
| สองเส้นทำตัวยังไง | มักแปลว่าอะไร |
|---|
| FPS ราบ ขณะที่คนเพิ่มขึ้น | เซิร์ฟรับไหว อาการกระตุกที่เพื่อนบ่นน่าจะมาจากเน็ตฝั่งเขา ไม่ใช่ฝั่งเซิร์ฟ |
| FPS ตกตอนคนเข้า และกลับขึ้นตอนคนออก | ติดเพดาน CPU ที่จำนวนผู้เล่นระดับนี้ |
| FPS ตกเป็นจังหวะสม่ำเสมอ ไม่เกี่ยวกับจำนวนคน | อาการสะดุดตอนเซฟอัตโนมัติ ดูหัวข้อรอบเซฟด้านล่าง |
| FPS ดีหลังรีสตาร์ท แล้วแย่ลงทีละวัน | ปัญหาจากการเปิดค้างนาน หัวข้อรีสตาร์ทรายวันคือของคุณ |
ตัวเลขที่ควรจำไว้ ระบบเฝ้าระวังฝั่งเราตัดสินว่าเซิร์ฟ Palworld ผิดปกติเมื่อ Server FPS ต่ำกว่า 20 ติดต่อกันสามนาที นั่นคือพื้น ไม่ใช่เป้า และการแจ้งเตือนตัวนี้เป็นของฝั่งแพลตฟอร์มซึ่งปิดไว้เป็นค่าเริ่มต้น เซิร์ฟที่ช้าจึงไม่เคยประกาศตัวเอง การเปิดกราฟดูคือการวินิจฉัยทั้งหมด
มีอีกรูปแบบหนึ่งที่ไม่ใช่ปัญหาประสิทธิภาพเลย ถ้ากราฟ RAM มีเครื่องหมาย OOM แปลว่าเซิร์ฟถูกฆ่าเพราะใช้หน่วยความจำเกินเพดาน ไม่มีค่าไหนในหน้านี้แก้ได้ ให้ข้ามไปหัวข้อ RAM เครื่องหมายพวกนี้ขึ้นเฉพาะบนกราฟ RAM กับ CPU เท่านั้น วิธีอ่านอยู่ในทัวร์แดชบอร์ด
สวิตช์เร่งประสิทธิภาพ Engine เขียนอะไรลงไปจริง ๆ
ในการ์ด "ตั้งค่า Palworld" มีสวิตช์ชื่อ "เร่งประสิทธิภาพ Engine (Server FPS)" การเปิดมันทำสิ่งที่จับต้องได้จริงสองอย่าง อย่างแรกคือแพลตฟอร์มสั่งให้อิมเมจของเกมสร้างไฟล์ Engine.ini ให้โลกของคุณ อย่างที่สองคือส่งค่า engine ทุกตัวลงไปแบบระบุชัด ไม่ใช่ส่งเฉพาะตัวที่คุณแก้ ข้อหลังนี่ตั้งใจ เพราะอิมเมจเกมลอยตามรุ่นล่าสุดอยู่ตลอด ถ้าส่งเฉพาะค่าที่แก้ การเปลี่ยนแปลงจากฝั่งต้นทางจะเข้ามาปรับจูนเซิร์ฟคุณเงียบ ๆ ได้
ปุ่มที่สำคัญที่สุดคือปุ่มหัวแถว "เพดาน FPS ของเซิร์ฟเวอร์ (Server Tick Rate)" รับค่า 30 ถึง 120 และมาที่ 120 ซึ่งคือเพดานที่การจูนชุดนี้มีไว้ยกขึ้นไป ที่เหลืออยู่ใต้ "ปรับละเอียด (Advanced)" และใช้ช่วง 30–120 เหมือนกัน นอกจากนี้ยังมีค่าแบนด์วิดท์ของเครือข่ายอีกสี่ตัวที่ถูกเขียนลงไปด้วย ตรึงไว้สูงและไม่มีปุ่มให้ปรับ เพราะถ้าตั้งต่ำผิด ๆ จะได้อาการตัวกระตุกดีดไปมาที่ดูเหมือนเซิร์ฟพัง
สองเรื่องที่คนเข้าใจผิดบ่อยเกี่ยวกับสวิตช์นี้
- ปิดแล้วปิดจริง มีคอนเทนเนอร์เล็ก ๆ ลบไฟล์
Engine.ini ที่ระบบสร้าง ทิ้งทุกครั้งที่บูต ไม่ว่าสวิตช์จะเปิดหรือปิด ถ้าเปิดจูนไว้ อิมเมจจะเขียนไฟล์กลับมาก่อนเกมเริ่ม ถ้าปิด เกมก็เริ่มขึ้นมาโดยไม่มีไฟล์ที่ระบบสร้างเลย ไม่มีสภาพค้างของคอนฟิกเก่าให้ติด
- ตัวเลขที่คุณปรับไม่หายตอนปิดสวิตช์ ค่าถูกเก็บไว้ตอนสวิตช์ปิด เปิดกลับเมื่อไหร่ก็ได้การจูนชุดเดิมคืนมา ไม่ใช่ค่าเริ่มต้น
เปิดสวิตช์เร่งประสิทธิภาพ Engine แล้วรีสตาร์ท
ไม่มีอะไรในการ์ดนี้ที่ไปยุ่งกับเซิร์ฟที่กำลังรันอยู่ กดบันทึกแล้วรีสตาร์ทจากปุ่มควบคุมของเซิร์ฟเอง ตัวการ์ดเขียนบอกไว้ตรง ๆ อยู่แล้ว และข้อนี้จริงกับการตั้งค่า Palworld ทุกตัว ไม่ใช่เฉพาะสวิตช์นี้
วิธีเช็กว่าได้ผลคือกราฟเดิมที่คุณเริ่มมา ที่จำนวนผู้เล่นใกล้เคียงกัน เส้น "Server FPS" ควรอยู่สูงกว่าเดิม ถ้าไม่ขยับเลย แปลว่าเพดาน tick ไม่เคยเป็นคอขวดของคุณ คุณติด CPU และทางแก้ที่ตรงไปตรงมาคือขยับแพ็กเกจ หรือลดของที่เกิดขึ้นพร้อมกันในโลก
รอบเซฟอัตโนมัติ กับสิ่งที่ต้องแลก
ในการ์ดเดียวกัน ใต้หัวข้อ "ตั้งค่าในเกม (In-Game Settings)" กลุ่ม "อื่น ๆ (Other)" มีช่อง "รอบเซฟโลกอัตโนมัติ วินาที (Auto-Save Interval)" รับค่า 30 ถึง 600 วินาที ขยับทีละ 30 และมาที่ 30 ซึ่งเป็นค่าของเกมเอง
การเซฟอัตโนมัติแต่ละครั้งคือการเขียนสถานะโลกลงดิสก์บน game thread และที่รอบ 30 วินาที มันโผล่เป็นหลุมของ Server FPS นาทีละสองครั้ง นั่นคือรูปแบบ "ตกเป็นจังหวะ" ในตารางด้านบน การยืดรอบทำให้หลุมพวกนี้หายไป แต่ไม่ได้ทำให้การเซฟเองถูกลง
สิ่งที่จ่ายแลกคือระยะย้อนข้อมูล รอบเซฟคือปริมาณการเล่นที่หายไปได้พอดี ถ้าเซิร์ฟดับระหว่างสองรอบ ค่าต่ำสุดถูกตรึงไว้ที่ 30 วินาทีเท่าของเกมเอง จึงไม่มีค่าไหนที่คุณเลือกแล้วแย่กว่าค่าเดิมได้ แต่ 600 วินาที แปลว่าเซิร์ฟดับทีเดียวอาจกินงานสร้างฐานไปสิบนาที
ยืดรอบเซฟอัตโนมัติ ถ้าอาการกระตุกมาเป็นจังหวะ
120 วินาทีเป็นก้าวแรกที่สมเหตุสมผล คือหลุมน้อยลงสี่เท่า แต่ยังเสี่ยงแค่สองนาที กดบันทึก รีสตาร์ท แล้วเล่นหนึ่งรอบตามปกติ จากนั้นกลับมาดูกราฟอีกที ระยะห่างระหว่างหลุมควรกว้างขึ้น ถ้าไม่กว้างขึ้น แปลว่าการเซฟไม่เคยเป็นต้นเหตุ
รีสตาร์ทอัตโนมัติรายวัน และเหตุผลที่มันมีอยู่
ในการ์ดเดียวกันมีช่อง "รีสตาร์ทอัตโนมัติรายวัน" ที่มีตัวเลือก "ปิด" บวกกับตัวเลือกรายชั่วโมงครบทั้งวัน แสดงเป็นชั่วโมงตามด้วย :00 น. เวลาทั้งหมดเป็นเวลาไทย เพราะคอนเทนเนอร์ถูกตรึงไว้ที่ Asia/Bangkok เซิร์ฟที่เจ้าของไม่เคยแตะช่องนี้จะรีสตาร์ททุกวันตอน 05:00 น. และอิมเมจได้รับค่าให้ประกาศเตือนในเกมล่วงหน้าห้านาที
พูดให้ตรงว่าค่าเริ่มต้นนี้มาจากไหน มันคือการตัดสินใจเชิงปฏิบัติการของเราเอง ไม่ใช่คำแนะนำจากผู้พัฒนา Pocketpair ไม่ได้เผยแพร่คำแนะนำให้รีสตาร์ท dedicated server เป็นรอบ ๆ ที่เขาเผยแพร่จริงคือทางตรงข้าม คือ patch note ที่แก้ปัญหา memory leak ของ dedicated server รวมถึงบันทึกในเวอร์ชัน 0.5.3 ที่เขียนว่า "Fixed a memory leak on dedicated servers" ฉะนั้นให้มองรีสตาร์ทรายวันเป็นประกันราคาถูกกันอาการเพี้ยนจากการเปิดค้างนานบนเกมที่เราไม่ได้ควบคุม ไม่ใช่ทางเลี่ยงบั๊กที่ยังค้างอยู่
พฤติกรรมของตัวอิมเมจคือจะข้ามการรีบูตเมื่อมีผู้เล่นออนไลน์อยู่ อันนั้นเป็นพฤติกรรมฝั่งต้นทางที่เราตั้งค่าให้แต่ไม่ได้ทดสอบเอง อย่าวางแผนรอบการเล่นโดยพึ่งข้อนี้
ตั้งหรือปิดรีสตาร์ทรายวันให้เข้ากับกลุ่มของคุณ
เลือกชั่วโมงที่ไม่มีใครในกลุ่มเล่น ถ้าอยากรีสตาร์ทเองมากกว่า — กลุ่มที่เล่นดึก 05:00 น. อาจตกกลางวง — ให้ตั้งเป็น "ปิด" แล้วใช้ปุ่มรีสตาร์ทเอง เหมือนทุกอย่างในการ์ดนี้ การเปลี่ยนแปลงมีผลตอนรีสตาร์ทรอบถัดไป
เรื่อง RAM ตัวเลขที่ผู้พัฒนาขอ กับสิ่งที่เราขาย
หัวข้อนี้ควรอ่านก่อนจะทุ่มทั้งเย็นไปกับการปรับปุ่ม
หน้าความต้องการระบบของ Pocketpair ระบุหน่วยความจำไว้ที่ 16GB เติมท้ายว่า "Recommended for larger than 32GB" และพูดถึง 8GB เพียงว่า "is also bootable, but increases the possibility of server crashes due to out of memory"
ขั้นต่ำของเราสำหรับ Palworld คือ 8GB ขนาดที่ต่ำกว่านั้นถูกปิดไว้ในตัวเลือกขนาด และหน้าสร้างเซิร์ฟก็เขียนบอกตรง ๆ ขั้นต่ำนั้นเป็นการเลือกของเราเอง เพราะกลุ่มเล็ก ๆ รันบนมันได้จริง ไม่ใช่ตัวเลขที่ Pocketpair รับรอง และแพ็กเกจใหญ่สุดของเราคือ 32GB แปลว่าคำแนะนำของผู้พัฒนาอยู่ที่ปลายสุดของสิ่งที่เราขาย ส่วนคำว่า "มากกว่า 32GB" ของเขาอยู่เหนือขึ้นไปอีก
แปลเป็นภาษาคนสำหรับคุณ บน 8GB โลก Palworld ที่มี Pal เยอะและฐานเยอะจะไปชนเพดานเข้าสักวัน และอาการที่ได้คือเซิร์ฟดับ ไม่ใช่เซิร์ฟกระตุก ถ้ากราฟ RAM ขึ้นเครื่องหมาย OOM ให้หยุดปรับจูนแล้วขยับขนาด อธิบายกลไกไว้ ส่วน มีขนาดและราคาต่อชั่วโมงของแต่ละขนาด
บูตครั้งแรกช้าเท่าที่มันต้องช้า
เซิร์ฟ Palworld ที่เพิ่งสร้างอาจใช้เวลาถึง 20 นาทีกว่าจะรับผู้เล่นได้ และนั่นคือเรื่องปกติ ไม่ใช่ความผิดปกติ SteamCMD กำลังติดตั้งตัวเซิร์ฟเวอร์ขนาด 12–15GB ลงบนวอลุ่มโลกของคุณก่อนเกมจะเริ่มได้ และแพลตฟอร์มเผื่อเวลาไว้ให้เต็ม 20 นาที การบูตหลังแพตช์ใหญ่ของ Palworld ก็ช้าด้วยเหตุผลเดียวกัน เพราะการอัปเดตทำงานตอนบูต
ถ้าเลยจากนั้นไปไกลแล้วยังไม่ขึ้น นั่นไม่ใช่การติดตั้งที่ช้าแล้ว ควรทักหาซัพพอร์ตดีกว่ากดรีสตาร์ทซ้ำอีกรอบ
อ่านต่อ
- — วิธีติดตั้งเอง และต้นทุนจริงของการรันที่บ้าน
- — OOM คืออะไร และต้องใช้เท่าไหร่
- — อ่านการ์ดการใช้ทรัพยากรให้ครบ
- — เซิร์ฟที่หลับอยู่ไม่ใช่เซิร์ฟที่ช้า