atop เป็นเครื่องมือตรวจสอบประสิทธิภาพแบบเต็มหน้าจอ (full-screen) ที่ให้รายงานโดยละเอียดเกี่ยวกับกระบวนการทั้งหมดของระบบ รวมถึงกระบวนการที่สิ้นสุดลงแล้ว โดยการบันทึกกิจกรรมระบบอย่างต่อเนื่องในช่วงเวลาที่กำหนด และเก็บข้อมูลไว้เพื่อใช้วิเคราะห์ภายหลัง
บันทึก (logs) เหล่านี้สามารถใช้เพื่อวัตถุประสงค์ต่างๆ เช่น การวิเคราะห์ระบบ, ปรับแต่งประสิทธิภาพ, ระบุจุดคอขวด (bottlenecks), แก้ไขปัญหา (debugging), หรือติดตามสาเหตุของการโหลดระบบที่ไม่คาดคิด
แตกต่างจากเครื่องมือแบบดั้งเดิมอย่าง top หรือ htop ที่แสดงข้อมูลระบบแบบเรียลไทม์เท่านั้น atop ให้คุณดูย้อนกลับไปในอดีตและตรวจสอบว่ามีอะไรเกิดขึ้นในช่วงเวลาที่บันทึกไว้ ซึ่งมีคุณค่าอย่างยิ่งสำหรับผู้ดูแลระบบในการรักษาเซิร์ฟเวอร์ให้ทำงานลื่นไหล
ในบทความนี้ เราจะครอบคลุมถึงสิ่งที่ atop เสนอ วิธีติดตั้งบนการกระจาย Linux ยอดนิยม และวิธีใช้งานอย่างมีประสิทธิภาพเพื่อติดตามและวิเคราะห์ประวัติประสิทธิภาพของระบบ
Atop คืออะไร?
atop เป็นเครื่องดูแลระบบและกระบวนการแบบเต็มหน้าจอสำหรับ Linux ออกแบบมาเพื่อรายงานกิจกรรมระดับระบบและระดับกระบวนการ รวมถึง:
- ดูกระบวนการที่กำลังรันและที่เสร็จสิ้นทั้งหมด
- ตรวจสอบการใช้ CPU, หน่วยความจำ, ดิสก์, และเครือข่ายต่อกระบวนการ
- บันทึกกิจกรรมทั้งหมดในไฟล์ไบนารีเพื่อวิเคราะห์ภายหลัง
- ตรวจจับกระบวนการ zombie และ orphan
- แสดงการใช้ทรัพยากรระดับเธรด (thread-level)
- ตรวจสอบกิจกรรมต่อผู้ใช้และต่อโปรแกรม
- แสดง pressure stalls (PSI) สำหรับ CPU/หน่วยความจำ/ดิสก์ ในเคอร์เนลรุ่นใหม่
- รองรับ cgroup v2 เหมาะสำหรับสภาพแวดล้อมคอนเทนเนอร์
- รองรับ Netatop สำหรับสถิติเครือข่ายต่อกระบวนการ (optional)
สิ่งที่ทำให้ atop โดดเด่น: สามารถบันทึกกิจกรรมทั้งหมดลงดิสก์ในช่วงเวลาปกติ (ค่าเริ่มต้นทุก 10 นาที) คุณสามารถเล่นซ้ำ (replay) ส่วนใดก็ได้ของประวัติระบบและขุดลึกลงไปดูว่ามีอะไรเกิดขึ้น
นี่เป็นข้อได้เปรียบมหาศาลเมื่อต้อง debug การ crash แบบสุ่ม, ติดตามการใช้ทรัพยากรผิดปกติ, หรือตรวจสอบการใช้งานตามเวลา โดยเฉพาะสำหรับเซิร์ฟเวอร์ headless หรือระบบ production
การติดตั้งเครื่องมือตรวจสอบ Atop บน Linux
atop พร้อมใช้ใน repository ของการกระจาย Linux ส่วนใหญ่ คุณสามารถติดตั้งผ่าน package manager ของระบบ หรือคอมไพล์จากซอร์สเพื่อรุ่นล่าสุด
บน RHEL/CentOS/Fedora
ก่อนอื่น ต้องเปิดใช้งาน repository EPEL บนการกระจายแบบ RHEL-based เพื่อติดตั้ง atop
sudo dnf install epel-release
หลังจากเปิด EPEL แล้ว ใช้ dnf ติดตั้งแพ็กเกจ atop:
sudo dnf install atop
บน Debian/Ubuntu
บนการกระจายแบบ Debian-based ติดตั้ง atop จาก repository เริ่มต้นด้วย apt:
sudo apt-get install atop
บน Arch Linux / Manjaro
หากใช้ rolling-release distro อย่าง Arch หรืออนุพันธ์ ติดตั้ง atop เพียงคำสั่งเดียว:
sudo pacman -S atop
ติดตั้ง atop จากซอร์ส (ทางเลือก)
หากต้องการรุ่นล่าสุด (เช่น repo เก่าเกินไป หรือต้องการฟีเจอร์ล่าสุด) สามารถสร้าง atop จากซอร์สได้:
wget https://www.atoptool.nl/download/atop-2.12.0.tar.gz tar -xzf atop-2.12.0.tar.gz cd atop-2.12.0 make sudo make install
หมายเหตุ: อาจต้องติดตั้งเครื่องมือพัฒนา เช่น build-essential (Debian) หรือ gcc, make ฯลฯ ขึ้นอยู่กับ distro
หลังติดตั้ง atop แล้ว ต้องเปิดใช้งานบริการบันทึกพื้นหลัง (background logging service) เพื่อให้เริ่มเก็บข้อมูลประสิทธิภาพอัตโนมัติเมื่อบูท:
sudo systemctl enable --now atop sudo systemctl enable --now atop-rotate.timer
เริ่มต้นใช้งาน atop บน Linux
หลังติดตั้งและเปิดบริการ logging แล้ว เริ่ม atop ในเทอร์มินัล:
atop
คุณจะเห็นอินเทอร์เฟซแบบไดนามิก มีสี คล้าย top รีเฟรชทุก 10 วินาทีโดยค่าเริ่มต้น

