Linux Performance Monitoring Linux

Linux Performance Monitoring

📅 2026-02-09 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

Linux Performance Monitoring คืออะไร / ทำไมถึงสำคัญ

เฮ้ย น้อง! Linux Performance Monitoring เนี่ย มันก็เหมือนหมอตรวจสุขภาพคอมพิวเตอร์เรานั่นแหละ แต่หมอคนนี้เป็นโปรแกรมที่คอยส่องดูการทำงานของระบบ Linux แบบเรียลไทม์ หรือจะดูย้อนหลังก็ได้

ทำไมถึงสำคัญน่ะเหรอ? สมัยผมทำร้านเน็ต SiamCafe เมื่อ 20 กว่าปีก่อน (โอ้โห นานเนอะ) Server มันรวนบ่อยมาก! บางทีเกมค้าง, เว็บอืด, โหลดอะไรก็ช้า... ปัญหาพวกนี้แหละที่ Performance Monitoring ช่วยเราแก้ได้

มันช่วยให้เรารู้ว่า CPU ทำงานหนักไปไหม, Memory เหลือน้อยหรือเปล่า, Disk I/O (การอ่านเขียนข้อมูลบนฮาร์ดดิสก์) เยอะเกินไปไหม, Network ติดขัดตรงไหน... พอรู้สาเหตุ เราก็แก้ปัญหาได้ตรงจุดไงล่ะ ไม่ต้องเดามั่วๆ เหมือนเมื่อก่อนแล้ว

พื้นฐานที่ต้องรู้

CPU Utilization

CPU Utilization ก็คือ เปอร์เซ็นต์การใช้งาน CPU นั่นแหละ ถ้า 100% ตลอดเวลา แสดงว่า CPU ทำงานหนักมาก อาจจะต้องหาโปรแกรมที่กิน CPU เยอะๆ แล้วจัดการซะ หรือไม่ก็ต้องอัพเกรด CPU แล้วล่ะ

Memory Usage

Memory (RAM) ก็สำคัญไม่แพ้กัน ถ้า Memory เหลือน้อย ระบบจะเริ่มใช้ Swap space (พื้นที่บนฮาร์ดดิสก์ที่ใช้แทน Memory) ซึ่งมันช้ากว่า Memory จริงๆ เยอะมาก ทำให้ระบบอืดเป็นเรือเกลือเลยล่ะ

Disk I/O

Disk I/O คือการอ่านเขียนข้อมูลบนฮาร์ดดิสก์ ถ้าโปรแกรมต้องอ่านเขียนข้อมูลเยอะๆ ก็จะทำให้ Disk I/O สูง ถ้า Disk I/O สูงเกินไป ก็อาจจะต้องเปลี่ยนไปใช้ SSD (Solid State Drive) ที่เร็วกว่า หรือไม่ก็ต้องปรับแต่งโปรแกรมให้ใช้ Disk I/O น้อยลง

วิธีใช้งาน / เริ่มต้นยังไง

การเริ่มต้นใช้งาน Linux Performance Monitoring ไม่ยากอย่างที่คิด สมัยนี้มีเครื่องมือให้เลือกใช้เยอะแยะ ทั้งแบบที่มาพร้อมกับ Linux (เช่น top, vmstat, iostat) และแบบที่ต้องติดตั้งเพิ่ม (เช่น Grafana, Prometheus)

ผมแนะนำให้เริ่มจากเครื่องมือที่มาพร้อมกับ Linux ก่อน เพราะมันใช้งานง่าย และมีข้อมูลพื้นฐานที่จำเป็นครบถ้วน พอเริ่มคล่องแล้วค่อยไปลองใช้เครื่องมือที่ซับซ้อนขึ้น

สำหรับมือใหม่ ผมแนะนำให้ลองใช้คำสั่ง top ดูก่อน มันจะแสดงรายการโปรแกรมที่กำลังทำงานอยู่ และบอกว่าแต่ละโปรแกรมใช้ CPU และ Memory ไปเท่าไหร่

ขั้นตอนปฏิบัติจริง

ใช้คำสั่ง top ดูภาพรวม

เปิด Terminal แล้วพิมพ์ top แล้วกด Enter เราจะเห็นข้อมูลแบบเรียลไทม์เลย


top - 14:30:00 up 1 day, 2:30,  1 user,  load average: 0.10, 0.05, 0.01
Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  0.5 sy,  0.0 ni, 97.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8173760 total,  1234560 free,  4567890 used,  2371310 buff/cache
KiB Swap:  2097152 total,  2097152 free,        0 used.  3210980 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1234 user      20   0  1234m  5678k  1234k S   1.0  0.1   0:01.23 program1
 5678 user      20   0  5678m  9012k  5678k S   0.5  0.1   0:00.56 program2

top จะแสดงข้อมูล CPU utilization, Memory usage, และรายการโปรแกรมที่กำลังทำงานอยู่ เรียงตามลำดับการใช้ CPU จากมากไปน้อย

