Lệnh sar trong linux

Lệnh sar trong Linux: Giám sát hiệu năng hệ thống một cách chuyên nghiệp

Bạn là một quản trị viên hệ thống Linux và muốn theo dõi hiệu năng hệ thống một cách chi tiết? Bạn muốn biết CPU, bộ nhớ, I/O và mạng đang hoạt động như thế nào? Lệnh sar chính là công cụ bạn cần. Bài viết này sẽ cung cấp cho bạn một cái nhìn tổng quan toàn diện về sar, từ cài đặt, sử dụng cơ bản đến các tùy chọn nâng cao, giúp bạn làm chủ công cụ mạnh mẽ này.

sar là gì? Tại sao bạn nên sử dụng nó?

sar (System Activity Reporter) là một công cụ dòng lệnh trong Linux dùng để thu thập, báo cáo và lưu trữ thông tin về hiệu năng hệ thống. Nó là một phần của gói sysstat và cung cấp thông tin chi tiết về CPU, bộ nhớ, I/O, mạng và nhiều thông số khác. Việc sử dụng sar thường xuyên giúp bạn xác định các nút thắt cổ chai hiệu năng, theo dõi xu hướng sử dụng tài nguyên và đưa ra các quyết định tối ưu hóa hệ thống phù hợp.

Dưới đây là một số lý do chính tại sao bạn nên sử dụng sar:

  • Giám sát hiệu năng toàn diện: sar cung cấp thông tin chi tiết về nhiều khía cạnh của hệ thống, giúp bạn có cái nhìn tổng quan.
  • Phân tích lịch sử hiệu năng: sar lưu trữ dữ liệu hiệu năng theo thời gian, cho phép bạn phân tích xu hướng và xác định các vấn đề phát sinh.
  • Phát hiện nút thắt cổ chai: sar giúp bạn xác định các thành phần hệ thống đang hoạt động quá tải, gây ảnh hưởng đến hiệu năng tổng thể.
  • Lập kế hoạch nâng cấp: Dữ liệu từ sar có thể giúp bạn đưa ra quyết định sáng suốt về việc nâng cấp phần cứng hoặc phần mềm.
  • Khắc phục sự cố: Khi có sự cố xảy ra, sar có thể cung cấp thông tin quan trọng để giúp bạn xác định nguyên nhân và giải quyết vấn đề.

Cài đặt sar (gói sysstat)

Hầu hết các bản phân phối Linux đều cung cấp sar thông qua gói sysstat. Bạn có thể cài đặt nó bằng trình quản lý gói của hệ thống. Ví dụ:

  • Debian/Ubuntu: sudo apt update && sudo apt install sysstat
  • CentOS/RHEL/Fedora: sudo yum install sysstat hoặc sudo dnf install sysstat

Sau khi cài đặt, bạn cần kích hoạt dịch vụ sysstat để bắt đầu thu thập dữ liệu. Điều này thường được thực hiện tự động, nhưng bạn có thể kiểm tra và khởi động dịch vụ bằng các lệnh sau:

  • sudo systemctl status sysstat
  • sudo systemctl start sysstat (nếu dịch vụ chưa chạy)
  • sudo systemctl enable sysstat (để dịch vụ tự động khởi động khi khởi động lại hệ thống)

Sử dụng sar cơ bản

Cú pháp cơ bản của lệnh sar là:

sar [tùy chọn] [khoảng thời gian] [số lần]
  • tùy chọn: Các tùy chọn để chỉ định loại thông tin bạn muốn xem.
  • khoảng thời gian: Khoảng thời gian giữa các lần lấy mẫu, tính bằng giây.
  • số lần: Số lần lấy mẫu. Nếu bỏ qua, sar sẽ chỉ hiển thị một báo cáo duy nhất.

Ví dụ 1: Hiển thị thống kê CPU hiện tại

sar -u 1 5

Lệnh này sẽ hiển thị thống kê CPU (tùy chọn -u) mỗi giây (khoảng thời gian 1) trong 5 lần (số lần 5).

Ví dụ 2: Hiển thị thống kê bộ nhớ hiện tại

sar -r 1 5

Lệnh này sẽ hiển thị thống kê bộ nhớ (tùy chọn -r) mỗi giây trong 5 lần.

Ví dụ 3: Hiển thị thống kê I/O hiện tại

sar -b 1 5

Lệnh này sẽ hiển thị thống kê I/O (tùy chọn -b) mỗi giây trong 5 lần.

Các tùy chọn sar quan trọng

Dưới đây là một số tùy chọn sar quan trọng mà bạn nên biết:

  • -u: Thống kê CPU.
  • -r: Thống kê bộ nhớ.
  • -b: Thống kê I/O.
  • -n DEV: Thống kê mạng (DEV = device). Ví dụ: sar -n DEV eth0 để xem thống kê cho interface eth0.
  • -q: Thống kê hàng đợi (load average).
  • -p: Hiển thị tên thiết bị (ví dụ: tên ổ đĩa thay vì chỉ số).
  • -f: Đọc dữ liệu từ một tệp lưu trữ (thường là /var/log/sa/saDD, với DD là ngày).
  • -s HH:MM:SS: Chỉ hiển thị dữ liệu bắt đầu từ thời gian HH:MM:SS.
  • -e HH:MM:SS: Chỉ hiển thị dữ liệu đến thời gian HH:MM:SS.

Ví dụ sử dụng sar nâng cao và các tình huống thực tế

Hãy cùng xem một vài ví dụ sử dụng sar trong các tình huống thực tế:

Tình huống 1: Tìm hiểu nguyên nhân CPU quá tải

Bạn nhận thấy CPU của máy chủ đang hoạt động quá tải. Bạn có thể sử dụng sar để tìm hiểu xem quá trình nào đang gây ra tình trạng này:

sar -u 1 10

Lệnh này sẽ hiển thị thống kê CPU mỗi giây trong 10 lần. Bạn hãy chú ý đến cột %user (thời gian CPU sử dụng cho các tiến trình người dùng) và %system (thời gian CPU sử dụng cho kernel). Nếu một trong hai giá trị này cao, bạn có thể sử dụng các công cụ khác như top hoặc htop để xác định tiến trình cụ thể nào đang gây ra tình trạng quá tải.

Tình huống 2: Theo dõi hiệu năng I/O của ổ đĩa

Bạn nghi ngờ ổ đĩa đang là nút thắt cổ chai hiệu năng. Bạn có thể sử dụng sar để theo dõi tốc độ đọc/ghi của ổ đĩa:

sar -dp 1 10

Lệnh này sẽ hiển thị thống kê I/O cho mỗi thiết bị (tùy chọn -d) mỗi giây trong 10 lần. Tùy chọn -p giúp hiển thị tên thiết bị. Chú ý đến các cột tps (số lượng giao dịch I/O mỗi giây), kB_read/s (tốc độ đọc dữ liệu) và kB_wrtn/s (tốc độ ghi dữ liệu). Nếu các giá trị này cao, có thể ổ đĩa đang hoạt động quá tải.

Tình huống 3: Phân tích hiệu năng mạng

Bạn muốn theo dõi hiệu năng mạng của một interface cụ thể:

sar -n DEV eth0 1 10

Lệnh này sẽ hiển thị thống kê mạng cho interface eth0 mỗi giây trong 10 lần. Chú ý đến các cột rxkB/s (tốc độ nhận dữ liệu) và txkB/s (tốc độ gửi dữ liệu). Nếu các giá trị này cao, có thể mạng đang bị nghẽn.

Tình huống 4: Xem lại dữ liệu hiệu năng trong quá khứ

Bạn muốn xem lại dữ liệu hiệu năng của ngày hôm qua:

sar -f /var/log/sa/sadate -d yesterday +%d

