เคยไหม? คอมพิวเตอร์หรือเซิร์ฟเวอร์อยู่ดีๆ ก็ช้าลง พัดลมหมุนเสียงดัง หรือจู่ ๆ โปรแกรมก็ค้าง สมมติฐานแรกของสาย Dev และ SysAdmin มักจะพุ่งเป้าไปที่“มี Process ไหนกำลังกินทรัพยากรอยู่หรือเปล่า?”และเครื่องมือพื้นฐานที่ทรงพลังที่สุดในการเช็กเรื่องนี้โดยไม่ต้องติดตั้งโปรแกรมเพิ่มก็คือคำสั่ง ps (Process Status)ครับ
💡 ความแตกต่างพื้นฐาน: Linux vs macOS
แม้ว่าทั้ง Linux และ macOS จะเป็นระบบปฏิบัติการตระกูล Unix-like เหมือนกัน และใช้คำสั่ง ps ได้เหมือนกัน แต่เบื้องหลังมีความต่างกันเล็กน้อย
- Linux (Ubuntu, CentOS, etc.): ส่วนใหญ่ใช้
psเวอร์ชัน GNU ซึ่งรองรับ Option ทั้งแบบมีขีด (-ef) และแบบไม่มีขีดสไตล์ BSD (aux) - macOS: ใช้
psเวอร์ชัน BSD เป็นหลัก ทำให้อ่าน Option บางตัวของฝั่ง GNU ไม่ได้ แต่ Option มาตรฐานสไตล์ BSD นั้นใช้งานได้ลื่นไหล
ข้อควรระวัง: เวลาเปิดดู Cheat Sheet จากอินเทอร์เน็ต Option บางตัวของ Linux อาจจะเอามาใช้บน Mac แล้วขึ้น Syntax Error ได้ครับ
🚀 4 คำสั่งยอดฮิตที่ต้องจำ (ใช้ได้ทั้ง Linux และ macOS)
หากคุณไม่อยากจำ Option แพลตฟอร์มให้ปวดหัว นี่คือ 4 คำสั่งมาตรฐาน ที่ทำงานได้เหมือนกันทั้งบน Linux และ Mac ครับ
ดู Process ทั้งหมดในระบบ (สไตล์ BSD)
ps aux
- a = ดู Process ของผู้ใช้ทุกคน
- u = แสดงรายละเอียดเชิงลึก (เช่น %CPU, %MEM, User)
- x = รวม Process ที่ไม่ได้รันบน Terminal (เช่น Background Services)
ดู Process ทั้งหมดในระบบ (สไตล์ Standard/Linux)
ps -ef
- -e = แสดงทุก Process
- -f = แสดงข้อมูลแบบ Full-format (เห็นสายลำดับ Parent/Child ชัดเจน)
ค้นหา Process ที่ต้องการโดยเฉพาะ (ใช้คู่กับ grep)
ถ้าต้องการหาโปรแกรมเฉพาะเจาะจง เช่น อยากรู้ว่า nginx หรือ node รันอยู่ไหม และได้ PID (Process ID) อะไร ให้ใช้ Pipe (|) คู่กับ grepps aux | grep nginx
ดู Process ที่เป็นของตัวเราเอง (Current User)
ps -u $USER
วิธีอ่านผลลัพธ์จากคำสั่ง ps aux
เมื่อกดรัน ps aux สิ่งที่คุณจะเห็นคือตารางขนาดยาว ซึ่งมีหัวข้อหลักๆ ที่ต้องรู้ดังนี้ครับ
| หัวข้อ (Column) | ความหมาย |
| USER | ผู้ที่เป็นเจ้าของ Process นั้น |
| PID | Process ID (เลขประจำตัว เอาไว้ใช้สั่ง kill) |
| %CPU | เปอร์เซ็นต์การใช้งาน CPU ในขณะนั้น |
| %MEM | เปอร์เซ็นต์การใช้งาน Memory (RAM) ในขณะนั้น |
| VSZ / RSS | ขนาดของ Virtual Memory และ RAM จริงที่ถูกใช้งาน (หน่วยเป็น KB) |
| TTY | หน้าจอ Terminal ที่สั่งรัน (ถ้าขึ้น ? หรือ ?? แปลว่าเป็น Background Service) |
| STAT | สถานะของ Process (เช่น R = Running, S = Sleeping, Z = Zombie) |
| COMMAND | คำสั่งหรือพาธของโปรแกรมที่กำลังรันอยู่ |
🛠️ Advanced Tricks: เทคนิคการใช้งานขั้นสูง
จัดอันดับตัวกินทรัพยากร (Sort)
ถ้าอยากรู้ว่า Process ไหนกำลังแย่ง CPU หรือ RAM มากที่สุด ให้ใช้ Option --sort (บน Linux) หรือสั่ง sort ต่อท้าย (บน Linux/Mac)
- หาตัวกิน CPU สูงสุด (ใช้ได้ทั้ง Linux/Mac)
ps aux | sort -nr -k 3 | head -n 10
(คำสั่งนี้จะดึง 10 อันดับแรกที่กิน CPU สูงสุดออกมาแสดง) - หาตัวกิน RAM สูงสุด (ใช้ได้ทั้ง Linux/Mac)
ps aux | sort -nr -k 4 | head -n 10
สั่งปิดโปรแกรมเจ้าปัญหา (Kill Process)
เมื่อคุณใช้คำสั่ง ps aux | grep โปรแกรม จนเจอเลข PID ของโปรแกรมที่ค้างแล้ว คุณสามารถสั่งปิดมันได้ทันทีด้วยคำสั่ง killkill 12345
(เปลี่ยน 12345 เป็นเลข PID จริงของคุณ)
Tip: ถ้ามันค้างหนักมากจนปิดไม่ลง ให้ใช้ไม้ตาย kill -9 12345 เพื่อบังคับปิดทันที (Force Kill)
📝 สรุปสั้นๆ สำหรับผู้เริ่มต้น
- นึกอะไรไม่ออก ให้พิมพ์
ps aux - ถ้าอยากค้นหาโปรแกรม ให้พิมพ์
ps aux | grep ชื่อโปรแกรม - ได้เลข PID มาแล้ว โปรแกรมค้าง ให้พิมพ์
kill [เลข PID]
เพียงเท่านี้คุณก็สามารถควบคุมและตรวจสอบพลังงานภายในเครื่อง Linux และ Mac ของคุณได้อย่างมืออาชีพแล้วครับ
อ่านเพิ่มเติม
