한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

คู่มือเกมแลค › L7 OS ของเซิร์ฟเวอร์ (เคอร์เนล)

งานตามกำหนดเวลา (scheduled job) Cron jobs (log rotation, backup, scans)

ID สาเหตุ so-cron · ผู้รับผิดชอบหลัก อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)

เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →

งานบีบอัด log, การสำรองข้อมูล และการสแกนความปลอดภัยที่รันเวลาเดิมทุกวันจะกิน CPU และดิสก์

ทำไม งานของ OS เริ่มรันตามเวลาที่กำหนด → ผลคือ แย่ง CPU และดิสก์กับเซิร์ฟเวอร์เกม → บนหน้าจอ กระตุกและสโลว์โมชั่นในเวลาเดิม เช่น 04:00 ทุกวัน

อาการ
กระตุก, สโลว์โมชั่น
ปัจจัย
การหยุดชะงัก
ใครเจอ
ทั้งเซิร์ฟเวอร์
เกิดเมื่อไร
เป็นรอบสม่ำเสมอ
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
งานฝั่งทีมอินฟรา
กระจายเวลาของงาน, ลดลำดับความสำคัญ (nice, ionice), แยกออกจากเซิร์ฟเวอร์เกม (รันบนเซิร์ฟเวอร์อื่น)
บนกราฟ
พุ่งเป็นรอบ · อัตราการใช้ CPU, คิวดิสก์, เวลาต่อทิกของเซิร์ฟเวอร์
จุดที่ต้องดู
เวลารันของงานตามกำหนดเวลาจาก crontab และ systemctl list-timers และโปรเซสที่ใช้ CPU และดิสก์ตอนที่ทิกพุ่งจาก pidstat -u -d
สัญญาณว่าใช่
ทิกพุ่งเวลาเดิมทุกวัน (หรือทุกชั่วโมง) และตอนนั้นโปรเซสของงานตามกำหนดเวลากิน CPU และดิสก์
สัญญาณว่าไม่ใช่
เวลาที่พุ่งไม่ตรงกับเวลาเดิมของแต่ละวัน: ไม่ใช่สาเหตุนี้ ถ้าพุ่งทุกไม่กี่วินาทีหรือไม่กี่นาที ให้ดู “GC ของเซิร์ฟเวอร์หยุดทั้งระบบ”, “ตัวจับเวลาทำงานพร้อมกันจำนวนมาก”
วิธีตรวจ
ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)

แหล่งอ้างอิง

  1. ionice(1) — Linux manual page util-linux
    งานในคลาส idle จะได้ disk I/O ก็ต่อเมื่อไม่มีโปรแกรมอื่นใช้ดิสก์
  2. systemd.timer(5) — Linux manual page systemd
    RandomizedDelaySec ใช้หน่วงเวลางานตามกำหนดเวลาแบบสุ่ม เพื่อลดโหลดที่กระจุกตัว
  3. systemctl(1) — Linux manual page systemd
    list-timers: แสดง timer unit เรียงตามเวลารันครั้งถัดไป
  4. pidstat(1) — Linux manual page sysstat
    -u แสดง CPU, -d แสดง disk I/O แยกตามโปรเซส

สาเหตุที่ควรดูประกอบ

ชั้นเดียวกัน: L7 OS ของเซิร์ฟเวอร์ (เคอร์เนล)

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (กระตุก)

ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง