mpstat command in linux

Tìm hiểu lệnh mpstat trong Linux: Giám sát hiệu suất CPU đa lõi

Bạn đang muốn theo dõi hiệu suất CPU trên hệ thống Linux của mình, đặc biệt là khi hệ thống có nhiều lõi xử lý? Lệnh mpstat chính là công cụ bạn cần! Trong bài viết này, chúng ta sẽ cùng khám phá mpstat là gì, cách sử dụng nó để giám sát hiệu suất CPU, và cách tận dụng thông tin này để tối ưu hóa hệ thống.

mpstat là gì?

mpstat (MultiProcessor STATistics) là một tiện ích dòng lệnh trong Linux, được cung cấp bởi gói sysstat. Nó cho phép bạn giám sát hiệu suất của từng CPU riêng lẻ hoặc hiệu suất CPU tổng thể trên hệ thống đa lõi. mpstat cung cấp thông tin chi tiết về mức sử dụng CPU, bao gồm thời gian CPU dành cho các tác vụ khác nhau như người dùng, hệ thống, idle, I/O wait, và nhiều hơn nữa.

Với mpstat, bạn có thể dễ dàng xác định CPU nào đang bị quá tải, ứng dụng nào đang tiêu thụ nhiều tài nguyên CPU, và liệu hệ thống có đang gặp phải tình trạng nghẽn cổ chai liên quan đến CPU hay không. Điều này rất quan trọng để đảm bảo hệ thống hoạt động ổn định và hiệu quả.

Cài đặt mpstat

Thông thường, mpstat được cài đặt sẵn trong hầu hết các bản phân phối Linux. Tuy nhiên, nếu bạn chưa có, bạn có thể cài đặt nó bằng trình quản lý gói của hệ thống. Ví dụ, trên Debian/Ubuntu, bạn có thể sử dụng lệnh:

sudo apt-get update
sudo apt-get install sysstat

Trên CentOS/RHEL/Fedora, bạn có thể sử dụng lệnh:

sudo yum install sysstat

Sau khi cài đặt, bạn có thể cần kích hoạt sysstat để nó bắt đầu thu thập dữ liệu. Điều này có thể được thực hiện bằng lệnh:

sudo systemctl enable sysstat
sudo systemctl start sysstat

Cú pháp lệnh mpstat

Cú pháp cơ bản của lệnh mpstat như sau:

mpstat [options] [interval] [count]

Trong đó:

  • options: Các tùy chọn để điều chỉnh đầu ra của lệnh.
  • interval: Khoảng thời gian (tính bằng giây) giữa các lần lấy mẫu dữ liệu.
  • count: Số lần lấy mẫu dữ liệu. Nếu bỏ qua, mpstat sẽ chạy liên tục cho đến khi bạn dừng nó bằng tay.

Các tùy chọn phổ biến của lệnh mpstat

Dưới đây là một số tùy chọn hữu ích của lệnh mpstat:

  • -P {cpu_list | ALL}: Chỉ định CPU nào để giám sát. Ví dụ, -P 0 để giám sát CPU 0, -P 0,1 để giám sát CPU 0 và 1, và -P ALL để giám sát tất cả các CPU.
  • -u: Hiển thị thông tin về mức sử dụng CPU (user, system, idle, iowait).
  • -V: Hiển thị thông tin phiên bản của mpstat.

Ví dụ sử dụng lệnh mpstat

Ví dụ 1: Hiển thị thống kê CPU tổng quan mỗi 5 giây, 3 lần:

mpstat 5 3

Lệnh này sẽ hiển thị thống kê CPU tổng quan (trung bình trên tất cả các CPU) mỗi 5 giây, và thực hiện việc này 3 lần.

Ví dụ 2: Hiển thị thống kê cho từng CPU riêng lẻ mỗi 2 giây, chạy liên tục:

mpstat -P ALL 2

Lệnh này sẽ hiển thị thống kê cho từng CPU riêng lẻ (CPU 0, CPU 1, v.v.) mỗi 2 giây, và tiếp tục chạy cho đến khi bạn dừng nó bằng Ctrl+C.

Ví dụ 3: Hiển thị thống kê CPU 0 và CPU 1 mỗi 1 giây, 5 lần:

mpstat -P 0,1 1 5

Lệnh này sẽ hiển thị thống kê cho CPU 0 và CPU 1 mỗi 1 giây, và thực hiện việc này 5 lần.

Giải thích các cột trong đầu ra của mpstat

Đầu ra của mpstat bao gồm nhiều cột, mỗi cột cung cấp thông tin khác nhau về hiệu suất CPU. Dưới đây là giải thích của một số cột quan trọng:

  • CPU: ID của CPU. all biểu thị thống kê trung bình trên tất cả các CPU.
  • %user: Phần trăm thời gian CPU dành cho các tác vụ của người dùng (user-level).
  • %nice: Phần trăm thời gian CPU dành cho các tác vụ của người dùng với độ ưu tiên "nice" (thấp hơn).
  • %system: Phần trăm thời gian CPU dành cho các tác vụ của hệ thống (kernel-level).
  • %iowait: Phần trăm thời gian CPU chờ đợi I/O hoàn thành. Điều này có thể chỉ ra vấn đề về hiệu suất I/O.
  • %steal: Phần trăm thời gian CPU bị "đánh cắp" bởi các máy ảo khác (trong môi trường ảo hóa).
  • %idle: Phần trăm thời gian CPU không hoạt động.
  • %irq: Phần trăm thời gian CPU dành cho việc xử lý ngắt phần cứng.
  • %softirq: Phần trăm thời gian CPU dành cho việc xử lý ngắt phần mềm.
  • %guest: Phần trăm thời gian CPU dành cho việc chạy máy ảo (guest OS).

Phân tích và ứng dụng kết quả mpstat

Để hiểu rõ hơn về cách sử dụng mpstat trong thực tế, hãy xem xét một số tình huống:

  • CPU quá tải: Nếu %user hoặc %system liên tục ở mức cao (ví dụ, trên 80%), điều đó có thể cho thấy CPU đang bị quá tải. Bạn cần xác định tiến trình nào đang tiêu thụ nhiều CPU và tìm cách tối ưu hóa hoặc phân bổ lại tài nguyên.
  • I/O wait cao: Nếu %iowait cao, điều đó có thể cho thấy hệ thống đang gặp phải vấn đề về hiệu suất I/O. Bạn cần kiểm tra ổ cứng, mạng, hoặc các thiết bị I/O khác để xác định nguyên nhân.
  • Hiệu suất không đồng đều giữa các CPU: Nếu một số CPU có mức sử dụng cao hơn đáng kể so với các CPU khác, điều đó có thể cho thấy ứng dụng của bạn không được tối ưu hóa để tận dụng tối đa các lõi CPU.

Ví dụ thực tế: Một máy chủ web có %user và %system liên tục ở mức 90% trong giờ cao điểm. Sử dụng mpstat -P ALL 1 cho thấy CPU 0 và CPU 1 đang bị quá tải, trong khi các CPU khác ít được sử dụng hơn. Điều này cho thấy ứng dụng web cần được tối ưu hóa để tận dụng tốt hơn các lõi CPU, hoặc cần phải mở rộng quy mô bằng cách thêm nhiều máy chủ hơn.

Bảng so sánh các công cụ giám sát CPU

Công cụ Ưu điểm Nhược điểm Trường hợp sử dụng
mpstat Chi tiết, cụ thể cho CPU, dễ sử dụng qua dòng lệnh. Chỉ hiển thị thông tin CPU, không có giao diện đồ họa. Giám sát hiệu suất CPU chi tiết, xác định CPU bị quá tải.
top Tổng quan về hệ thống, hiển thị các tiến trình đang chạy. Ít chi tiết về hiệu suất CPU hơn mpstat. Giám sát tổng quan hệ thống, xác định tiến trình tiêu thụ nhiều tài nguyên.
htop Giao diện đồ họa, dễ sử dụng, nhiều tính năng hơn top. Cần cài đặt thêm. Giám sát hệ thống một cách trực quan, quản lý tiến trình.
vmstat Thông tin về bộ nhớ ảo, CPU, I/O. Ít chi tiết về CPU hơn mpstat. Giám sát hiệu suất hệ thống tổng thể, xác định vấn đề về bộ nhớ.

Câu hỏi thường gặp (FAQ)

  1. Làm thế nào để hiểu được giá trị %steal?

    Giá trị %steal chỉ ra phần trăm thời gian CPU bị "đánh cắp" bởi các máy ảo khác trên cùng một máy chủ vật lý. Nếu giá trị này cao, điều đó có thể cho thấy máy ảo của bạn đang không được cấp đủ tài nguyên CPU.

  2. Làm thế nào để khắc phục tình trạng %iowait cao?

    Để khắc phục tình trạng %iowait cao, bạn cần xác định nguyên nhân gây ra tình trạng chờ đợi I/O. Hãy kiểm tra ổ cứng, mạng, hoặc các thiết bị I/O khác. Bạn có thể cần phải nâng cấp phần cứng, tối ưu hóa cấu hình, hoặc di chuyển dữ liệu sang một ổ đĩa nhanh hơn.

  3. Tôi có thể sử dụng mpstat để giám sát hiệu suất CPU trên Windows không?

    Không, mpstat là một công cụ dành riêng cho Linux. Trên Windows, bạn có thể sử dụng Task Manager hoặc Performance Monitor để giám sát hiệu suất CPU.

Kết luận

Lệnh mpstat là một công cụ mạnh mẽ để giám sát hiệu suất CPU trên hệ thống Linux. Bằng cách hiểu rõ cách sử dụng và phân tích kết quả của mpstat, bạn có thể dễ dàng xác định các vấn đề về hiệu suất CPU, tối ưu hóa hệ thống, và đảm bảo hệ thống hoạt động ổn định và hiệu quả. Hãy thử sử dụng mpstat ngay hôm nay và khám phá sức mạnh của nó!

Last Updated : 21/08/2025