Giám sát tài nguyên hệ thống Linux với Sar

Tác giả: 21/02/2025

1. Giới thiệu về lệnh Sar

Lệnh sar (System Activity Reporter) là một công cụ mạnh mẽ trong bộ sysstat giúp giám sát hiệu năng và tài nguyên hệ thống trên Linux. Nó cung cấp thông tin chi tiết về CPU, bộ nhớ, I/O, mạng, và các thành phần khác của hệ thống. Với sar, quản trị viên hệ thống có thể dễ dàng theo dõi và phân tích hoạt động của server theo thời gian, từ đó xác định nguyên nhân gây ra các vấn đề về hiệu năng.

2. Lợi ích khi sử dụng sar

  • Giám sát chi tiết: Cung cấp thông tin chi tiết về tài nguyên như CPU, RAM, Disk I/O, mạng, và các tiến trình khác.
  • Lưu trữ lịch sử: Ghi lại dữ liệu theo thời gian để phân tích và phát hiện các xu hướng hoặc sự cố bất thường.
  • Hiệu quả và nhẹ: Tiêu tốn ít tài nguyên hệ thống trong quá trình thu thập dữ liệu.
  • Hỗ trợ nhiều tùy chọn: Có thể xuất báo cáo theo định dạng dễ đọc và phân tích.

3. Cách cài đặt

Trên hầu hết các bản phân phối Linux, bạn cần cài đặt gói sysstat để sử dụng lệnh sar:

  • Ubuntu/Debian:
    sudo apt update
    sudo apt install sysstat
  • CentOS/RHEL:
    sudo yum install sysstat

Sau khi cài đặt, hãy đảm bảo dịch vụ sysstat được bật:

#sudo systemctl enable sysstat
#sudo systemctl start sysstat

4. Các câu lệnh cơ bản

Theo dõi sử dụng CPU

Hiển thị mức sử dụng CPU mỗi 2 giây trong 5 lần.
Lệnh: #sar -u 2 5

 

 

Các cột đáng chú ý:

  • %user: CPU dành cho các tiến trình người dùng.
  • %system: CPU dành cho hệ thống (kernel).
  • %idle: Thời gian CPU nhàn rỗi.

Giám sát bộ nhớ

Theo dõi việc sử dụng bộ nhớ (RAM) và swap.
Lệnh: #sar -i 1 5

Theo dõi Disk I/O

Hiển thị thông tin về hoạt động đọc/ghi dữ liệu của ổ đĩa.
Lệnh: #sar -b 1 5

 

 

Các cột đáng chú ý:

  • tps (Transactions Per Second): Số lượng giao dịch I/O hoàn tất mỗi giây trên toàn hệ thống.
  • rtps (Reads Per Second): Số lượng giao dịch đọc hoàn tất mỗi giây.
  • wtps (Writes Per Second): Số lượng giao dịch ghi hoàn tất mỗi giây.
  • bread/s (Block Reads Per Second): Số lượng khối dữ liệu được đọc từ thiết bị vật lý mỗi giây (tính bằng kilobytes hoặc 512-byte blocks tùy hệ thống).
  • bwrtn/s (Block Writes Per Second): Số lượng khối dữ liệu được ghi vào thiết bị vật lý mỗi giây (tính bằng kilobytes hoặc 512-byte blocks tùy hệ thống).

Theo dõi hoạt động mạng

Cung cấp thông tin về lưu lượng mạng trên từng giao diện.
Lệnh: #sar -n DEV 1 5

 

 

Các cột đáng chú ý:

  • IFACE (Interface): Tên của cổng mạng, chẳng hạn eth0, lo, wlan0.
  • rxpck/s (Received Packets Per Second): Số lượng gói tin nhận được mỗi giây trên giao diện mạng.
  • txpck/s (Transmitted Packets Per Second): Số lượng gói tin gửi đi mỗi giây trên giao diện mạng.
  • rxkB/s (Received Kilobytes Per Second): Dữ liệu nhận được trên giao diện, tính bằng kilobytes mỗi giây.
  • txkB/s (Transmitted Kilobytes Per Second): Dữ liệu gửi đi trên giao diện, tính bằng kilobytes mỗi giây.
  • rxcmp/s (Received Compressed Packets Per Second): Số lượng gói tin nén nhận được mỗi giây. (Cột này hiếm khi được sử dụng, vì ít giao thức mạng nén dữ liệu tại mức này.)
  • rxmcst/s (Received Multicast Packets Per Second): Số lượng gói tin multicast nhận được mỗi giây trên giao diện.

Phân tích lịch sử

Đọc dữ liệu đã được ghi vào file log của sysstat.
Ví dụ: /var/log/sysstat/sa01 chứa dữ liệu ngày 1.

Lệnh: #sar -u -f /var/log/sysstat/sa<ngày>

Kiểm tra mức tải trung bình (Load Average)

Hiển thị mức tải của hệ thống (số tiến trình chờ xử lý).
Lệnh: #sar -q 1 5

 

 

Các cột đáng chú ý:

  • runq-sz (Run Queue Size): Số lượng tiến trình đang ở trạng thái chạy hoặc chờ chạy trong hàng đợi CPU.
  • plist-sz (Process List Size): Tổng số tiến trình trong danh sách quản lý tiến trình của hệ thống, bao gồm tất cả trạng thái (chạy, ngủ, chờ, zombie, v.v.).
  • ldavg-1 (Load Average 1 Minute): Mức tải trung bình của hệ thống trong 1 phút.
  • ldavg-5 (Load Average 5 Minutes): Mức tải trung bình của hệ thống trong 5 phút.
  • ldavg-15 (Load Average 15 Minutes): Mức tải trung bình của hệ thống trong 15 phút.
  • blocked: Số lượng tiến trình đang bị chặn vì phải chờ tài nguyên I/O (Input/Output), chẳng hạn như ổ đĩa, mạng hoặc thiết bị khác.

Kết luận

Lệnh sar là công cụ hữu ích cho quản trị viên hệ thống, giúp theo dõi và phân tích hiệu năng server một cách chi tiết. Bằng cách sử dụng linh hoạt các tùy chọn, bạn có thể nhanh chóng xác định nguyên nhân các vấn đề và tối ưu hóa hệ thống. Hãy thường xuyên sử dụng để nắm rõ tình trạng hệ thống và đảm bảo tính ổn định cho server của bạn.