Giới thiệu
Trong lab này, bạn sẽ học về lệnh vmstat của Linux, một công cụ mạnh mẽ để giám sát hiệu suất hệ thống. Lệnh vmstat cung cấp một cái nhìn tổng quan chi tiết về các tài nguyên hệ thống khác nhau, bao gồm CPU, bộ nhớ và I/O đĩa. Bạn sẽ hiểu các cột khác nhau của đầu ra vmstat và cách sử dụng lệnh để phân tích hiệu suất hệ thống. Ngoài ra, bạn sẽ khám phá cách chạy vmstat với các tùy chọn và khoảng thời gian khác nhau để hiểu toàn diện về hành vi của hệ thống.
Tìm hiểu về lệnh vmstat
Trong bước này, bạn sẽ tìm hiểu về lệnh vmstat trong Linux, đây là một công cụ mạnh mẽ để giám sát hiệu suất hệ thống. Lệnh vmstat cung cấp một cái nhìn tổng quan chi tiết về các tài nguyên hệ thống khác nhau, bao gồm CPU, bộ nhớ và I/O đĩa.
Đầu tiên, hãy bắt đầu bằng cách chạy lệnh vmstat mà không có bất kỳ đối số nào:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
Đầu ra của lệnh vmstat được chia thành nhiều cột, mỗi cột cung cấp thông tin về một tài nguyên hệ thống cụ thể:
procs
: Hiển thị số lượng tiến trình ở các trạng thái khác nhau (đang chạy, bị chặn, v.v.)memory
: Cung cấp thông tin về việc sử dụng bộ nhớ, bao gồm bộ nhớ trống, đã sử dụng và được lưu trong cacheswap
: Hiển thị thông tin về việc sử dụng không gian swapio
: Hiển thị số liệu thống kê I/O đĩa, bao gồm các khối đã đọc và ghisystem
: Hiển thị số liệu thống kê cấp hệ thống, chẳng hạn như ngắt và chuyển đổi ngữ cảnhcpu
: Cung cấp số liệu thống kê về mức sử dụng CPU, bao gồm thời gian người dùng, hệ thống, nhàn rỗi và thời gian chờ
Để hiểu rõ hơn về đầu ra vmstat, hãy chạy lệnh với tùy chọn -a
, tùy chọn này hiển thị thông tin bổ sung liên quan đến bộ nhớ:
$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 1877028 1294456 65356 0 0 0 0 0 0 0 0 100 0 0
Trong đầu ra này, bạn có thể thấy các cột bộ nhớ inact
(không hoạt động) và active
(hoạt động), cung cấp cái nhìn sâu sắc hơn về việc sử dụng bộ nhớ.
Lệnh vmstat cũng hỗ trợ nhiều khoảng thời gian và số lần lặp khác nhau. Ví dụ: để hiển thị số liệu thống kê hệ thống sau mỗi 2 giây trong 5 lần, bạn có thể sử dụng lệnh sau:
$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 369 682 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 373 696 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
Đầu ra này sẽ hiển thị số liệu thống kê hệ thống sau mỗi 2 giây, tổng cộng 5 lần lặp.
Lệnh vmstat cung cấp rất nhiều thông tin về hiệu suất hệ thống của bạn và việc hiểu cách diễn giải đầu ra của nó là rất quan trọng để giám sát và khắc phục sự cố hệ thống hiệu quả.
Giám sát hiệu suất hệ thống với vmstat
Trong bước này, bạn sẽ tìm hiểu cách sử dụng lệnh vmstat để giám sát các khía cạnh khác nhau về hiệu suất hệ thống của bạn, bao gồm CPU, bộ nhớ và I/O đĩa.
Hãy bắt đầu bằng cách giám sát mức sử dụng CPU của hệ thống. Lệnh vmstat cung cấp thông tin chi tiết về mức sử dụng CPU, bao gồm tỷ lệ phần trăm thời gian dành cho chế độ người dùng, chế độ hệ thống, trạng thái nhàn rỗi và trạng thái chờ.
Để giám sát mức sử dụng CPU, hãy chạy lệnh sau:
$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 369 682 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 373 696 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
Trong đầu ra, phần "cpu" hiển thị tỷ lệ phần trăm thời gian CPU sử dụng ở chế độ người dùng (us
), chế độ hệ thống (sy
), nhàn rỗi (id
) và chờ I/O (wa
). Trong ví dụ này, CPU chủ yếu ở trạng thái nhàn rỗi (100%).
Tiếp theo, hãy giám sát việc sử dụng bộ nhớ. Lệnh vmstat cung cấp thông tin về lượng bộ nhớ trống, đã sử dụng và được lưu trong cache, cũng như việc sử dụng không gian swap.
Để giám sát việc sử dụng bộ nhớ, hãy chạy lệnh sau:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
Trong đầu ra, phần "memory" hiển thị lượng bộ nhớ trống (free
), bộ nhớ đã sử dụng (used
) và bộ nhớ được lưu trong cache (cache
). Phần "swap" hiển thị lượng không gian swap đã sử dụng và còn trống (swpd
và free
).
Cuối cùng, hãy giám sát I/O đĩa. Lệnh vmstat cung cấp thông tin về số lượng khối được đọc từ và ghi vào đĩa.
Để giám sát I/O đĩa, hãy chạy lệnh sau:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
Trong đầu ra, phần "io" hiển thị số lượng khối được đọc từ đĩa (bi
) và được ghi vào đĩa (bo
).
Bằng cách sử dụng lệnh vmstat, bạn có thể giám sát hiệu quả các khía cạnh khác nhau về hiệu suất hệ thống của mình và xác định các nút thắt cổ chai hoặc sự cố tiềm ẩn.
Phân tích CPU, bộ nhớ và I/O đĩa với vmstat
Trong bước này, bạn sẽ học cách phân tích các chỉ số CPU, bộ nhớ và I/O đĩa do lệnh vmstat cung cấp để xác định các vấn đề tiềm ẩn về hiệu suất trong hệ thống của bạn.
Hãy bắt đầu bằng cách phân tích mức sử dụng CPU:
$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 369 682 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 373 696 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
0 0 0 1877028 16308 1359812 0 0 0 0 367 688 0 0 100 0 0
Trong phần "cpu", bạn có thể thấy rằng CPU chủ yếu ở trạng thái nhàn rỗi (100%), điều này cho thấy rằng hệ thống không bị tải nặng.
Tiếp theo, hãy phân tích việc sử dụng bộ nhớ:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
Phần "memory" cho thấy rằng hệ thống có một lượng lớn bộ nhớ trống (1.877.028 kB) và một lượng đáng kể bộ nhớ được lưu trong cache (1.359.812 kB). Điều này cho thấy rằng hệ thống có đủ tài nguyên bộ nhớ và không gặp phải bất kỳ vấn đề nào về hiệu suất liên quan đến bộ nhớ.
Cuối cùng, hãy phân tích I/O đĩa:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1877028 16308 1359812 0 0 0 0 0 0 0 0 100 0 0
Phần "io" cho thấy rằng không có khối nào được đọc từ hoặc ghi vào đĩa (bi
và bo
đều là 0). Điều này cho thấy rằng hệ thống không gặp phải bất kỳ hoạt động I/O đĩa đáng kể nào.
Bằng cách phân tích các chỉ số CPU, bộ nhớ và I/O đĩa do lệnh vmstat cung cấp, bạn có thể xác định các nút thắt cổ chai tiềm ẩn về hiệu suất trong hệ thống của mình và thực hiện các hành động thích hợp để tối ưu hóa hiệu suất của nó.
Tóm tắt
Trong lab này, bạn đã học về lệnh vmstat trong Linux, đây là một công cụ mạnh mẽ để giám sát hiệu suất hệ thống. Bạn bắt đầu bằng cách hiểu cách sử dụng cơ bản của lệnh vmstat và các cột thông tin khác nhau mà nó cung cấp, bao gồm thống kê CPU, bộ nhớ và I/O đĩa. Sau đó, bạn đã khám phá cách sử dụng tùy chọn -a
để hiển thị thông tin bổ sung liên quan đến bộ nhớ và cách đặt khoảng thời gian và số lần lặp để giám sát số liệu thống kê hệ thống theo thời gian. Các điểm học tập chính được đề cập trong lab này là hiểu lệnh vmstat, giám sát hiệu suất hệ thống bằng vmstat và phân tích CPU, bộ nhớ và I/O đĩa bằng công cụ vmstat.