Lệnh mpstat trong linux

Lệnh mpstat trong Linux: Giám sát hiệu suất CPU đa lõi một cách dễ dàng

Trong thế giới điện toán hiện đại, bộ vi xử lý đa lõi đã trở thành tiêu chuẩn. Để đảm bảo hệ thống hoạt động trơn tru và hiệu quả, việc giám sát hiệu suất của từng lõi CPU là vô cùng quan trọng. Đó là lúc lệnh mpstat trong Linux phát huy tác dụng. Bài viết này sẽ cung cấp cho bạn một cái nhìn toàn diện về mpstat, từ cơ bản đến nâng cao, giúp bạn khai thác tối đa sức mạnh của công cụ này.

Hãy cùng khám phá xem mpstat là gì, cách nó hoạt động, và tại sao nó lại là một công cụ không thể thiếu đối với các quản trị viên hệ thống và những người đam mê Linux.

mpstat là gì?

mpstat (MultiProcessor STATistics) là một tiện ích dòng lệnh trong Linux, được sử dụng để theo dõi hiệu suất của từng bộ xử lý (CPU) trong hệ thống đa lõi. Nó là một phần của gói sysstat, một bộ sưu tập các công cụ hệ thống mạnh mẽ để giám sát hiệu suất. 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, I/O chờ, và thời gian nhàn rỗi.

Nói một cách đơn giản, mpstat cho bạn biết từng lõi CPU của bạn đang "bận rộn" như thế nào và chúng đang làm gì.

Cách cài đặt mpstat

Trong hầu hết các дистрибутивы Linux, mpstat đã được cài đặt sẵn thông qua gói sysstat. Tuy nhiên, nếu nó chưa được cài đặt, bạn có thể cài đặt nó dễ dàng bằng trình quản lý gói của hệ thống:

  • Trên Debian/Ubuntu: sudo apt-get update && sudo apt-get install sysstat
  • Trên CentOS/RHEL/Fedora: sudo yum install sysstat hoặc sudo dnf install sysstat
  • Trên Arch Linux: sudo pacman -S sysstat

Sau khi cài đặt, hãy đảm bảo rằng dịch vụ sysstat đang chạy. Bạn có thể khởi động và kích hoạt nó bằng các lệnh sau:

  • sudo systemctl start sysstat
  • sudo systemctl enable sysstat

Cú pháp cơ bản của 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 để tùy chỉnh đầu ra.
  • interval: Khoảng thời gian (tính bằng giây) giữa các lần lấy mẫu.
  • count: Số lần lấy mẫu. Nếu không chỉ định, mpstat sẽ chạy liên tục cho đến khi bạn dừng nó bằng tay (Ctrl+C).

Các tùy chọn thường dùng của lệnh mpstat

Dưới đây là một số tùy chọn phổ biến nhất mà bạn có thể sử dụng với lệnh mpstat:

  • -P {cpu | ALL}: Chỉ định CPU nào cần theo dõi. Sử dụng -P ALL để hiển thị thông tin cho tất cả các CPU.
  • -u: Hiển thị thông tin về mức sử dụng CPU theo phần trăm.
  • -v: Hiển thị thông tin chi tiết hơn.
  • -I {SUM | SCPU | ALL}: Chỉ định cách tính toán mức sử dụng CPU cho hệ thống NUMA. SUM tính tổng mức sử dụng CPU trên tất cả các nút NUMA. SCPU hiển thị thông tin cho từng CPU. ALL hiển thị cả hai.

Ví dụ thực tế về cách sử dụng mpstat

Để hiểu rõ hơn về cách mpstat hoạt động, hãy xem xét một số ví dụ thực tế:

Ví dụ 1: Hiển thị mức sử dụng CPU hiện tại

Để hiển thị mức sử dụng CPU hiện tại cho tất cả các lõi, hãy sử dụng lệnh sau:

mpstat -P ALL

Kết quả sẽ hiển thị một bảng với các cột như %usr (thời gian CPU dành cho các tiến trình người dùng), %sys (thời gian CPU dành cho các tiến trình hệ thống), %idle (thời gian CPU nhàn rỗi), và các cột khác.

Ví dụ 2: Lấy mẫu mức sử dụng CPU mỗi 2 giây trong 5 lần

Để lấy mẫu mức sử dụng CPU mỗi 2 giây và lặp lại quá trình này 5 lần, hãy sử dụng lệnh sau:

mpstat -P ALL 2 5

Lệnh này sẽ cung cấp 5 bộ số liệu, mỗi bộ cách nhau 2 giây.

Ví dụ 3: Hiển thị thông tin chi tiết hơn

Để hiển thị thông tin chi tiết hơn về mức sử dụng CPU, hãy sử dụng tùy chọn -v:

mpstat -P ALL -v 1 1

