Sử dụng lệnh vmstat trên Linux
1. Bộ nhớ ảo.
2. Sử dụng khoảng thời gian thống kê.
3. Sử dụng giá trị count.
4. Thay đổi đơn vị.
5. Hiển thị bộ nhớ hoạt động và không hoạt động.
6. Hiển thị bộ đếm thời gian và thống kê bộ nhớ.
7. Hiển thị thống kê ổ đĩa.
8. Hiển thị số liệu ổ ghi tóm tắt.
9. Hiển thị thống kê phân vùng.
1. Bộ nhớ ảo
Máy tính được trang bị một lượng bộ nhớ vật lý hữu hạn được gọi là bộ nhớ truy cập ngẫu nhiên (RAM). Kernel quản lý bộ nhớ này và chia sẻ nó giữa hệ điều hành và tất cả các ứng dụng đang hoạt động.
Hệ điều hành như Linux và các hệ điều hành giống Unix như macOS có thể sử dụng không gian trên ổ đĩa để hỗ trợ quản lý bộ nhớ. Khu vực được dành riêng cho không gian trên ổ đĩa được gọi là 'không gian hoán đổi', có thể đóng vai trò như một phần mở rộng của RAM. Điều này được gọi là bộ nhớ ảo.
Lệnh vmstat => Hướng dẫn sử dụng lệnh vmstat trên Linux
Lệnh vmstat cung cấp thông tin thống kê về bộ nhớ vật lý, CPU và ổ đĩa cứng.
Nếu bạn sử dụng lệnh vmstat mà không có tham số, nó sẽ hiển thị một loạt các giá trị. Những giá trị này là trung bình từ mỗi thống kê tính từ lần khởi động cuối cùng của máy tính.
vmstat
Sau khi nhập lệnh như vậy, một bảng giá trị ngắn sẽ xuất hiện trên màn hình.
thực hiện lệnh
Bảng chứa các cột procs, memory, swap, io, system và CPU. Cột bên phải cung cấp dữ liệu liên quan đến CPU.
Dưới đây là giải thích các mục dữ liệu tại các cột.
Procs
- r: Số lượng tiến trình có thể chạy. Có thể là tiến trình đã chạy, đang chạy hoặc đang chờ đợi CPU tiếp theo. Process không sử dụng là tiến trình.
- b: Số lượng tiến trình trong trạng thái sleep không bị gián đoạn. Thực chất, những tiến trình này không 'sleep' mà đang chặn một system call và không gián đoạn cho đến khi hoàn thành tiến trình hiện tại. Thông thường, điều này xảy ra khi driver đang chờ tài nguyên rảnh rỗi. Bất kỳ gián đoạn nào đối với quy trình đó sẽ được xử lý khi quy trình tiếp tục hoạt động bình thường.
Bộ nhớ
- swpd: dung lượng bộ nhớ ảo đang sử dụng hay dung lượng bộ nhớ bị hoán đổi.
- free: dung lượng bộ nhớ không sử dụng hiện tại.
- buff: dung lượng bộ nhớ được sử dụng làm buffer => bộ nhớ đệm.
- cache: dung lượng bộ nhớ được sử dụng làm cache => bộ nhớ cache.
Swap
- si: Lượng bộ nhớ ảo được đưa vào từ không gian trao đổi.
- so: Lượng bộ nhớ ảo được đưa ra khỏi không gian trao đổi.
IO
- bi: Khối dữ liệu nhận được từ một thiết bị khối. Số lượng khối dữ liệu được sử dụng để trao đổi bộ nhớ ảo trở lại RAM.
- bo: Khối dữ liệu gửi đi đến một thiết bị khối. Số lượng khối dữ liệu được sử dụng để trao đổi bộ nhớ ảo ra khỏi RAM và vào không gian trao đổi.
- block giữ nguyên không thay đổi là khối
Hệ thống
- in: Số lượng gián đoạn mỗi giây.
- cs: Số lượng chuyển đổi ngữ cảnh mỗi giây. Chuyển đổi ngữ cảnh là khi kernel chuyển từ xử lý chế độ hệ thống sang xử lý chế độ người dùng.
- Chuyển đổi ngữ cảnh là quá trình ....
CPU
- us: Thời gian chạy code không phải kernel.
- sy: Thời gian chạy code kernel.
- id: Thời gian rảnh rỗi.
- wa: Thời gian chờ đầu vào hoặc đầu ra.
- st: Thời gian từ một máy ảo. Đây là thời gian mà máy ảo phải chờ hệ thống giám sát máy ảo hypervisor hoàn thành việc phục vụ máy ảo khác trước khi nó có thể tiếp tục và hoạt động vào máy ảo này => xem xét đoạn này
- hypervisor: phần mềm giám sát máy ảo
2. Đặt khoảng thời gian thống kê
Bạn có thể yêu cầu vmstat cập nhật thường xuyên các số liệu thống kê bằng cách sử dụng giá trị delay. Giá trị này được cung cấp trong vài giây. Để cập nhật số liệu thống kê mỗi 5 giây, sử dụng lệnh sau:
vmstat 5
Mỗi 5 giây, vmstat sẽ thêm một dòng dữ liệu mới vào bảng. Để dừng việc này, nhấn Ctrl + C.
3. Sử dụng giá trị count
Việc sử dụng giá trị delay quá thấp có thể gây tắc nghẽn cho hệ thống của bạn. Nếu muốn cập nhật nhanh hơn, sử dụng giá trị count.
Giá trị count của vmstat cho biết có bao nhiêu lần cập nhật cần thực hiện trước khi thoát và trả về dấu nhắc lệnh. Nếu bạn không cung cấp giá trị count, vmstat sẽ chạy cho đến khi được dừng bởi tổ hợp phím Ctrl + C.
Để vmstat cung cấp một bản cập nhật mỗi 5 giây, nhưng chỉ trong bốn lần cập nhật, sử dụng lệnh sau:
vmstat 5 4
Sau bốn lần cập nhật, vmstat sẽ dừng lại.
4. Đổi đơn vị
Để hiển thị số liệu thống kê bộ nhớ và hoán đổi theo đơn vị kilobyte hoặc megabyte, sử dụng tùy chọn -S (ký tự đơn vị). Tùy chọn này phải được theo sau bởi các chữ k, K, m hoặc M. Cụ thể chúng đại diện cho:
- k: 1000 byte
- K: 1024 byte
- m: 1000000 byte
- M: 1048576 byte
Để cập nhật số liệu thống kê bộ nhớ và hoán đổi mỗi 10 giây theo đơn vị megabyte, sử dụng lệnh sau:
vmstat 10 -S M
5. Hiển thị bộ nhớ hoạt động và không hoạt động
Nếu sử dụng tùy chọn -a (active), các cột bộ nhớ buff và bộ nhớ cache sẽ được thay thế bằng các cột 'inact' và 'active'.
Để xem hai cột này thay vì cột buff và cột cache, hãy bao gồm tùy chọn -a, như câu lệnh sau:
vmstat 5 -a -S M
Các cột 'inact' và 'active' sẽ bị ảnh hưởng bởi tùy chọn -S (ký tự đơn vị).
Đếm số lượng Fork
Lệnh -f hiển thị số lượng fork đã xảy ra kể từ khi máy tính được khởi động.
Nói cách khác, lệnh này cho thấy số lượng tác vụ đã được khởi chạy (phần lớn trong số chúng đã bị đóng lại) kể từ khi hệ thống được khởi động. Mỗi quá trình khởi chạy từ dòng lệnh sẽ tăng lên. Khi một nhiệm vụ hoặc tiến trình mới phát sinh con số này sẽ tiếp tục tăng.
vmstat -f
Màn hình fork không được cập nhật.
Hiển thị Slabinfo
Kernel sở hữu một hệ thống quản lý bộ nhớ riêng cho hệ điều hành và tất cả các ứng dụng.
Kernel sẽ phân bổ và giải phóng bộ nhớ nhiều lần cho nhiều loại đối tượng dữ liệu khác nhau mà nó phải xử lý. Để làm cho việc này hiệu quả nhất có thể, nó sử dụng một hệ thống gọi là slab. Đây là một hình thức ghi lại cache.
Để xem số liệu thống kê cho các slab, sử dụng tùy chọn -m (slabs). Lúc này bạn cần sử dụng sudo và nhập mật khẩu. Vì đầu ra có thể khá dài, nên chuyển nó qua less.
sudo vmstat -m | less
Đầu ra hiển thị năm cột. Đó là:
- Bộ nhớ đệm: Tên của bộ nhớ đệm.
- Số lượng: Số lượng đối tượng hiện đang hoạt động trong bộ nhớ đệm này.
- Tổng số: Tổng số đối tượng có sẵn trong bộ nhớ đệm.
- Kích thước: Kích thước của từng đối tượng trong bộ nhớ đệm.
- Trang: Tổng số trang bộ nhớ có (ít nhất) một đối tượng hiện được liên kết với bộ nhớ đệm.
Nhấn q để thoát khỏi chế độ less.
6. Hiển thị bộ đếm thời gian và thống kê bộ nhớ
Để hiển thị một trang của bộ đếm thời gian và thống kê bộ nhớ, hãy sử dụng tùy chọn -s (stats). Lưu ý chữ 's' viết thường.
vmstat -s
Mặc dù phần lớn số liệu thống kê được báo cáo giống như thông tin tạo ra đầu ra vmstat mặc định, một số dữ liệu trong chúng vẫn được phân chia chi tiết hơn.
Ví dụ, đầu ra mặc định kết hợp cả thời gian CPU của user nice và non-nice vào cột us. Màn hình -s (stats) liệt kê các thống kê này một cách riêng biệt.
7. Hiển thị thống kê ổ đĩa
Bạn có thể có được một danh sách thống kê ổ đĩa tương tự bằng cách sử dụng tùy chọn -d (disk).
vmstat -d | less
Đối với mỗi đĩa, ba cột được hiển thị, đó là reads, writes và IO.
IO là cột ngoài cùng bên phải. Lưu ý rằng cột sec trong IO được đo bằng giây nhưng thống kê dựa trên thời gian trong cột reads và writes được đo bằng mili giây.
Ý nghĩa của các cột:
Reads
- total: Tổng số lần đọc ổ đĩa.
- merged: Tổng số lần đọc được nhóm.
- sectors: Tổng số các sector đã được đọc.
- ms: Tổng số thời gian tính bằng mili giây đã được sử dụng để đọc dữ liệu từ ổ đĩa.
Writes
- total: Tổng số lần ghi ổ đĩa.
- merged: Tổng số các lần ghi được nhóm lại.
- sectors: Tổng số các sector được ghi.
- ms = Tổng số thời gian tính bằng mili giây đã được sử dụng ghi dữ liệu vào ổ đĩa.
IO
- cur: Số lượng lần đọc và ghi hiện tại.
- sec: Thời gian tính bằng giây cho bất kỳ việc đọc hoặc ghi nào đang thực hiện.
8. Hiển thị số liệu ổ ghi tóm tắt
Để xem hiển thị nhanh số liệu ổ ghi tóm tắt , sử dụng tùy chọn -D (disk-sum). Lưu ý chữ 'D' viết hoa.
vmstat -D
Số lượng ổ đĩa có thể lên cao bất thường. Máy tính được sử dụng trong bài viết này đang chạy Ubuntu. Với Ubuntu, mỗi khi bạn cài đặt một ứng dụng từ Snap, một hệ thống tập tin pseudo-filesystem squashfs được tạo ra sẽ gắn vào một thiết bị / dev / loop.
9. Hiển thị thống kê phân vùng
Để xem số liệu thống kê liên quan đến một phân vùng cụ thể, hãy sử dụng tùy chọn -p (partition) và cung cấp định danh phân vùng làm tham số dòng lệnh.
Ở đây chúng ta sẽ xem xét phân vùng sda1. Chữ số một cho biết đây là phân vùng đầu tiên trên thiết bị sda, nó là ổ cứng chính cho máy tính này.
vmstat -p sda1
Thông tin trả về cho thấy tổng số lần đọc và ghi ổ đĩa vào và từ phân vùng đó và số lượng các lĩnh vực có trong các hành động đọc và ghi ổ đĩa.
Với các phân tích ở trên bạn đã biết cách sử dụng lệnh Vmstat trên Linux , bây giờ hãy bắt tay vào thực hiện xem thống kê dung lượng sử dụng cho bộ nhớ thực, CPU và ổ đĩa ngay nào.
Trên đây là một số cách sử dụng lệnh vmstat trên Linux. Hy vọng bài viết của Mytour đã cung cấp cho bạn các thông tin hữu ích. Ngoài ra nếu có bất kỳ thắc mắc hoặc câu hỏi nào cần giải đáp như danh sách các lệnh Linux cơ bản cho người mới dùng ..., bạn đọc có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết nhé.