NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
16/09/2024
Lượt xem

Cách sử dụng lệnh vmstat trong Linux qua 6 ví dụ chi tiết

16/09/2024
12 phút đọc
Lượt xem

Đánh giá

5/5 - (1 bình chọn)

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.

Lệnh vmstat trong Linux
Lệnh vmstat trong Linux

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]]

Lưu ý: Trong cú pháp trên, OPTION được đặt trong dấu ngoặc vuông có nghĩa là không bắt buộc. Còn đối với ba dấu chấm đặt sau dấu tức là bạn có thể sử dụng nhiều OPTION cùng lúc sau lệnh vmstat. Cuối cùng là DELAY thì đề cập đến độ trễ giữa các lần cập nhật tính bằng giây còn COUNT chỉ số lần cập nhật.

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ọnChức năng
-a, --activeHiển thị thông tin về bộ nhớ đang được sử dụng và bộ nhớ không hoạt động
-f, --forksHiển thị số lượng tiến trình đã được khởi tạo kể từ khi khởi động hệ thống
-m, --slabsHiển thị thông tin về các slabs
-s, --statsHiển thị bảng các bộ đếm sự kiện và thống kê bộ nhớ khác nhau
-d, --diskHiển thị thống kê về các hoạt động đĩa
-D, --disk-sumHiển thị thống kê về các hoạt động phân trang
-S, --unit characterHiển thị thông tin theo đơn vị MB hoặc KB
-t, --timestampHiển thị mốc thời gian kèm theo mỗi báo cáo
-h, --helpHiển thị trang trợ giúp
-V, --versionHiển thị thông tin về phiên bản của lệnh vmstat

Lưu ý: Các lệnh và tùy chọn trong Linux phân biệt chữ hoa và chữ thường. Vì vậy, bạn cần cẩn thận khi sử dụng các tùy chọn này.

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).
Hiển thị số liệu thống kê hệ thống bằng lệnh vmstat trong Linux
Hiển thị số liệu thống kê hệ thống bằng lệnh vmstat trong Linux

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.
Hiển thị dung lượng bộ nhớ đang hoạt động và không hoạt động
Hiển thị dung lượng bộ nhớ đang hoạt động và không hoạt độ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ư:

  1. Tổng bộ nhớ (total memory),
  2. Bộ nhớ đã sử dụng (used memory).
  3. Bộ nhớ đang hoạt động (active memory).
  4. Bộ nhớ không hoạt động (inactive memory)
  5. Bộ nhớ trống (free memory).
  6. Số lần ngắt (interrupts).
  7. Chuyển đổi ngữ cảnh (CPU context switches).
  8. Thời gian khởi động (boot time)
  9. Các thông số CPU khác như CPU ticks và pages paged in/out.
Hiển thị số liệu thống kê bộ nhớ và lập lịch bằng lệnh vmstat
Hiển thị số liệu thống kê bộ nhớ và lập lịch bằng lệnh vmstat

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).
Hiển thị tất cả số liệu thống kê đĩa bằng lệnh vmstat trong Linux
Hiển thị tất cả số liệu thống kê đĩa bằng lệnh vmstat trong Linux

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).
Hiển thị liên tục trạng thái bộ nhớ theo Megabyte
Hiển thị liên tục trạng thái bộ nhớ theo Megabyte

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.

Hiển thị thông tin dấu thời gian của từng báo cáo
Hiển thị thông tin dấu thời gian của từng báo cáo

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!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG