Hướng dẫn giám sát và phân tích hiệu suất hệ thống Linux với lệnh top

Tổng quan về lệnh top

Lệnh top (table of processes) là một trong những công cụ quản trị hệ thống phổ biến nhất trên các bản phân phối Linux. Công cụ này cung cấp một cái nhìn toàn diện và thời gian thực về các tài nguyên hệ thống, bao gồm mức sử dụng CPU, dung lượng bộ nhớ RAM, cũng như danh sách các tiến trình đang hoạt động.

Cú pháp và các tham số khởi chạy

Để khởi động trình giám sát, bạn sử dụng cú pháp cơ bản sau:

top [-d giây] [-b] [-n số_lần] [-p PID]

Các tùy chọn phổ biến bao gồm:

  • -d: Xác định khoảng thời gian làm mới dữ liệu (mặc định là 5 giây). Ví dụ: top -d 2 để cập nhật mỗi 2 giây.
  • -b: Chế độ Batch (lô), thường dùng để ghi kết quả ra file hoặc kết hợp với các lệnh khác.
  • -n: Số lượng mẫu dữ liệu sẽ xuất ra trước khi lệnh tự động kết thúc (thường dùng kèm với -b).
  • -p: Chỉ theo dõi một hoặc nhiều ID tiến trình (PID) cụ thể.

Các phím tắt điều khiển trong giao diện tương tác

Khi top đang chạy, bạn có thể sử dụng các phím tắt sau để lọc và sắp xếp dữ liệu:

  • P: Sắp xếp danh sách dựa trên mức độ chiếm dụng CPU.
  • M: Sắp xếp danh sách dựa trên mức độ sử dụng bộ nhớ RAM.
  • N: Sắp xếp theo số PID (Process ID).
  • T: Sắp xếp theo thời gian chạy tích lũy của tiến trình.
  • k: Gửi tín hiệu để đóng (kill) một tiến trình thông qua PID.
  • r: Thay đổi độ ưu tiên (nice value) của một tiến trình.
  • q: Thoát khỏi giao diện top.

Phân tích chi tiết các thông số đầu ra

1. Thông tin tổng quan hệ thống (Dòng 1)

top - 10:30:15 up 50 days, 12:45,  2 users,  load average: 0.15, 0.08, 0.02
Thông số Ý nghĩa
10:30:15 Giờ hiện tại của hệ thống.
up 50 days... Thời gian hệ thống đã hoạt động liên tục (uptime).
2 users Số lượng người dùng đang đăng nhập.
load average Chỉ số tải trung bình của hệ thống trong 1, 5 và 15 phút qua. Nếu chỉ số này chia cho số nhân CPU lớn hơn 1, hệ thống đang có dấu hiệu quá tải.

2. Trạng thái tiến trình (Dòng 2)

Tasks: 250 total,   2 running, 248 sleeping,   0 stopped,   0 zombie

Dòng này liệt kê tổng số tiến trình và phân loại chúng theo trạng thái: đang chạy (running), đang ngủ (sleeping), đã dừng (stopped) hoặc tiến trình thây ma (zombie - tiến trình đã kết thúc nhưng chưa được giải phóng khỏi bảng tiến trình).

3. Hiệu suất CPU (Dòng 3)

%Cpu(s):  1.2 us,  0.5 sy,  0.0 ni, 98.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
  • us (user): Thời gian CPU xử lý các tiến trình của người dùng.
  • sy (system): Thời gian CPU xử lý các tác vụ của nhân (kernel).
  • id (idle): Tỷ lệ CPU đang rảnh rỗi.
  • wa (iowait): Thời gian CPU chờ đợi các thao tác I/O (như đọc/ghi đĩa).
  • st (steal time): Thời gian CPU bị chiếm dụng bởi ảo hóa (hypervisor).

4. Quản lý bộ nhớ (Dòng 4 và 5)

KiB Mem : 16384000 total,  4000000 free,  8000000 used,  4384000 buff/cache
KiB Swap:  2048000 total,  2048000 free,        0 used. 7500000 avail Mem

Các dòng này cung cấp chi tiết về bộ nhớ vật lý (RAM) và bộ nhớ ảo (Swap), bao gồm tổng dung lượng, lượng đang dùng, lượng còn trống và lượng dùng cho bộ đệm (buffer/cache).

5. Bảng chi tiết tiến trình

Cột Mô tả
PID ID duy nhất của tiến trình.
USER Tài khoản sở hữu tiến trình.
PR / NI Độ ưu tiên điều phối và giá trị Nice (mức độ "nhường nhịn" tài nguyên).
VIRT Tổng bộ nhớ ảo tiến trình đang chiếm dụng.
RES Bộ nhớ vật lý thực tế tiến trình đang sử dụng (Resident Size).
S Trạng thái: R (Running), S (Sleeping), D (Uninterruptible sleep), Z (Zombie).
%CPU Tỷ lệ phần trăm CPU tiến trình sử dụng từ lần cập nhật trước.
%MEM Tỷ lệ phần trăm bộ nhớ RAM tiến trình sử dụng.
COMMAND Tên lệnh hoặc đường dẫn thực thi của tiến trình.

Thẻ: linux system-monitoring sysadmin Top-Command performance-analysis

Đăng vào ngày 24 tháng 6 lúc 05:44