เซิร์ฟเวอร์เกมได้รับประโยชน์จากการรีสตาร์ทเป็นประจำเพื่อล้าง memory leak นำการเปลี่ยนแปลงการตั้งค่ามาใช้ และรักษาประสิทธิภาพให้เสถียรตลอดเซสชันการเล่นที่ยาวนาน คู่มือนี้แสดงวิธีตั้งค่าการรีสตาร์ทตามกำหนดเวลาอัตโนมัติโดยใช้ฟีเจอร์ Schedules ใน GPanel เพื่อให้เซิร์ฟเวอร์ของคุณมีสุขภาพดีโดยไม่ต้องดำเนินการด้วยตนเอง
ทำไมต้องตั้งกำหนดเวลารีสตาร์ท?
เซิร์ฟเวอร์เกมส่วนใหญ่สะสมการใช้หน่วยความจำและข้อมูลชั่วคราวเมื่อเวลาผ่านไป หากไม่มีการรีสตาร์ทเป็นระยะ คุณอาจสังเกตเห็น:
- อาการแลกและ rubber-banding ที่เพิ่มขึ้น เมื่อการใช้ RAM ไต่สูงขึ้นเป็นชั่วโมงหรือเป็นวัน
- การโหลด entity และ chunk ช้าลง ในเกมอย่าง Minecraft และ Project Zomboid
- memory leak ที่เกี่ยวข้องกับม็อด ซึ่งจะรีเซ็ตเฉพาะเมื่อรีสตาร์ทเซิร์ฟเวอร์ทั้งหมดเท่านั้น
- การนำการเปลี่ยนแปลงการตั้งค่ามาใช้ล่าช้า ซึ่งต้องรีสตาร์ทจึงจะมีผล
การรีสตาร์ทตามกำหนดเวลาทุก 6 ถึง 12 ชั่วโมงเป็นการตั้งค่าที่พบบ่อยที่สุดและช่วยป้องกันปัญหาเหล่านี้ส่วนใหญ่ได้
สิ่งที่ต้องมีก่อน
- เซิร์ฟเวอร์เกมที่ใช้งานอยู่กับ Legion Hosting
- สิทธิ์เข้าถึง GPanel ด้วยข้อมูลรับรองบัญชีของคุณ
- เซิร์ฟเวอร์ของคุณควรอยู่ในสถานะ Running (กำหนดการจะทำงานเฉพาะเมื่อเซิร์ฟเวอร์ออนไลน์ เว้นแต่จะกำหนดค่าไว้เป็นอย่างอื่น)
ขั้นตอนที่ 1: เปิดแท็บ Schedules
- เข้าสู่ระบบ GPanel และเลือกเซิร์ฟเวอร์ของคุณจากรายการเซิร์ฟเวอร์
- ที่แถบด้านข้างซ้าย คลิกแท็บ Schedules
- คุณจะเห็นรายการกำหนดการที่มีอยู่ หากนี่เป็นเซิร์ฟเวอร์ใหม่ รายการจะว่างเปล่า
ขั้นตอนที่ 2: สร้างกำหนดการใหม่
- คลิกปุ่ม Create Schedule
- ป้อน Name สำหรับกำหนดการ — ชื่อที่สื่อความหมาย เช่น
Auto Restart Every 6 Hours - ตั้งค่า Cron Expression เพื่อควบคุมว่ากำหนดการจะทำงานเมื่อใด ดูส่วนด้านล่างสำหรับตัวอย่างที่พบบ่อย
- ตรวจสอบให้แน่ใจว่า Enabled ถูกเปิดใช้งานอยู่
- คลิก Save เพื่อสร้างกำหนดการ
ขั้นตอนที่ 3: เพิ่ม Task การรีสตาร์ทเข้าไปในกำหนดการ
- หลังจากบันทึกกำหนดการแล้ว ให้คลิกที่ชื่อของมันเพื่อเปิด
- ใต้ส่วน Tasks คลิก New Task
- ตั้งค่า Action เป็น Send power action
- ตั้งค่า Payload เป็น Restart
- ตั้งค่า Time Offset เป็น
0วินาที (หมายความว่า task จะทำงานทันทีเมื่อกำหนดการเริ่มทำงาน) - คลิก Save
การรีสตาร์ทตามกำหนดเวลาของคุณตอนนี้เปิดใช้งานแล้ว เซิร์ฟเวอร์จะรีสตาร์ทโดยอัตโนมัติตาม cron expression ที่คุณกำหนดค่าไว้
ทำความเข้าใจ Cron Expression
GPanel ใช้ cron expression เพื่อกำหนดว่ากำหนดการจะทำงานเมื่อใด cron expression มีห้าฟิลด์คั่นด้วยช่องว่าง:
Minute Hour Day-of-Month Month Day-of-Week
* * * * *
| ฟิลด์ | ค่าที่อนุญาต | คำอธิบาย |
|---|---|---|
| Minute | 0–59 | นาทีของชั่วโมงที่ task จะทำงาน |
| Hour | 0–23 | ชั่วโมงของวัน (รูปแบบ 24 ชั่วโมง) |
| Day of Month | 1–31 | วันของเดือน |
| Month | 1–12 | เดือนของปี |
| Day of Week | 0–6 (0 = Sunday) | วันของสัปดาห์ |
อักขระพิเศษ:
*— ตรงกับทุกค่า (wildcard)*/N— ตรงกับทุก ๆ N ช่วง (เช่น*/6ในฟิลด์ Hour หมายถึงทุก 6 ชั่วโมง),— คั่นค่าหลายค่า (เช่น0,12หมายถึงเวลา 0 และ 12)
กำหนดการรีสตาร์ทที่พบบ่อย
ต่อไปนี้คือช่วงเวลารีสตาร์ทที่นิยมมากที่สุดและ cron expression ที่จะใช้ใน GPanel:
| ความถี่ในการรีสตาร์ท | Cron Expression | รีสตาร์ทเมื่อ (เวลาเซิร์ฟเวอร์) |
|---|---|---|
| ทุก 6 ชั่วโมง | 0 */6 * * * |
12:00 AM, 6:00 AM, 12:00 PM, 6:00 PM |
| ทุก 8 ชั่วโมง | 0 */8 * * * |
12:00 AM, 8:00 AM, 4:00 PM |
| ทุก 12 ชั่วโมง | 0 0,12 * * * |
12:00 AM, 12:00 PM |
| วันละครั้ง (4:00 AM) | 0 4 * * * |
4:00 AM |
| วันละครั้ง (6:00 AM) | 0 6 * * * |
6:00 AM |
| ทุก 3 ชั่วโมง | 0 */3 * * * |
12 AM, 3 AM, 6 AM, 9 AM, 12 PM, 3 PM, 6 PM, 9 PM |
การเตือนผู้เล่นก่อนการรีสตาร์ท
การรีสตาร์ทโดยไม่เตือนล่วงหน้าอาจขัดจังหวะผู้เล่นกลางคัน ทำให้เกิดความหงุดหงิดหรือสูญเสียความคืบหน้า คุณสามารถใช้ task Send Command ของ GPanel เพื่อกระจายข้อความเตือนไปยังผู้เล่นก่อนที่การรีสตาร์ทจะเกิดขึ้น
มันทำงานอย่างไร
แทนที่จะมี task รีสตาร์ทเพียงตัวเดียว คุณสร้างหลาย task ภายในกำหนดการเดียวกัน โดยเหลื่อมกันด้วย time offset:
- task Send Command ที่ offset
0ซึ่งกระจายข้อความเตือน (เช่น "Server restarting in 5 minutes") - task Send Command ที่ offset
240(4 นาทีต่อมา) พร้อมคำเตือนครั้งสุดท้าย (เช่น "Server restarting in 1 minute") - task Send power action → Restart ที่ offset
300(5 นาทีหลังจากคำเตือนแรก)
0 สำหรับทันที, 60 สำหรับ 1 นาที, 300 สำหรับ 5 นาที เป็นต้น
ตัวอย่าง: กำหนดการแบบเต็มพร้อมคำเตือน
นี่คือลักษณะของกำหนดการที่สมบูรณ์พร้อมคำเตือน 5 นาที คำเตือน 1 นาที และการรีสตาร์ท:
| Task # | Action | Payload / Command | Time Offset |
|---|---|---|---|
| 1 | Send command | (คำสั่งเตือนเฉพาะของเกม — ดูด้านล่าง) | 0 วินาที |
| 2 | Send command | (คำสั่งเตือนครั้งสุดท้ายเฉพาะของเกม) | 240 วินาที |
| 3 | Send power action | Restart | 300 วินาที |
คำสั่งเตือนเฉพาะของแต่ละเกม
คำสั่งที่คุณใช้กระจายข้อความไปยังผู้เล่นจะแตกต่างกันไปตามเกม ด้านล่างนี้คือคำสั่งสำหรับเกมยอดนิยมที่สุด:
Project Zomboid
ใช้คำสั่ง servermsg เพื่อส่งข้อความในเกมไปยังผู้เล่นที่เชื่อมต่ออยู่ทุกคน:
servermsg "Server restarting in 5 minutes. Please find a safe location."
servermsg "Server restarting in 1 minute!"
Minecraft
ใช้คำสั่ง say เพื่อกระจายข้อความแชทไปยังผู้เล่นทุกคน:
say Server restarting in 5 minutes. Please save your progress.
say Server restarting in 1 minute!
ARK: Survival Ascended
ใช้คำสั่ง broadcast เพื่อแสดงข้อความบนหน้าจอสำหรับผู้เล่นทุกคน:
broadcast Server restarting in 5 minutes. Please find a safe location.
broadcast Server restarting in 1 minute!
แนวทางปฏิบัติที่ดีที่สุด
- รีสตาร์ทในช่วงเวลาที่มีผู้เล่นน้อย หากเซิร์ฟเวอร์ของคุณมีตารางผู้เล่นที่คาดเดาได้ ให้ตั้งเวลารีสตาร์ทในช่วงที่มีผู้เล่นออนไลน์น้อยที่สุด การรีสตาร์ทรายวันเวลา 4:00 AM หรือ 6:00 AM ใช้ได้ดีกับชุมชนส่วนใหญ่
- ใส่คำเตือนเสมอ แม้แต่คำเตือน 1 นาทีก็ให้เวลาผู้เล่นในการไปยังที่ปลอดภัยหรือทำการแลกเปลี่ยนให้เสร็จ คำเตือน 5 นาทีถือว่าเหมาะสมที่สุด
- ใช้การสำรองข้อมูลควบคู่ไปกับการรีสตาร์ท หากเกมของคุณหรือ GPanel รองรับการสำรองข้อมูลอัตโนมัติ ให้ตั้งเวลาสำรองข้อมูลก่อนการรีสตาร์ท วิธีนี้รับประกันว่าคุณจะมีเซฟล่าสุดเสมอในกรณีที่มีอะไรผิดพลาด
- อย่ารีสตาร์ทบ่อยเกินไป การรีสตาร์ททุกชั่วโมงไม่จำเป็นสำหรับเซิร์ฟเวอร์ส่วนใหญ่และจะทำให้ผู้เล่นหงุดหงิด ทุก 6 ถึง 12 ชั่วโมงคือจุดที่เหมาะสมที่สุด เว้นแต่คุณกำลังรันเซิร์ฟเวอร์ที่มีม็อดจำนวนมากซึ่งมีปัญหา memory leak ที่ทราบกันดี
- ทดสอบกำหนดการของคุณ หลังจากสร้างกำหนดการแล้ว ให้กลับมาตรวจสอบหลังจากเวลาที่คาดว่าจะทำงานครั้งแรกเพื่อยืนยันว่าการรีสตาร์ทเกิดขึ้นจริง ดูที่ log คอนโซลของ GPanel สำหรับเหตุการณ์การรีสตาร์ท
- ตั้งชื่อกำหนดการของคุณให้ชัดเจน ใช้ชื่อที่สื่อความหมาย เช่น "6h Auto Restart with Warning" เพื่อให้คุณสามารถระบุได้อย่างรวดเร็วว่าแต่ละกำหนดการทำอะไร
การจัดการกำหนดการที่มีอยู่
คุณสามารถแก้ไขหรือปิดใช้งานกำหนดการได้ตลอดเวลาจากแท็บ Schedules ใน GPanel:
- การแก้ไขกำหนดการ: คลิกชื่อกำหนดการ เปลี่ยน cron expression หรือ task แล้วคลิก Save
- การปิดใช้งานกำหนดการชั่วคราว: เปิดกำหนดการแล้วปิด Enabled กำหนดการจะยังคงถูกบันทึกไว้แต่จะไม่ทำงานจนกว่าคุณจะเปิดใช้งานใหม่
- การลบกำหนดการ: คลิกไอคอนลบที่อยู่ถัดจากกำหนดการ การกระทำนี้จะลบมันอย่างถาวร
การแก้ปัญหา
| ปัญหา | สิ่งที่ต้องตรวจสอบ |
|---|---|
| กำหนดการไม่ทำงาน | เปิดกำหนดการและยืนยันว่า Enabled ถูกเปิดใช้งานอยู่ ตรวจสอบ cron expression อีกครั้ง — ข้อผิดพลาดที่พบบ่อยคือการใช้ลำดับฟิลด์ไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ออนไลน์อยู่เมื่อถึงเวลาที่กำหนดการควรทำงาน |
| การรีสตาร์ทเกิดขึ้นแต่ข้อความเตือนไม่ปรากฏ | ตรวจสอบให้แน่ใจว่า task Send Command ใช้คำสั่งที่ถูกต้องสำหรับเกมของคุณ ยืนยันว่า time offset น้อยกว่า offset ของ task รีสตาร์ท (เช่น คำเตือนที่ 0 วินาที, รีสตาร์ทที่ 300 วินาที) |
| เซิร์ฟเวอร์ไม่กลับมาออนไลน์หลังการรีสตาร์ท | ตรวจสอบคอนโซลของ GPanel สำหรับข้อผิดพลาดในการเริ่มทำงาน หากเซิร์ฟเวอร์ขัดข้องระหว่างการปิดเครื่อง มันอาจไม่รีสตาร์ทอย่างราบรื่น ลอง Start ด้วยตนเองจาก GPanel หากปัญหายังคงอยู่ ให้เปิดทิกเก็ตสนับสนุน |
| cron expression ไม่ถูกยอมรับ | GPanel ต้องการ 5 ฟิลด์พอดีใน cron expression (minute, hour, day of month, month, day of week) อย่าใส่ฟิลด์วินาที ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างหรืออักขระพิเศษเกินมา |
| คำสั่งเตือนถูกส่งออกไปแต่ผู้เล่นไม่เห็น | บางเกมต้องการรูปแบบที่เฉพาะเจาะจง สำหรับ Project Zomboid ข้อความต้องอยู่ในเครื่องหมายคำพูด: servermsg "Your message here" สำหรับ Minecraft คำสั่ง say ไม่ใช้เครื่องหมายคำพูด ตรวจสอบส่วนเฉพาะของแต่ละเกมด้านบน |
ต้องการความช่วยเหลือ?
หากคุณประสบปัญหาในการตั้งค่าการรีสตาร์ทตามกำหนดเวลา หรือกำหนดการของคุณไม่ทำงานตามที่คาดไว้ ให้เปิดทิกเก็ตสนับสนุน และระบุ:
- ชื่อเซิร์ฟเวอร์ของคุณจาก GPanel
- cron expression ที่คุณกำลังใช้
- คำอธิบายว่าเกิดอะไรขึ้น (หรือไม่เกิดขึ้น)
ทีมสนับสนุนของเราจะช่วยคุณกำหนดค่ากำหนดการให้ถูกต้อง