Kiểm Tra Thông Tin CPU và Bộ Nhớ trên Hệ Thống Linux

Việc theo dõi và hiểu rõ tình trạng sử dụng tài nguyên hệ thống như CPU và bộ nhớ là rất quan trọng đối với các quản trị viên hệ thống và nhà phát triển. Bài viết này sẽ hướng dẫn bạn cách kiểm tra thông tin chi tiết về CPU và bộ nhớ trên Linux bằng các công cụ dòng lệnh cơ bản và giới thiệu một công cụ giám sát tương tác mạnh mẽ hơn là htop.

Kiểm Tra Thông Tin CPU

Hệ điều hành Linux cung cấp nhiều cách để truy xuất thông tin về bộ xử lý trung tâm (CPU). Một trong những nguồn thông tin phong phú nhất là tệp tin ảo /proc/cpuinfo.

Xem Chi Tiết Tất Cả Các CPU

Để xem thông tin đầy đủ về tất cả các CPU hoặc nhân CPU logic trên hệ thống, bạn có thể sử dụng lệnh cat:

cat /proc/cpuinfo

Dưới đây là một phần ví dụ về đầu ra của lệnh này, hiển thị các thông số quan trọng:

processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 94
model name    : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
stepping    : 3
microcode    : 0x7c
cpu MHz        : 3699.890
cache size    : 8192 KB
physical id    : 0
siblings    : 8
core id        : 0
cpu cores    : 4
apicid        : 0
initial apicid    : 0
fpu        : yes
... (các cờ và tính năng khác)

processor    : 1
vendor_id    : GenuineIntel
...

Mỗi khối processor đại diện cho một nhân logic (thread). Các trường quan trọng bao gồm model name (tên và tốc độ CPU), cpu MHz (tần số hoạt động), cache size (kích thước bộ nhớ đệm), và cpu cores (số nhân vật lý trong một CPU).

Kiểm Tra Số Lượng Bộ Xử Lý và Nhân CPU

Để có cái nhìn tổng quan nhanh chóng về số lượng bộ xử lý và nhân CPU, bạn có thể lọc thông tin từ /proc/cpuinfo bằng grepwc -l:

# Tổng số nhân CPU logic (bao gồm cả Hyper-Threading nếu có)
grep -c "processor" /proc/cpuinfo

# Số lượng CPU vật lý
grep "physical id" /proc/cpuinfo | sort -u | wc -l

# Số nhân vật lý trên mỗi CPU (lấy từ dòng đầu tiên)
grep "cpu cores" /proc/cpuinfo | head -n 1 | awk '{print $4}'

Từ các lệnh trên, bạn có thể xác định được tổng số nhân logic, số lượng chip CPU vật lý và số nhân thực trên mỗi chip. Ví dụ, nếu grep -c "processor" trả về 8, grep "physical id" | sort -u | wc -l trả về 1, và grep "cpu cores" | head -n 1 | awk '{print $4}' trả về 4, điều đó có nghĩa là hệ thống có 1 CPU vật lý, 4 nhân vật lý, và 8 luồng xử lý (thường là do Hyper-Threading).

Kiểm Tra Thông Tin Bộ Nhớ (RAM)

Tương tự như CPU, thông tin chi tiết về bộ nhớ hệ thống (RAM) có thể được tìm thấy trong tệp tin ảo /proc/meminfo.

Xem Chi Tiết Bộ Nhớ Hệ Thống

Sử dụng lệnh cat để hiển thị toàn bộ nội dung của /proc/meminfo:

cat /proc/meminfo

Một phần đầu ra điển hình sẽ trông như sau:

MemTotal:       32702400 kB
MemFree:         3832872 kB
MemAvailable:    9085276 kB
Buffers:          581664 kB
Cached:          4648776 kB
SwapTotal:       3932156 kB
SwapFree:        3932156 kB
... (nhiều thông tin chi tiết khác)
  • MemTotal: Tổng dung lượng bộ nhớ vật lý.
  • MemFree: Dung lượng bộ nhớ vật lý chưa được sử dụng.
  • MemAvailable: Ước tính dung lượng bộ nhớ có sẵn cho các ứng dụng mới mà không cần swap. Đây thường là giá trị thực tế hơn MemFree.
  • SwapTotal: Tổng dung lượng của không gian hoán đổi (swap space).
  • SwapFree: Dung lượng không gian hoán đổi còn trống.

Sử Dụng Lệnh free để Xem Bộ Nhớ

Công cụ free cung cấp một cách đơn giản và dễ đọc hơn để xem thông tin tổng quan về bộ nhớ RAM và swap.

free

Đầu ra mặc định (đơn vị KB):

              total        used        free      shared  buff/cache   available
Mem:       32702400    23234672     3867356       16812     5600372     9123264
Swap:       3932156           0     3932156

Bạn có thể sử dụng các tùy chọn để hiển thị dễ đọc hơn:

  • free -m: Hiển thị bộ nhớ theo đơn vị Megabyte.
  • free -g: Hiển thị bộ nhớ theo đơn vị Gigabyte.
  • free -h: Hiển thị bộ nhớ theo định dạng "human-readable" (ví dụ: G cho Gigabyte, M cho Megabyte).
free -h

Ví dụ đầu ra với -h:

              total        used        free      shared  buff/cache   available
Mem:            31G         22G        3.7G         16M        5.3G        8.7G
Swap:          3.7G          0B        3.7G

Giám Sát Tài Nguyên Hệ Thống với top

