Lệnh Vmstat Linux

Lenh Vmstat Linux



Trong hướng dẫn này, chúng tôi sẽ trình bày các cách khác nhau để sử dụng lệnh “vmstat” trong Linux.

Điều kiện tiên quyết:

Để thực hiện các bước được trình bày trong hướng dẫn này, bạn cần có các thành phần sau:

  • Một hệ thống Linux được cấu hình đúng. Với mục đích thử nghiệm, cân nhắc sử dụng máy ảo Linux .
  • Truy cập vào một người dùng không phải root có đặc quyền sudo
  • Hiểu biết cơ bản về giao diện dòng lệnh

Bộ nhớ ảo trong Linux

Bộ nhớ vật lý, còn được gọi là RAM, có số lượng hữu hạn. Hạt nhân chịu trách nhiệm phân phối không gian này cho tất cả các chương trình đang chạy. Tất cả các chương trình đang chạy (bao gồm cả HĐH) đều nằm trong RAM.







Tuy nhiên, nếu nhu cầu về bộ nhớ cao hơn bộ nhớ khả dụng, nó chỉ làm hỏng hệ thống (hoặc chương trình sẽ yêu cầu thêm dung lượng bộ nhớ). Trong hầu hết các tình huống, đó là một kết quả không mong muốn. Đây là nơi bộ nhớ ảo xuất hiện.



Bộ nhớ ảo đề cập đến một không gian đĩa chuyên dụng trên ổ cứng/SSD của bạn, có thể hoạt động như bộ nhớ bổ sung trong những tình huống nghiêm trọng. Bởi vì nó hoạt động như không gian RAM (nhưng thực tế không phải vậy) nên nó được coi là “ảo”. Trong hệ thống UNIX/Linux, những không gian này được gọi là không gian trao đổi.



Nhân Linux di chuyển các khối bộ nhớ vào không gian hoán đổi và lấy chúng trở lại RAM nếu cần.





Hiệu suất của bộ nhớ ảo chắc chắn là chậm hơn so với bộ nhớ vật lý và tỷ lệ thuận với hiệu suất của thiết bị lưu trữ. Tuy nhiên, trong các cấu hình phần cứng cụ thể (sử dụng SSD NVMe chẳng hạn), hiệu suất có thể tương đương với RAM.

Lệnh Vmstat

Lệnh “vmstat” là một công cụ giám sát báo cáo nhiều thông tin khác nhau về bộ nhớ ảo. Nó có sẵn trên tất cả các hệ thống Linux như một phần của gói “sysstat”.



Cấu trúc lệnh của “vmstat” như sau:

$ vmstat < tùy chọn > < trì hoãn > < đếm >

Cách sử dụng cơ bản

Nếu nó được chạy mà không có bất kỳ tham số nào, “vmstat” sẽ in thông tin hệ thống kể từ lần khởi động cuối cùng:

$ vmstat

Đầu ra được sắp xếp thành sáu phân đoạn:

  • quy trình : Thống kê các tiến trình hiện đang chạy
    • r : Số lượng tiến trình đang hoạt động
    • b : Số tiến trình ngủ
  • ký ức : Thống kê về mức sử dụng bộ nhớ
    • swpd : Tổng dung lượng bộ nhớ ảo (không gian trao đổi)
    • miễn phí : Không gian trao đổi có sẵn
    • đánh bóng : Lượng không gian hoán đổi đang được sử dụng làm bộ nhớ đệm tạm thời
    • bộ nhớ đệm : Tổng bộ nhớ đệm
  • tráo đổi : Thống kê về không gian hoán đổi
    • Vâng : Tỷ lệ hoán đổi trong
    • Vì thế : Tỷ lệ hoán đổi
  • cái này : Thống kê vào/ra
    • với một : Số khối nhận được từ (các) thiết bị khối
    • : Số khối được gửi đến (các) thiết bị khối
  • hệ thống : Thống kê về lịch trình
    • TRONG : Số lần ngắt hệ thống
    • cs : Tỷ lệ chuyển ngữ cảnh
  • CPU : Thống kê CPU khác nhau
    • chúng ta : CPU dành thời gian cho các tiến trình không phải kernel
    • : CPU dành thời gian cho các tiến trình kernel
    • nhận dạng : CPU dành thời gian chạy không tải
    • của : CPU dành thời gian chờ các thao tác I/O hoàn thành
    • st : Thời gian CPU được máy ảo sử dụng

Thay đổi Đơn vị Hiển thị

Theo mặc định, “vmstat” báo cáo các giá trị bộ nhớ tính bằng kilobyte. Để thay đổi đơn vị, hãy sử dụng “ -S ' lá cờ:

$ vmstat -S < lý lẽ >

Ở đây, “vmstat” in các giá trị tính bằng megabyte.

Có một số đơn vị bộ nhớ có sẵn:

  • M : 1048576 byte (2^20 byte)
  • tôi : 1000000 byte (1000 kilobyte)
  • K : 1024 byte (1 megabyte)
  • k : 1000 byte (1 kilobyte)

Cập nhật thống kê liên tục

Theo mặc định, “vmstat” in báo cáo một lần. Tuy nhiên, chúng tôi có thể hướng dẫn “vmstat” cung cấp báo cáo liên tục trong một khoảng thời gian xác định (tính bằng giây).

Cấu trúc lệnh như sau:

$ vmstat < trì hoãn >

Ví dụ: để nhận số liệu thống kê được cập nhật cứ sau 2 giây, lệnh như sau:

$ vmstat 2

Đầu ra sẽ không dừng trừ khi được kết thúc thủ công bằng cách sử dụng “Ctrl + C”.

Ngoài ra, chúng ta có thể chỉ định “vmstat” để cung cấp số liệu thống kê cho một số lần cụ thể:

$ vmstat < trì hoãn > < đếm >

Ví dụ: để nhận số liệu thống kê được cập nhật cứ sau 2 giây trong 5 lần, lệnh sẽ như sau:

$ vmstat 2 5

Bộ nhớ hoạt động và không hoạt động

Bộ nhớ hoạt động đề cập đến không gian bộ nhớ hiện đang được một tiến trình sử dụng. Mặt khác, bộ nhớ không hoạt động đề cập đến không gian bộ nhớ được gán cho một tiến trình không còn chạy nữa.

Sử dụng “vmstat”, chúng ta có thể kiểm tra lượng bộ nhớ hoạt động và không hoạt động đang được sử dụng:

$ vmstat -Một

Ở đây, các cột “buff” và “cache” lần lượt được thay thế bằng các cột “không hoạt động” và “hoạt động”.

Bộ nhớ và lập kế hoạch

Để nhận báo cáo chi tiết hơn về bộ nhớ và lập lịch, hãy sử dụng lệnh sau:

$ vmstat -S

Đây:

  • Phần 1: Phần này đề cập đến thông tin hệ thống cơ bản như tổng bộ nhớ vật lý, bộ nhớ hoạt động/không hoạt động, bộ nhớ trống/đệm/cache, v.v.
  • Phần 2: Thống kê CPU khác nhau
    • Dấu tích CPU không đẹp : Số lần các tiến trình có mức độ ưu tiên cao đã sử dụng CPU.
    • Dấu tích CPU đẹp : Số lần các tiến trình có mức ưu tiên thấp hơn đã sử dụng CPU.
    • Dấu tích CPU hệ thống : Số lần các tiến trình kernel sử dụng CPU.
    • Dấu tích CPU nhàn rỗi : Số lần CPU không hoạt động.
    • IO-chờ CPU tích tắc : Số lần CPU chờ quản lý I/O.
    • IRQ : Số lần CPU nhận được yêu cầu ngắt.
    • phần mềm : Số lần CPU nhận được yêu cầu ngắt phần mềm.
    • bọ ve CPU bị đánh cắp : Số lần VM lấy trộm thời gian của CPU.
  • Phần 3: Thống kê phân trang bộ nhớ
  • Phần 4: Bộ đếm sự kiện

Fork kể từ khi khởi động

Các nhánh đề cập đến các quy trình được sinh ra bởi các quy trình hiện có. Để lấy số liệu thống kê về số lượng nhánh, hãy chạy lệnh sau:

$ vmstat -f

Thống kê đĩa và phân vùng

Lệnh “vmstat” cũng có thể cung cấp thông tin về hoạt động của ổ đĩa. Để có bản tóm tắt nhanh về hoạt động của đĩa, hãy chạy lệnh sau:

$ vmstat -D

Để nhận báo cáo hoạt động ổ đĩa chi tiết hơn (bao gồm số liệu thống kê đọc/ghi), thay vào đó hãy sử dụng lệnh sau:

$ vmstat -d

Đây:

  • Đọc
    • tổng cộng : Tổng số lần đọc đĩa
    • sáp nhập : Tổng số lần đọc của nhóm
    • lĩnh vực : Tổng số lĩnh vực được đọc
    • bệnh đa xơ cứng : Tổng thời gian đọc dữ liệu từ đĩa (tính bằng mili giây)
  • viết
    • tổng cộng : Tổng số lần ghi đĩa
    • sáp nhập : Tổng số lần viết của nhóm
    • lĩnh vực : Tổng số lĩnh vực được viết
    • bệnh đa xơ cứng : Tổng thời gian ghi vào đĩa (tính bằng mili giây)
  • IO
    • đặt : Tổng số lần đọc/ghi đĩa hiện tại
    • giây : Lượng thời gian dành cho thao tác đọc/ghi đang diễn ra (tính bằng giây)

Lệnh “vmstat” cũng có thể tạo báo cáo cho một phân vùng đĩa cụ thể. Để lấy báo cáo phân vùng, hãy sử dụng cấu trúc lệnh sau:

$ vmstat -P < phân vùng_định danh >

Thống kê tấm

Phân bổ phiến được thiết kế để trở thành một cơ chế hiệu quả cho việc phân bổ bộ nhớ của đối tượng. So với các cơ chế trước đây, việc phân bổ phiến giúp giảm sự phân mảnh bộ nhớ (gây ra bởi việc phân bổ và giải phóng bộ nhớ).

Để kiểm tra số liệu thống kê của hệ thống, hãy sử dụng lệnh “vmstat” sau:

$ sudo vmstat -m

Lưu ý rằng nó yêu cầu quyền root để xem số liệu thống kê.

Đây:

  • Bộ nhớ đệm : Tên của dữ liệu được lưu trữ
  • trên một : Số lượng đối tượng đang hoạt động trong bộ đệm Num
  • Tổng cộng : Tổng số đối tượng trong một bộ đệm cụ thể
  • Kích cỡ : Kích thước của các đối tượng được lưu trong bộ nhớ đệm
  • Trang : Đếm số trang bộ nhớ chứa các đối tượng được lưu trong bộ nhớ đệm

Phần kết luận

Trong hướng dẫn này, chúng tôi đã giới thiệu các cách khác nhau để sử dụng lệnh “vmstat”. Bên cạnh bộ nhớ ảo, “vmstat” cũng có thể báo cáo số liệu thống kê về đĩa, nhánh, phiến, v.v.

Bạn muốn tìm hiểu về các công cụ giám sát hệ thống khác? Học nhiều hơn về htop , giết , ps , vân vân.

Chúc bạn tính toán vui vẻ!