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ặcsudo 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ặchtop
để 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
-
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
-
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. -
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.