Lệnh vmstat trong Linux là một công cụ cho phép theo dõi và phân tích hiệu suất hệ thống một cách chi tiết. Từ việc cung cấp cái nhìn tổng quan về tài nguyên hệ thống như CPU, bộ nhớ, và I/O, đến việc theo dõi các hoạt động chi tiết như swap và disk. Hiểu rõ tầm quan trọng của lệnh này, Vietnix đã tổng hợp thông tin chi tiết về vmstat cùng với 6 ví dụ thực tiễn về cách sử dụng lệnh này. Hãy cùng khám phá qua bài viết dưới đây!
Lệnh vmstat trong Linux là gì?
Lệnh vmstat trong Linux là công cụ để báo cáo các thống kê về hiệu suất hệ thống, bao gồm thông tin về bộ nhớ, bộ đệm, bộ nhớ ảo, swap, CPU, và các hoạt động I/O (Input/Output). Đặc biệt, lệnh này cung cấp thông tin realtime (thời gian thực ngay thời điểm hiển thị), giúp bạn xác định các điểm nghẽn về hiệu suất, theo dõi việc sử dụng tài nguyên và khắc phục sự cố liên quan đến hiệu suất trên hệ thống Linux nhanh nhất.
Từ các số liệu về hiệu suất, bạn có thể thấy rằng lệnh vmstat là một lệnh quan trọng và vô cùng hữu ích trên Linux. Nếu như bạn là người mới bắt đầu sử dụng hệ điều hành, bạn có thể áp dụng ngay trên một số hệ điều hành dựa trên Linux có giao diện thân thiện như Ubuntu. Ngoài ra, bạn có thể tham khảo các câu lệnh trong Linux cơ bản để hiểu thêm chi tiết về cách sử dụng lệnh trên hệ điều hành.
Cú pháp cơ bản của lệnh vmstat
Lệnh vmstat có cú pháp cơ bản chung như sau:
vmstat [OPTION]... [DELAY [COUNT]]
10 tùy chọn sử dụng lệnh vmstat
Để tìm hiểu kỹ hơn về các tùy chọn và cách sử dụng lệnh vmstat, bạn có thể xem trang hướng dẫn bằng cách sử dụng lệnh man với cú pháp:
man vmstat
Tùy chọn | Chức năng |
---|---|
-a , --active | Hiển thị thông tin về bộ nhớ đang được sử dụng và bộ nhớ không hoạt động |
-f , --forks | Hiển thị số lượng tiến trình đã được khởi tạo kể từ khi khởi động hệ thống |
-m , --slabs | Hiển thị thông tin về các slabs |
-s , --stats | Hiển thị bảng các bộ đếm sự kiện và thống kê bộ nhớ khác nhau |
-d , --disk | Hiển thị thống kê về các hoạt động đĩa |
-D , --disk-sum | Hiển thị thống kê về các hoạt động phân trang |
-S , --unit character | Hiển thị thông tin theo đơn vị MB hoặc KB |
-t , --timestamp | Hiển thị mốc thời gian kèm theo mỗi báo cáo |
-h , --help | Hiển thị trang trợ giúp |
-V , --version | Hiển thị thông tin về phiên bản của lệnh vmstat |
6 ví dụ về cách sử dụng lệnh vmstat trong Linux
- Hiển thị số liệu thống kê trên hệ thống bằng lệnh vmstat
- Hiển thị chi tiết dung lượng bộ nhớ đang hoạt động và không hoạt động
- Hiển thị số liệu thống kê bộ nhớ và lên lịch bằng lệnh vmstat
- Hiển thị tất cả số liệu thống kê về đĩa
- Hiển thị trạng thái bộ nhớ xuyên suốt theo Megabyte
- Hiển thị thông tin mốc thời gian trên từng báo cáo số liệu
Ví dụ 1: Hiển thị số liệu thống kê trên hệ thống bằng lệnh vmstat
Lệnh vmstat được sử dụng để hiển thị các thống kê về hệ thống, bao gồm thông tin về các tiến trình, bộ nhớ, phân trang, I/O khối, bẫy hệ thống, và hoạt động của CPU. Để thực hiện thì bạn chỉ cần nhập cú pháp sau.
vmstat
Kết quả:
Ảnh bên dưới hiển thị kết quả của lệnh vmstat cơ bản trong terminal Ubuntu. Kết quả được hiển thị dưới dạng bảng với các cột đại diện cho các thông số hệ thống như:
- r (run queue): Số tiến trình đang chạy và chờ CPU.
- b (blocked processes): Số tiến trình bị chặn chờ tài nguyên.
- swpd (swap used): Bộ nhớ swap đã sử dụng.
- free (free memory): Bộ nhớ trống (tính bằng KB).
- buff (buffer memory): Bộ nhớ đệm.
- cache (cached memory): Bộ nhớ được cache.
- si (swap in), so (swap out): Khối lượng swap vào/ra từ đĩa.
- bi (blocks in), bo (blocks out): Khối lượng dữ liệu I/O vào/ra từ đĩa.
- in (interrupts), cs (context switches): Số lần ngắt và số lần chuyển đổi ngữ cảnh.
- us (user CPU), sy (system CPU), id (idle CPU), wa (wait IO), st (stolen CPU): Thông số sử dụng CPU (phần trăm thời gian).
Ví dụ 2: Hiển thị chi tiết dung lượng bộ nhớ đang hoạt động và không hoạt động
Bằng cách thêm tùy chọn -a
, lệnh vmstat có thể hiển thị lượng bộ nhớ đang hoạt động và không hoạt động trong hệ thống, điều này rất quan trọng để đảm bảo hệ thống hoạt động trơn tru và tránh các vấn đề về hiệu suất.
Cú pháp:
vmstat -a
Kết quả: Kết quả của lệnh vmstat -a
, cung cấp thêm thông tin chi tiết về bộ nhớ đang hoạt động (active memory) và không hoạt động (inactive memory):
- inact (inactive memory): Bộ nhớ không hoạt động, nhưng vẫn nằm trong cache.
- active (active memory): Bộ nhớ đang được sử dụng.
Ví dụ 3: Hiển thị số liệu thống kê bộ nhớ và lên lịch bằng lệnh vmstat
Bạn có thể xem chi tiết các thống kê về bộ nhớ và lên lịch, giúp phân tích hiệu suất của hệ thống bằng cách kết hợp tùy chọn -s
với lệnh vmstat theo cú pháp bên dưới:
vmstat -s
Kết quả: Như bạn có thể thấy bên dưới là kết quả của lệnh vmstat -s
, cung cấp một danh sách chi tiết các thông số hệ thống như:
- Tổng bộ nhớ (total memory),
- Bộ nhớ đã sử dụng (used memory).
- Bộ nhớ đang hoạt động (active memory).
- Bộ nhớ không hoạt động (inactive memory)
- Bộ nhớ trống (free memory).
- Số lần ngắt (interrupts).
- Chuyển đổi ngữ cảnh (CPU context switches).
- Thời gian khởi động (boot time)
- Các thông số CPU khác như CPU ticks và pages paged in/out.
Ví dụ 4: Hiển thị tất cả số liệu thống kê về đĩa
Khi kết hợp tùy chọn -d
với lệnh vmstat cung cấp các thống kê về đĩa, bao gồm số lần đọc và ghi tính bằng số khối mỗi giây. Cú pháp như sau:
vmstat -d
Kết quả: Kết quả của lệnh vmstat -d
bên dưới cung cấp chi tiết về các hoạt động của đĩa trong hệ thống, bao gồm:
- Tổng số lần đọc (total reads),
- Tổng số lần ghi (total writes).
- Số lần đọc/ghi hợp nhất (merged reads/writes).
- Số sector đọc/ghi (sectors read/written).
- Thời gian đọc/ghi (ms spent reading/writing).
- Thống kê I/O (IO stats).
Ví dụ 5: Hiển thị trạng thái bộ nhớ xuyên suốt theo Megabyte
Sử dụng kết hợp lệnh vmstat với tùy chọn -S M
cùng các đối số delay và count để hiển thị trạng thái bộ nhớ theo đơn vị megabyte nhiều lần. Bạn có thể thực hiện xem và kiểm tra bộ nhớ trong Linux với cú pháp sau:
vmstat -S M delay count
Kết quả:
Kết quả của lệnh vmstat -S M 10 3
nơi thông tin về bộ nhớ được hiển thị ba lần trong một khoảng thời gian 10 giây, với đơn vị đo là megabyte. Thông tin bao gồm:
- Bộ nhớ trống (free).
- Bộ nhớ đệm (buff).
- Bộ nhớ cache (cache).
Ví dụ 6: Hiển thị thông tin mốc thời gian trên từng báo cáo số liệu
Nếu bạn cần thêm thông tin mốc thời gian vào mỗi báo cáo hay là hiển thị thời gian thu thập các số liệu thống kê thì có thể sử dụng tùy chọn -t
hoặc --
timestamp. Bạn có thể thực hiện lệnh vmstat với cú pháp thực hiện ở bên dưới:
vmstat -t
Hoặc:
vmstat --timestamp
Kết quả:
Ảnh bên dưới hiển thị kết quả của lệnh vmstat -t
, bổ sung thêm cột timestamp, hiển thị thời gian thực hiện lệnh với định dạng ngày và giờ cụ thể. Ví dụ ở output bên dưới thể hiện mốc thời gian hiển thị là 2023-02-05 13:37:59.
Câu hỏi thường gặp
Có thể sử dụng vmstat để theo dõi hoạt động của ổ cứng không?
Câu trả lời là không. Lệnh vmstat chỉ chủ yếu tập trung vào việc thống kê các thông số liên quan đến bộ nhớ ảo (virtual memory) của hệ thống. Dòng lệnh cung cấp thông tin về các quá trình, bộ nhớ, swap, I/O và hệ thống.
Có cách nào để theo dõi số lượng các tiến trình đang chờ đợi I/O không?
Câu trả lời là không. Với 2 nguyên nhân chính như sau:
1. Mục tiêu: Lệnh vmstat tập trung vào việc cung cấp các thống kê tổng quan về hệ thống, trong khi việc theo dõi từng tiến trình là một yêu cầu cụ thể hơn.
2. Độ trễ: Việc đếm chính xác số lượng tiến trình đang chờ đợi I/O tại một thời điểm cụ thể là một nhiệm vụ phức tạp và có thể gây ra độ trễ đáng kể cho hệ thống.
Lời kết
Hy vọng rằng qua 6 ví dụ về cách sử dụng lệnh vmstat như trên, bạn đã nắm vững cách sử dụng cũng như kiến thức tổng quát về lệnh để theo dõi và phân tích các yếu tố quan trọng trong việc quản lý hệ thống. Nếu bạn có bất kỳ thắc mắc, vấn đề phát sinh, hoặc cần sự hỗ trợ từ Vietnix, đừng ngần ngại để lại bình luận phía dưới. Chúc bạn thành công!