Kết quả sẽ bao gồm các thông tin bổ sung như số lượng tiến trình đang chạy, số lượng tiến trình bị chặn, và số lượng gián đoạ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 về một số cột quan trọng nhất:

  • CPU: Số thứ tự của CPU. ALL đại diện cho trung bình của tất cả các CPU.
  • %usr: Tỷ lệ phần trăm thời gian CPU dành cho các tiến trình người dùng (ứng dụng).
  • %sys: Tỷ lệ phần trăm thời gian CPU dành cho các tiến trình hệ thống (kernel).
  • %iowait: Tỷ lệ phần trăm thời gian CPU chờ đợi hoàn thành I/O (đọc/ghi dữ liệu từ ổ cứng).
  • %idle: Tỷ lệ phần trăm thời gian CPU nhàn rỗi.
  • %steal: Tỷ lệ 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 hệ thống vật lý (thường gặp trong môi trường ảo hóa).
  • %irq: Tỷ lệ phần trăm thời gian CPU dành cho việc xử lý các ngắt cứng (interrupt request).
  • %soft: Tỷ lệ phần trăm thời gian CPU dành cho việc xử lý các ngắt mềm (software interrupt).
  • %guest: Tỷ lệ phần trăm thời gian CPU dành cho việc chạy các máy ảo (guest operating systems).
  • %gnice: Tỷ lệ phần trăm thời gian CPU dành cho việc chạy các máy ảo với mức ưu tiên thấp (nice value).

So sánh mpstat với các công cụ giám sát CPU khác

Có nhiều công cụ khác nhau để giám sát hiệu suất CPU trong Linux. Dưới đây là so sánh giữa mpstat và một số công cụ phổ biến khác:

Công cụ Ưu điểm Nhược điểm Phù hợp với
mpstat Đơn giản, dễ sử dụng, cung cấp thông tin chi tiết về từng lõi CPU. Chỉ hiển thị thông tin về CPU, không có giao diện đồ họa. Giám sát nhanh hiệu suất CPU, xác định vấn đề về hiệu suất liên quan đến CPU.
top Hiển thị thông tin về CPU, bộ nhớ, và các tiến trình đang chạy. Thông tin về CPU ít chi tiết hơn mpstat. Giám sát tổng quan về hệ thống, xác định các tiến trình tiêu thụ nhiều tài nguyên.
htop Giao diện đồ họa thân thiện, hiển thị thông tin về CPU, bộ nhớ, và các tiến trình đang chạy. Yêu cầu cài đặt thêm, có thể tốn tài nguyên hơn mpstat. Giám sát hệ thống một cách trực quan, dễ dàng quản lý các tiến trình.
vmstat Hiển thị thông tin về CPU, bộ nhớ, I/O, và swap. Thông tin về CPU ít chi tiết hơn mpstat. Phân tích hiệu suất hệ thống tổng thể, xác định các nút thắt cổ chai.

Ứng dụng thực tế của mpstat trong việc giải quyết vấn đề

mpstat không chỉ là một công cụ để hiển thị số liệu. Nó có thể giúp bạn giải quyết các vấn đề thực tế liên quan đến hiệu suất CPU:

  • Xác định quá trình ngốn CPU: Nếu mpstat cho thấy một lõi CPU liên tục ở mức sử dụng cao, bạn có thể sử dụng các công cụ như top hoặc htop để xác định tiến trình nào đang gây ra tình trạng này.
  • Phát hiện tắc nghẽn I/O: Nếu %iowait cao, điều đó có nghĩa là CPU đang phải chờ đợi I/O. Bạn có thể cần phải xem xét hiệu suất ổ cứng hoặc tối ưu hóa các hoạt động đọc/ghi dữ liệu.
  • Phân tích hiệu suất ảo hóa: Trong môi trường ảo hóa, %steal cho biết CPU bị "đánh cắp" bởi các máy ảo khác. Điều này có thể cho thấy rằng hệ thống vật lý đang quá tải.

FAQ về lệnh mpstat

  1. Làm thế nào để ghi lại đầu ra của mpstat vào một file?

    Bạn có thể sử dụng toán tử chuyển hướng (>) để ghi lại đầu ra vào một file:

    mpstat -P ALL 1 10 > mpstat.log
  2. Làm thế nào để giám sát hiệu suất CPU từ xa?

    Bạn có thể sử dụng SSH để kết nối đến máy chủ từ xa và chạy lệnh mpstat. Hoặc, bạn có thể sử dụng các công cụ giám sát hệ thống chuyên dụng để thu thập và phân tích dữ liệu hiệu suất từ xa.

  3. mpstat có thể được sử dụng để giám sát hiệu suất CPU trong thời gian thực không?

    Có, bạn có thể sử dụng mpstat để giám sát hiệu suất CPU trong thời gian thực bằng cách chỉ định một khoảng thời gian và không chỉ định số lần lấy mẫu (count). Lệnh sẽ tiếp tục chạy cho đến khi bạn dừng nó bằng Ctrl+C.

Kết luận

mpstat là một công cụ mạnh mẽ và linh hoạt để giám sát hiệu suất CPU trong Linux. Bằng cách hiểu cách sử dụng mpstat và giải thích các số liệu đầu ra, bạn có thể xác định và giải quyết các vấn đề về hiệu suất CPU, đảm bảo hệ thống của bạn hoạt động trơn tru và hiệu quả. Hãy thử nghiệm với các tùy chọn khác nhau của mpstat và khám phá những thông tin giá trị mà nó có thể cung cấp.

Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan về mpstat và giúp bạn tự tin hơn trong việc sử dụng công cụ này để giám sát hiệu suất CPU trên hệ thống Linux của mình.

Last Updated : 20/08/2025