Lệnh này sẽ đọc dữ liệu từ tệp lưu trữ của ngày hôm qua (ví dụ: /var/log/sa/sa28 nếu hôm nay là ngày 29) và hiển thị. Bạn có thể kết hợp các tùy chọn -s và -e để chỉ xem dữ liệu trong một khoảng thời gian cụ thể.

So sánh sar với các công cụ giám sát hiệu năng khác

sar không phải là công cụ duy nhất để giám sát hiệu năng hệ thống Linux. Dưới đây là so sánh nhanh với một số công cụ phổ biến khác:

Công cụ Ưu điểm Nhược điểm Thích hợp cho
sar Thu thập dữ liệu lịch sử, cung cấp thông tin chi tiết, ít tốn tài nguyên. Giao diện dòng lệnh, khó sử dụng cho người mới bắt đầu. Phân tích hiệu năng lâu dài, xác định nút thắt cổ chai, giám sát hệ thống server.
top / htop Hiển thị thông tin thời gian thực, dễ sử dụng, hiển thị thông tin tiến trình. Không lưu trữ dữ liệu lịch sử, tốn tài nguyên hơn sar. Giám sát nhanh hiệu năng, xác định tiến trình gây ra vấn đề, khắc phục sự cố tức thời.
vmstat Cung cấp thông tin về bộ nhớ ảo, CPU, I/O. Ít chi tiết hơn sar, giao diện dòng lệnh. Giám sát tổng quan hiệu năng, xác định vấn đề liên quan đến bộ nhớ ảo.
Grafana + Prometheus Giao diện trực quan, dễ sử dụng, có thể tùy chỉnh, thu thập dữ liệu từ nhiều nguồn. Cần cấu hình phức tạp, tốn tài nguyên. Giám sát hiệu năng toàn diện, trực quan hóa dữ liệu, giám sát hệ thống lớn.

FAQ về lệnh sar

Hỏi: Làm thế nào để thay đổi tần suất thu thập dữ liệu của sar?

Đáp: Bạn có thể thay đổi tần suất thu thập dữ liệu bằng cách chỉnh sửa tệp cấu hình /etc/default/sysstat. Thay đổi biến S_TIME_MINUTES để điều chỉnh khoảng thời gian giữa các lần thu thập dữ liệu (mặc định là 10 phút). Sau khi thay đổi, bạn cần khởi động lại dịch vụ sysstat.

Hỏi: Dữ liệu sar được lưu trữ ở đâu?

Đáp: Dữ liệu sar được lưu trữ trong thư mục /var/log/sa/. Mỗi ngày sẽ có một tệp lưu trữ riêng (ví dụ: /var/log/sa/sa28 cho ngày 28).

Hỏi: Làm thế nào để xóa dữ liệu sar cũ?

Đáp: Bạn có thể sử dụng lệnh find để tìm và xóa các tệp sar cũ hơn một số ngày nhất định. Ví dụ, để xóa các tệp cũ hơn 30 ngày:

sudo find /var/log/sa -type f -name "sa" -mtime +30 -delete

Hỏi: Tại sao tôi không thấy dữ liệu nào khi chạy sar?

Đáp: Có thể dịch vụ sysstat chưa được khởi động hoặc chưa được cấu hình để thu thập dữ liệu. Hãy kiểm tra trạng thái dịch vụ và đảm bảo rằng nó đang chạy. Đồng thời, kiểm tra tệp /etc/default/sysstat để đảm bảo rằng việc thu thập dữ liệu đã được kích hoạt.

Kết luận

Lệnh sar là một công cụ mạnh mẽ và linh hoạt để giám sát hiệu năng hệ thống Linux. Bằng cách nắm vững các tùy chọn và cách sử dụng sar, bạn có thể dễ dàng thu thập thông tin chi tiết về CPU, bộ nhớ, I/O, mạng và nhiều thông số khác, giúp bạn xác định các nút thắt cổ chai, theo dõi xu hướng sử dụng tài nguyên và đưa ra các quyết định tối ưu hóa hệ thống phù hợp. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu sử dụng sar một cách hiệu quả.

Last Updated : 20/08/2025