ใช้คำสั่ง vmstat ดู Memory และ Swap

คำสั่ง vmstat จะช่วยให้เราดู Memory และ Swap usage ได้ง่ายขึ้น พิมพ์ vmstat 1 แล้วกด Enter มันจะแสดงข้อมูลทุกๆ 1 วินาที


procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1234560 234567 3456789    0    0     0     0   12   34  1  1 98  0  0

ดูที่คอลัมน์ swpd ถ้ามีค่าเยอะๆ แสดงว่าระบบกำลังใช้ Swap space เยอะมาก ต้องเพิ่ม Memory แล้วล่ะ

วิเคราะห์ Log Files

Log files ก็เป็นแหล่งข้อมูลที่สำคัญ สมัยก่อนผมไล่อ่าน Log file แทบทุกวัน! มันจะบอกเราว่ามี Error อะไรเกิดขึ้นบ้าง, มีใครพยายาม Hack ระบบเราหรือเปล่า, หรือโปรแกรมไหนมีปัญหา

Log file ที่สำคัญๆ ก็เช่น /var/log/syslog, /var/log/auth.log, /var/log/apache2/error.log (ถ้าใช้ Apache web server)

เครื่องมืออย่าง grep, awk, sed ช่วยให้เราค้นหาข้อมูลใน Log file ได้ง่ายขึ้น

อย่าลืมแวะไปดู SiamCafe Blog นะครับ มีบทความดีๆ อีกเยอะเลย

เปรียบเทียบกับทางเลือกอื่น

นอกจากเครื่องมือที่มาพร้อมกับ Linux แล้ว ยังมีเครื่องมือ Performance Monitoring อีกหลายตัวให้เลือกใช้ แต่ละตัวก็มีข้อดีข้อเสียแตกต่างกันไป

สมัยนี้ Cloud Monitoring ก็มาแรง พวก AWS CloudWatch, Google Cloud Monitoring, Azure Monitor ก็เป็นทางเลือกที่ดี ถ้าเราใช้ Cloud infrastructure อยู่

เครื่องมือ ข้อดี ข้อเสีย เหมาะกับใคร
top ใช้งานง่าย, มาพร้อมกับ Linux ข้อมูลดิบ, ไม่สวยงาม มือใหม่, ต้องการดูภาพรวม
vmstat ดู Memory และ Swap ได้ง่าย ข้อมูลดิบ, ไม่สวยงาม มือใหม่, ต้องการดู Memory usage
Grafana + Prometheus กราฟสวยงาม, ปรับแต่งได้เยอะ ติดตั้งยาก, ต้องใช้เวลาเรียนรู้ มืออาชีพ, ต้องการ Monitoring แบบละเอียด
AWS CloudWatch ใช้งานง่าย, Integrated กับ AWS ผูกติดกับ AWS, อาจมีค่าใช้จ่าย ใช้ AWS Cloud

เลือกเครื่องมือที่เหมาะกับความต้องการและงบประมาณของเรานะครับ ไม่มีเครื่องมือไหนที่ดีที่สุดสำหรับทุกคน

ถ้าอยากรู้เรื่อง IT สนุกๆ แบบนี้อีก อย่าลืมติดตาม SiamCafe Blog นะครับ!

🎬 วิดีโอแนะนำ

ดูวิดีโอเพิ่มเติมเกี่ยวกับLinux Performance Monitoring:

Best Practices / เคล็ดลับจากประสบการณ์

เอาล่ะน้องๆ มาถึงส่วนที่พี่จะแชร์ประสบการณ์จริงที่สั่งสมมาตลอด 28 ปี สมัยทำร้านเน็ต SiamCafe พี่เจอปัญหาเพอร์ฟอร์แมนซ์ของ Linux มาหมดแล้ว ทั้งเครื่องอืด เกมแลค เว็บล่ม (เมื่อก่อนยังไม่มี Cloud นะจ๊ะ ต้องดูแลเองทุกอย่าง)

สิ่งที่พี่จะบอกคือ อย่ารอให้เกิดปัญหาแล้วค่อยแก้! ต้องมอนิเตอร์ Performance เชิงรุก (Proactive Monitoring) คือต้องรู้ว่าอะไรผิดปกติก่อนที่มันจะส่งผลกระทบกับผู้ใช้งาน

3-4 เทคนิคที่ใช้ได้จริง

1. Set Alerts and Notifications

ข้อนี้สำคัญมาก! ติดตั้งระบบแจ้งเตือนเมื่อค่า Metrics ต่างๆ เกิน Threshold ที่เรากำหนดไว้ เช่น CPU Usage เกิน 90%, Memory Usage เกิน 80% หรือ Disk I/O สูงผิดปกติ สมัยก่อนพี่ใช้ Nagios แต่ปัจจุบันมี Tools ที่ทันสมัยกว่าเยอะ เช่น Prometheus + Alertmanager หรือ Grafana ที่สามารถ Visualize ข้อมูลและตั้ง Alert ได้