Lệnh top là một tiện ích tích hợp sẵn trong hầu hết các hệ thống Linux, cho phép bạn xem các tiến trình đang chạy và tài nguyên hệ thống mà chúng đang sử dụng theo thời gian thực.

Giải Thích Đầu Ra của Lệnh top

Khi bạn chạy top, màn hình terminal sẽ hiển thị một giao diện cập nhật liên tục với hai phần chính: thông tin tổng quan hệ thống và danh sách các tiến trình.

Thông tin Tổng quan Hệ thống (Phần trên)

  • **Dòng 1 (Top Line)**: Hiển thị thời gian hiện tại, thời gian hệ thống đã hoạt động (uptime), số lượng người dùng đang đăng nhập, và tải trung bình của hệ thống (load average) trong 1, 5, và 15 phút gần nhất. Tải trung bình cho biết số lượng tiến trình đang chờ được CPU xử lý.
  • **Dòng 2 (Tasks)**: Liệt kê tổng số tiến trình (total), số tiến trình đang chạy (running), đang ngủ (sleeping), bị dừng (stopped) và tiến trình zombie.
  • **Dòng 3 (CPU Stats)**: Cung cấp thông tin chi tiết về việc sử dụng CPU theo các loại khác nhau (ví dụ: user, system, nice, idle, iowait, irq, softirq, steal, guest, guest_nice). Giá trị id (idle) càng cao, CPU càng nhàn rỗi.
  • **Dòng 4 (Mem)**: Hiển thị tổng bộ nhớ RAM vật lý (total), bộ nhớ đang sử dụng (used), bộ nhớ trống (free) và bộ nhớ được sử dụng cho bộ đệm/bộ nhớ cache (buffers/cache).
  • **Dòng 5 (Swap)**: Tương tự như dòng bộ nhớ, nhưng dành cho không gian hoán đổi (swap space).

Danh Sách Tiến Trình (Phần dưới)

Phần này liệt kê các tiến trình đang chạy và thông tin chi tiết của chúng:

  • PID: ID của tiến trình.
  • USER: Chủ sở hữu của tiến trình.
  • PR: Độ ưu tiên của tiến trình (priority). Giá trị nhỏ hơn thường có nghĩa là ưu tiên cao hơn.
  • NI: Giá trị nice của tiến trình, ảnh hưởng đến độ ưu tiên.
  • VIRT: Tổng bộ nhớ ảo mà tiến trình đang sử dụng.
  • RES: Bộ nhớ vật lý (RAM) thực tế mà tiến trình đang chiếm giữ (resident memory).
  • SHR: Bộ nhớ chia sẻ mà tiến trình đang sử dụng.
  • S: Trạng thái của tiến trình (S: Sleeping, R: Running, Z: Zombie, I: Idle, T: Stopped).
  • %CPU: Phần trăm sử dụng CPU của tiến trình kể từ lần cập nhật cuối cùng.
  • %MEM: Phần trăm bộ nhớ vật lý đang được tiến trình sử dụng so với tổng bộ nhớ vật lý.
  • TIME+: Tổng thời gian CPU mà tiến trình đã sử dụng kể từ khi bắt đầu.
  • COMMAND: Tên lệnh hoặc đường dẫn đầy đủ của tiến trình.

Công Cụ Giám Sát Tương Tác: htop

htop là một công cụ giám sát tiến trình tương tác, được cải tiến so với top với giao diện đồ họa thân thiện hơn, dễ đọc và cung cấp nhiều chức năng hữu ích. Nó cho phép bạn cuộn danh sách tiến trình, lọc, tìm kiếm và thao tác với các tiến trình (ví dụ: gửi tín hiệu kill) một cách trực quan.

Cài Đặt htop

Bạn có thể cài đặt htop trên hầu hết các bản phân phối Linux bằng trình quản lý gói:

  • Trên Debian/Ubuntu:
    sudo apt install htop
  • Trên CentOS/RHEL/Fedora:
    sudo yum install htop
    hoặc
    sudo dnf install htop

Sử Dụng htop

Sau khi cài đặt, bạn chỉ cần gõ htop vào terminal để khởi động:

htop

Giao diện htop thường bao gồm:

  • **Phần Tóm tắt (Summary)**: Ở trên cùng, hiển thị các thanh biểu đồ trực quan cho mức sử dụng CPU (từng nhân riêng biệt), bộ nhớ RAM và Swap. Các thanh này giúp bạn nhanh chóng nắm bắt tình trạng tài nguyên hệ thống.
  • **Danh Sách Tiến Trình**: Phần trung tâm, liệt kê các tiến trình tương tự như top nhưng có màu sắc, có thể cuộn và sắp xếp dễ dàng hơn. Bạn có thể sắp xếp theo bất kỳ cột nào bằng cách nhấp vào tiêu đề cột hoặc sử dụng phím F6.
  • **Thanh Chức Năng (Footer)**: Ở dưới cùng, hiển thị các phím chức năng (F1-F10) cho các hành động phổ biến như Help (F1), Setup (F2), Search (F3), Filter (F4), Tree view (F5), SortBy (F6), Nice (F7/F8), Kill (F9), và Quit (F10).

Ví dụ, nhấn F5 sẽ hiển thị các tiến trình dưới dạng cây, giúp bạn dễ dàng nhìn thấy mối quan hệ cha-con giữa các tiến trình. Nhấn F9 cho phép bạn chọn một tiến trình và gửi các tín hiệu (như SIGTERM, SIGKILL) để điều khiển nó.

Thẻ: linux CPU MEMORY Resource Monitoring top

Đăng vào ngày 22 tháng 9 lúc 17:04