ปรับแต่งช่วงเวลาบันทึก (ค่าเริ่มต้น: 600 วินาที)
ค่าเริ่มต้น atop บันทึกกิจกรรมระบบทุก 600 วินาที (10 นาที) ซึ่งอาจเพียงพอสำหรับการตรวจสอบทั่วไป แต่บ่อยครั้งน้อยเกินไปสำหรับการ troubleshooting โดยเฉพาะเมื่อตามหา spike การใช้ทรัพยากรที่สั้นหรือ debug bottleneck
sudo sed -i 's/600/60/' /etc/atop/atop.daily [Under RedHat based systems] sudo sed -i 's/600/60/' /etc/default/atop [Under Debian based systems]
หลังเปลี่ยนแล้ว atop จะเก็บ log ทุกนาที ให้ภาพชัดเจนของพฤติกรรมระบบตามเวลา มีประโยชน์มากสำหรับการวินิจฉัยปัญหาที่เป็นรอย, วิเคราะห์แนวโน้ม, หรือตรวจสอบเซิร์ฟเวอร์ภายใต้โหลดหนัก
ดูข้อมูลการจัดตารางเวลา (กดปุ่ม s)
กดปุ่ม s เพื่อดูว่า kernel จัดตารางกระบวนการอย่างไร แสดงเวลา CPU ที่แต่ละกระบวนการใช้ และระยะเวลาที่อยู่ในสถานะ "running"
atop -s
วิเคราะห์การใช้หน่วยความจำ (กดปุ่ม m)
กด m เพื่อดูการใช้หน่วยความจำของกระบวนการทั้งหมด คอลัมน์ VSIZE แสดงหน่วยความจำเสมือนทั้งหมดที่จัดสรร RSIZE แสดงส่วนที่อยู่ใน RAM จริง นอกจากนี้ VGROW และ RGROW แสดงการเพิ่ม/ลดของหน่วยความจำเสมือนและจริงในช่วงปัจจุบัน คอลัมน์ MEM แสดงเปอร์เซ็นต์หน่วยความจำที่แต่ละกระบวนการใช้
atop -m
ตรวจสอบการใช้งานดิสก์ (กดปุ่ม d)
Disk I/O เป็น bottleneck ในหลายระบบ atop ทำให้ตรวจสอบง่ายด้วยปุ่ม d แสดงกิจกรรมดิสก์ระดับระบบ รวมถึงสถิติ LVM และประสิทธิภาพต่อดิสก์ คอลัมน์ RDDSK และ WRDSK แสดงข้อมูลอ่าน/เขียน (KB/s) คอลัมน์ DSK และ LVM ช่วยระบุโวล्यูมหรือดิสก์ที่ทำงานหนักที่สุด
atop -d
ดูข้อมูลกระบวนการโดยละเอียด (กดปุ่ม v)
ปุ่ม v เปิดการแบ่งส่วนรายละเอียดของแต่ละกระบวนการ แสดงค่า UID, PID, GID, และเปอร์เซ็นต์ CPU ใช้งานเฉพาะเจาะจงเมื่อต้องติดตามผู้ใช้หรือบริการด้วยตัวเลข ID หรือตรวจสอบว่ากรุ๊ปไหนเป็นเจ้าของกระบวนการที่ใช้ทรัพยากรมาก
atop -v
แสดงคำสั่งกระบวนการ (กดปุ่ม c)
เมื่อต้องการดูคำสั่งเต็มที่รันสำหรับแต่ละกระบวนการ กด c จะแทนที่ชื่อกระบวนการด้วยคำสั่งเต็ม ช่วยระบุว่าเป็นสคริปต์, ไบนารี, หรือ flag ไหน ที่ช่วยแยก instance หลายตัวของแอปเดียวกัน หรือ debug งานที่ผู้ใช้ส่ง
atop -c
จัดกลุ่มกระบวนการตามโปรแกรม (กดปุ่ม p)
กด p เพื่อได้สรุประดับโปรแกรม รวมข้อมูลต่อ executable program แสดงจำนวนครั้งที่ถูก spawn และการใช้ทรัพยากรสะสม คอลัมน์ซ้ายสุดแสดงจำนวน spawn ขวาสุดแสดงชื่อโปรแกรมจริง
atop -p
จัดกลุ่มกระบวนการตามผู้ใช้ (กดปุ่ม u)
กด u เพื่อดูการใช้ทรัพยากรระดับผู้ใช้ แสดงจำนวนกระบวนการที่แต่ละผู้ใช้รันอยู่หรือรันในช่วง monitoring รวมถึง CPU และหน่วยความจำสะสม
atop -u
ตรวจสอบการใช้งานเครือข่าย (กดปุ่ม n)
เพื่อเปิดสถิติเครือข่ายต่อกระบวนการ ต้องติดตั้งและเปิดใช้งาน kernel module Netatop ซึ่งเพิ่มความสามารถของ atop ในการแสดง traffic ส่ง/รับต่อกระบวนการ
# RedHat-based: sudo yum install kernel-devel zlib-devel # Debian-based: sudo apt-get install zlib1g-dev
ดาวน์โหลดและสร้าง:
wget https://www.atoptool.nl/download/netatop-0.3.tar.gz tar -xvf netatop-0.3.tar.gz cd netatop-0.3 make sudo make install
โหลดโมดูลและเริ่ม daemon อัตโนมัติหลังบูท:
sudo systemctl start netatop sudo systemctl enable netatop
หลังติดตั้งแล้ว กด n ภายใน atop จะแสดง bytes ส่ง/รับ, packet counts, และ network errors ต่อกระบวนการ
atop -n
เข้าถึงบันทึกประวัติ (Historical Logs)
Atop เก็บไฟล์ log แบบไบนารีที่:
/var/log/atop/atop_YYYYMMDD
เช่น ไฟล์ atop_20250630 มี log วันที่ 30 มิถุนายน 2025 เป็นไฟล์ไบนารี ไม่ใช่ human-readable – เฉพาะ atop เท่านั้นที่ parse ได้
เพื่อดูช่วงเวลาเฉพาะจาก log วันนี้ เช่น เริ่ม 05:05 น.:
atop -r -b 05:05 -l 1
โดยที่:
-rบอก Atop ให้อ่านจากไฟล์ log-bระบุเวลาเริ่มต้น-l 1จำกัดเอาต์พุตเพียงหนึ่ง snapshot interval
ใช้ spacebar เพื่อเลื่อนไป interval ถัดไป T เพื่อย้อนกลับ Z เพื่อกระโดดไป entry ล่าสุด
ดูคำสั่งช่วยเหลือภายใน Atop
ขณะอยู่ในอินเทอร์เฟซ atop กด ? เพื่อดูรายการคำสั่งและ shortcut ทั้งหมด มีประโยชน์เมื่อต้องการค้นหาตัวเลือกที่ซ่อนอยู่หรือปรับแต่งการแสดงผล
สรุป
หวังว่าบทความนี้จะมีประโยชน์และช่วยให้คุณระบุหรือป้องกันปัญหากับระบบ Linux ได้ หากมีคำถามหรือต้องการคำอธิบายเพิ่มเติมเกี่ยวกับการใช้งาน atop กรุณาแสดงความคิดเห็นด้านล่าง