ยกตัวอย่างง่ายๆ สมมติเราอยาก Monitor CPU Usage บน Linux ด้วย Shell Script เราสามารถเขียน Script แบบนี้:


#!/bin/bash
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
THRESHOLD=90

if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
  echo "CPU Usage is high: $CPU_USAGE%"
  # Send email notification or trigger other actions
fi

Script นี้จะตรวจสอบ CPU Usage และถ้าเกิน 90% ก็จะส่ง Email แจ้งเตือน (ส่วนการส่ง Email ก็ต้องไป Config เพิ่มเติมนะ)

2. Understand Your Baseline

ก่อนจะตั้ง Threshold Alert ได้ เราต้องรู้ก่อนว่าค่าปกติ (Baseline) ของระบบเราคืออะไร เช่น CPU Usage ปกติอยู่ที่เท่าไหร่ Memory Usage ปกติอยู่ที่เท่าไหร่ Network Traffic ปกติอยู่ที่เท่าไหร่ การสร้าง Baseline ที่ดีต้องเก็บข้อมูลในช่วงเวลาที่ระบบทำงานปกติ (Peak Hours และ Off-Peak Hours) อย่างน้อย 1-2 สัปดาห์

สมัยก่อนพี่จะจดบันทึกค่าต่างๆ ไว้ใน Spreadsheet แล้วค่อยๆ ปรับ Threshold Alert ให้เหมาะสมกับแต่ละ Server

3. Use the Right Tools for the Job

Tools ที่ใช้ในการ Monitor Performance มีเยอะมาก เลือกใช้ให้เหมาะสมกับความต้องการและงบประมาณ สมัยก่อนพี่ใช้ `top`, `vmstat`, `iostat` เป็นหลัก แต่ปัจจุบันมี Tools ที่ Advanced กว่าเยอะ เช่น:

นอกจากนี้ยังมี Tools ที่เป็น Software สำเร็จรูป เช่น:

4. Correlate Metrics

อย่าดู Metrics แยกกัน ต้องดูภาพรวมและเชื่อมโยง Metrics ต่างๆ เข้าด้วยกัน เช่น ถ้า CPU Usage สูง อาจจะเกิดจาก Disk I/O สูง หรือ Network Traffic สูง การ Correlate Metrics จะช่วยให้เราหาสาเหตุของปัญหาได้เร็วขึ้น

เคยเจอเคสที่เกมในร้านแลค ปรากฏว่า Network Card เสีย ทำให้ Packet Loss สูง พอเปลี่ยน Network Card ทุกอย่างก็กลับมาปกติ

FAQ คำถามที่พบบ่อย

ทำไม CPU Usage สูงตลอดเวลา?

CPU Usage สูงอาจเกิดจากหลายสาเหตุ เช่น มี Process ทำงานหนัก, มี Malware, หรือ Hardware มีปัญหา ลองใช้ `top` หรือ `htop` เพื่อดูว่า Process ไหนใช้ CPU เยอะที่สุด

Memory Leak คืออะไร?

Memory Leak คือการที่โปรแกรม Allocate Memory แต่ไม่ Free Memory เมื่อใช้งานเสร็จ ทำให้ Memory Usage เพิ่มขึ้นเรื่อยๆ จนระบบ Out of Memory วิธีแก้คือต้องหา Memory Leak ใน Code และแก้ไข

Disk I/O สูงส่งผลเสียอย่างไร?

Disk I/O สูงทำให้ระบบช้าลง เพราะ Process ต้องรอ Disk อ่าน/เขียนข้อมูลนานขึ้น ลองใช้ `iostat` เพื่อดูว่า Disk ไหนมี I/O สูง และ Process ไหนใช้ Disk เยอะที่สุด

Swap Space คืออะไร?

Swap Space คือพื้นที่บน Disk ที่ใช้เป็น Virtual Memory เมื่อ RAM ไม่พอ Swap Space จะช่วยให้ระบบทำงานต่อไปได้ แต่การใช้ Swap Space จะทำให้ระบบช้าลง เพราะ Disk ช้ากว่า RAM มาก

สรุป

การ Monitor Performance ของ Linux เป็นเรื่องสำคัญมาก โดยเฉพาะอย่างยิ่งถ้าเราใช้งาน Linux ใน Production Environment ต้อง Monitor เชิงรุก (Proactive Monitoring), ตั้ง Alerts, เข้าใจ Baseline, ใช้ Tools ให้เหมาะสม และ Correlate Metrics ต่างๆ

หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะครับ อย่าลืมไปลองทำตามกันดู SiamCafe Blog มีบทความดีๆ อีกเยอะเลย

และถ้าใครสนใจเรื่อง Forex ลองดูที่ iCafeForex นะครับ