Lệnh vmstat (Virtual Memory Statistics) là một công cụ giám sát hiệu suất hệ thống cực kỳ mạnh mẽ và linh hoạt, được tích hợp sẵn trong hầu hết các bản phân phối Linux là gì. Nó cung cấp một cái nhìn tổng quan nhanh chóng nhưng chi tiết về tài nguyên hệ thống theo thời gian thực, bao gồm bộ nhớ ảo, tiến trình, hoạt động CPU và các tác vụ I/O (đọc/ghi). Đối với quản trị viên hệ thống hay lập trình viên, việc hiểu và sử dụng thành thạo vmstat giống như có một bảng điều khiển trung tâm, giúp chẩn đoán các “căn bệnh” về hiệu suất một cách chính xác.
Tuy nhiên, nhiều người dùng Linux, đặc biệt là người mới, thường cảm thấy bối rối trước những cột dữ liệu và con số mà vmstat hiển thị. Họ không biết bắt đầu từ đâu, chỉ số nào là quan trọng và làm thế nào để diễn giải chúng một cách đúng đắn. Bài viết này của AZWEB sẽ là kim chỉ nam của bạn. Chúng tôi sẽ hướng dẫn bạn từng bước, từ cách cài đặt Ubuntu lệnh, giải thích cặn kẽ từng tham số, phân tích ý nghĩa các chỉ số, đến ứng dụng vào các tình huống thực tế để truy tìm và giải quyết các vấn đề về hiệu suất. Hãy cùng khám phá sức mạnh của vmstat để tối ưu hóa hệ thống Linux của bạn.
Cách cài đặt và truy cập lệnh vmstat trong Linux
Để bắt đầu sử dụng vmstat, trước tiên bạn cần đảm bảo rằng nó đã được cài đặt trên hệ thống của mình. Quá trình này khá đơn giản và nhanh chóng.
Tình trạng mặc định và các phiên bản Linux
Lệnh vmstat là một phần của gói tiện ích có tên là procps (hoặc procps-ng). Trên hầu hết các bản phân phối Linux hiện đại như Ubuntu, Debian, CentOS, và Fedora, gói này thường được cài đặt sẵn theo mặc định. Điều này có nghĩa là bạn có thể mở terminal và gõ vmstat để sử dụng ngay lập tức.
Tuy nhiên, trong một số trường hợp, đặc biệt là với các bản cài đặt tối thiểu (minimal installation) hoặc các hệ thống tùy chỉnh, gói procps có thể bị thiếu. Nếu bạn gõ vmstat và nhận được thông báo lỗi như “command not found”, bạn sẽ cần phải cài đặt nó theo cách thủ công. Gói tiện ích này rất nhẹ và không ảnh hưởng đến hiệu suất hệ thống của bạn.

Hướng dẫn cài đặt vmstat
Việc cài đặt vmstat thực chất là cài đặt gói procps hoặc sysstat (một gói công cụ giám sát hiệu suất khác cũng rất hữu ích). Bạn có thể sử dụng trình quản lý gói mặc định của bản phân phối Linux mà mình đang dùng.
Đối với các hệ thống dựa trên Debian/Ubuntu:
Bạn sử dụng trình quản lý gói apt. Mở terminal và chạy các lệnh sau:
sudo apt-get update
sudo apt-get install procps
Lệnh đầu tiên cập nhật danh sách các gói phần mềm, và lệnh thứ hai sẽ cài đặt gói procps chứa vmstat.
Đối với các hệ thống dựa trên RHEL/CentOS/Fedora:
Bạn sử dụng trình quản lý gói yum (trên các phiên bản cũ hơn) hoặc dnf (trên các phiên bản mới hơn). Với yum:
sudo yum install procps-ng
Với dnf:
sudo dnf install procps-ng
Sau khi quá trình cài đặt hoàn tất, bạn có thể xác minh bằng cách gõ vmstat vào terminal. Nếu hệ thống hiển thị một dòng các chỉ số, chúc mừng bạn đã cài đặt thành công!
Giải thích cú pháp và các tham số chính của lệnh vmstat
Hiểu rõ cú pháp và các tùy chọn của vmstat sẽ giúp bạn khai thác tối đa sức mạnh của công cụ này, tùy chỉnh đầu ra theo đúng nhu cầu giám sát của mình.
Cấu trúc cú pháp cơ bản của vmstat
Cú pháp tổng quát của lệnh vmstat rất đơn giản và dễ nhớ:vmstat [options] [interval] [count]
Trong đó:
- [options]: Là các tham số tùy chọn để thay đổi định dạng hoặc nội dung đầu ra. Ví dụ:
-sđể xem thống kê chi tiết,-dđể xem thông tin về đĩa. - [interval]: Là khoảng thời gian (tính bằng giây) giữa mỗi lần cập nhật thông tin. Nếu bạn không chỉ định tham số này, vmstat sẽ chỉ hiển thị một báo cáo duy nhất về trạng thái trung bình kể từ lần khởi động cuối cùng.
- [count]: Là số lần cập nhật mà bạn muốn vmstat hiển thị trước khi kết thúc. Nếu bạn chỉ định
intervalmà không cócount, vmstat sẽ chạy liên tục cho đến khi bạn dừng nó bằng tổ hợp phímCtrl + C.
Ví dụ, lệnh vmstat 2 5 sẽ yêu cầu vmstat hiển thị báo cáo hiệu suất mỗi 2 giây, và lặp lại tổng cộng 5 lần.

Các tham số thường dùng và ý nghĩa
Dưới đây là một số tham số (options) phổ biến và hữu ích nhất của vmstat mà bạn nên biết:
- Không có tham số (
vmstat): Chạy lệnh mà không có tùy chọn sẽ cung cấp một bản tóm tắt duy nhất về hiệu suất trung bình của hệ thống kể từ lần khởi động gần nhất. -a(--active): Hiển thị bộ nhớ đang hoạt động (active) và không hoạt động (inactive) thay cho bộ đệm (buff) và cache. Điều này hữu ích để xem bộ nhớ nào đang được các tiến trình sử dụng tích cực.-f(--forks): Hiển thị số lượng tiến trình con (forks) đã được tạo ra kể từ khi hệ thống khởi động. Con số này có thể giúp phát hiện các ứng dụng tạo ra quá nhiều tiến trình.-s(--stats): Hiển thị một bảng thống kê chi tiết và dễ đọc về các sự kiện hệ thống và bộ nhớ. Báo cáo này tĩnh và chỉ hiển thị một lần, rất tiện lợi để có cái nhìn tổng quan nhanh. Bạn có thể tham khảo thêm Bash là gì để hiểu cách thao tác shell ghi nhận và xử lý dữ liệu.-d(--disk): Cung cấp thông tin chi tiết về hoạt động đọc/ghi của tất cả các ổ đĩa trên hệ thống. Mỗi ổ đĩa sẽ được liệt kê trên một dòng riêng.-p [partition](--partition): Hiển thị thống kê chi tiết cho một phân vùng đĩa cụ thể. Ví dụ:vmstat -p /dev/sda1.-t(--timestamp): Thêm một dấu thời gian (timestamp) vào mỗi dòng đầu ra, giúp bạn dễ dàng theo dõi và phân tích lại dữ liệu trong các file log.
Việc kết hợp các tham số này một cách thông minh sẽ giúp bạn nhanh chóng khoanh vùng và chẩn đoán vấn đề. Ví dụ, vmstat -t 2 là một lệnh tuyệt vời để ghi lại hiệu suất hệ thống theo thời gian. Bạn có thể áp dụng song song với các công cụ ảo hóa như KVM là gì hoặc VirtualBox là gì khi chạy Linux trong môi trường ảo.
Cách đọc và phân tích các chỉ số bộ nhớ, CPU, tiến trình và hoạt động đĩa
Đây là phần quan trọng nhất khi làm việc với vmstat. Việc hiểu đúng ý nghĩa của từng cột dữ liệu sẽ quyết định khả năng chẩn đoán hiệu suất hệ thống của bạn. Dòng đầu tiên của kết quả vmstat thường là giá trị trung bình kể từ lần khởi động, bạn có thể bỏ qua và tập trung vào các dòng sau.

Hiểu các chỉ số bộ nhớ (memory) và swap
Phần bộ nhớ và swap cho bạn biết hệ thống đang quản lý RAM như thế nào.
- procs (Processes):
r: Số lượng tiến trình đang ở trạng thái sẵn sàng chạy (runnable) và đang chờ đến lượt sử dụng CPU. Nếu con số này liên tục lớn hơn số lõi CPU của bạn, điều đó có nghĩa là CPU đang bị quá tải. Xem thêm về Ram là gì để hiểu tầm quan trọng của RAM trong vận hành tiến trình.b: Số lượng tiến trình đang ở trạng thái ngủ không thể bị gián đoạn (uninterruptible sleep), thường là đang chờ một tác vụ I/O (ví dụ: đọc/ghi đĩa) hoàn thành. Một giá trịbcao và kéo dài là dấu hiệu của một nút thắt cổ chai ở hệ thống lưu trữ.
- memory:
swpd: Lượng bộ nhớ ảo (swap) đã được sử dụng (tính bằng KB). Giá trị này không đổi thì không đáng lo, nhưng nếu nó tăng liên tục, hệ thống của bạn đang thiếu RAM.free: Lượng bộ nhớ RAM vật lý còn trống hoàn toàn.buff: Lượng bộ nhớ được dùng làm bộ đệm (buffer) cho các tác vụ I/O.cache: Lượng bộ nhớ được dùng làm bộ đệm cache cho các tập tin đã được truy cập gần đây. Linux rất thông minh trong việc sử dụng RAM trống để làm cache, giúp tăng tốc độ truy cập.buffvàcachesẽ được giải phóng ngay khi ứng dụng cần.
- swap:
si: Tốc độ dữ liệu được chuyển từ swap vào bộ nhớ chính (Swap In), tính bằng KB/giây. Nếu giá trị này khác 0 và diễn ra liên tục, điều đó cho thấy hệ thống đang thiếu RAM trầm trọng.so: Tốc độ dữ liệu được chuyển từ bộ nhớ chính ra swap (Swap Out), tính bằng KB/giây. Giá trịsocao cũng là một dấu hiệu không tốt.
Phân tích hoạt động CPU và tiến trình
Phần CPU cho bạn biết bộ xử lý đang dành thời gian cho những loại tác vụ nào, được biểu thị bằng phần trăm (%).
us (user time): Tỷ lệ phần trăm thời gian CPU dành để chạy các tiến trình của người dùng (user-space code). Một giá trịuscao thường do các ứng dụng tính toán nặng gây ra.sy (system time): Tỷ lệ phần trăm thời gian CPU dành để chạy các tác vụ của hạt nhân hệ điều hành (kernel là gì) (kernel-space code). Giá trịsycao có thể do các hoạt động I/O hoặc hệ thống mạng quá tải.id (idle): Tỷ lệ phần trăm thời gian CPU hoàn toàn nhàn rỗi. Nếu giá trịidgần bằng 0 trong thời gian dài, CPU của bạn đang hoạt động hết công suất.wa (wait I/O): Tỷ lệ phần trăm thời gian CPU phải chờ đợi một tác vụ I/O (đọc/ghi đĩa) hoàn thành. Một giá trịwacao (ví dụ, > 20%) là dấu hiệu rõ ràng cho thấy hệ thống lưu trữ đang rất chậm và trở thành nút thắt cổ chai.st (stolen time): Thời gian bị “đánh cắp” bởi hypervisor. Chỉ số này chỉ có ý nghĩa trong môi trường ảo hóa (như VPS). Nếustcao, máy ảo của bạn đang phải tranh giành tài nguyên CPU với các máy ảo khác trên cùng một máy chủ vật lý.

Xem xét hoạt động đĩa và I/O
Phần I/O (Input/Output) cung cấp cái nhìn về hoạt động đọc/ghi dữ liệu của hệ thống.
bi (blocks in): Số block dữ liệu được đọc từ một thiết bị khối (thường là ổ đĩa) trên mỗi giây.bo (blocks out): Số block dữ liệu được ghi ra một thiết bị khối trên mỗi giây.
Hai chỉ số này cho bạn biết lưu lượng đọc/ghi dữ liệu hiện tại. Khi bạn thấy cột wa của CPU tăng cao, hãy nhìn sang hai cột bi và bo. Nếu chúng cũng đang ở mức cao, điều đó xác nhận rằng hệ thống đang thực hiện rất nhiều thao tác đọc/ghi đĩa, gây ra tình trạng chờ đợi.
Ứng dụng thực tiễn của lệnh vmstat trong giám sát hiệu suất hệ thống
Lý thuyết là vậy, nhưng làm thế nào để áp dụng vmstat vào công việc hàng ngày? Công cụ này thực sự tỏa sáng khi bạn cần chẩn đoán nhanh các vấn đề về hiệu suất trên máy chủ hoặc máy trạm Linux.
Giám sát thời gian thực hiệu suất máy chủ
Một trong những ứng dụng phổ biến nhất của vmstat là theo dõi hiệu suất hệ thống trong thời gian thực. Bằng cách chạy lệnh vmstat [interval], ví dụ vmstat 2, bạn sẽ có một luồng dữ liệu cập nhật liên tục sau mỗi 2 giây.
Hãy tưởng tượng bạn đang triển khai một ứng dụng mới lên máy chủ VPS của AZWEB. Sau khi triển khai, bạn nhận thấy trang web phản hồi chậm hơn bình thường. Bạn có thể mở một cửa sổ terminal, chạy vmstat 2 và quan sát. Bạn cần chú ý đến những thay đổi bất thường:
- Cột
rtrongprocscó tăng đột biến không? Điều này cho thấy có nhiều tiến trình đang tranh giành CPU. - Cột
idtrongcpucó giảm xuống gần 0 không? CPU đang bị quá tải. - Các cột
sihoặcsotrongswapcó bắt đầu hiển thị các giá trị khác 0 không? Hệ thống đang thiếu RAM. - Cột
watrongcpucó tăng vọt không? Có thể ứng dụng của bạn đang thực hiện quá nhiều thao tác đọc/ghi file hoặc truy vấn cơ sở dữ liệu nặng.
Việc quan sát trực tiếp này giúp bạn nhanh chóng khoanh vùng được “thủ phạm” gây ra sự chậm chạp, liệu đó là do CPU, bộ nhớ hay do hệ thống lưu trữ.

Phân tích các vấn đề hệ thống qua dữ liệu vmstat
Vmstat không chỉ dùng để xem trực tiếp mà còn là công cụ phân tích mạnh mẽ khi kết hợp với việc ghi log. Dưới đây là một vài kịch bản thực tế:
Tình huống 1: Bộ nhớ bị đầy (Memory Leak)
- Dấu hiệu: Bạn chạy
vmstat 5và thấy cộtfreegiảm dần theo thời gian, trong khi cộtswpdvàsobắt đầu tăng lên. CPU có thể vẫn còn nhàn rỗi (idcao), nhưng hệ thống ngày càng chậm. - Phân tích: Đây là dấu hiệu kinh điển của việc rò rỉ bộ nhớ (memory leak) trong một ứng dụng nào đó, hoặc đơn giản là máy chủ không đủ RAM cho khối lượng công việc hiện tại. Hệ thống phải liên tục đẩy dữ liệu từ RAM ra swap, một hoạt động rất chậm.
- Hành động: Sử dụng các lệnh như Bash là gì,
tophoặchtopđể xác định tiến trình nào đang chiếm nhiều bộ nhớ nhất và xử lý nó.
Tình huống 2: CPU quá tải
- Dấu hiệu: Cột
idtrongcpuluôn ở mức thấp (dưới 10%), trong khi cộtushoặcsyrất cao. Đồng thời, cộtrtrongprocsliên tục lớn hơn số lõi CPU của bạn. - Phân tích: CPU đang là nút thắt cổ chai. Nếu
uscao, một ứng dụng nào đó đang thực hiện các tác vụ tính toán nặng. Nếusycao, có thể do kernel đang phải xử lý quá nhiều yêu cầu hệ thống, ví dụ như từ mạng hoặc I/O. - Hành động: Dùng
topđể xem tiến trình nào đang “ăn” CPU nhiều nhất và tối ưu hóa mã nguồn hoặc giảm tải cho tiến trình đó.
Tình huống 3: I/O đĩa chậm
- Dấu hiệu: Hệ thống phản hồi rất chậm chạp, mặc dù CPU vẫn còn nhiều thời gian rảnh (
idcao). Tuy nhiên, cộtwatrongcpulại rất cao (ví dụ > 30%) và cộtbtrongprocscũng có giá trị khác 0. - Phân tích: Vấn đề nằm ở hệ thống lưu trữ. CPU đang phải dành phần lớn thời gian để chờ đợi ổ đĩa hoàn thành việc đọc hoặc ghi dữ liệu.
- Hành động: Sử dụng các công cụ như Linux là gì kết hợp
iostathoặciotopđể xác định tiến trình nào đang gây ra nhiều hoạt động I/O nhất. Cân nhắc nâng cấp lên ổ cứng SSD nếu bạn đang dùng HDD, hoặc tối ưu hóa các truy vấn cơ sở dữ liệu để giảm thao tác đọc/ghi.
Ví dụ và bài tập thực hành sử dụng lệnh vmstat hiệu quả
Cách tốt nhất để thành thạo vmstat là thông qua thực hành. Hãy cùng AZWEB đi qua một vài ví dụ cụ thể và bài tập nhỏ để củng cố kiến thức của bạn.
Ví dụ minh họa các câu lệnh vmstat phổ biến
Hãy mở terminal của bạn và thử chạy các lệnh sau để xem kết quả:
- Xem báo cáo tổng quan một lần:
vmstat
Lệnh này sẽ cho bạn một cái nhìn nhanh về trạng thái trung bình của hệ thống kể từ lần khởi động. Rất hữu ích để kiểm tra nhanh “sức khỏe” tổng thể.
- Giám sát liên tục mỗi 2 giây, lặp lại 10 lần:
vmstat 2 10
Bạn sẽ thấy 10 dòng kết quả, mỗi dòng cách nhau 2 giây. Đây là cách tuyệt vời để quan sát sự biến động của hệ thống khi bạn đang thực hiện một tác vụ nào đó (ví dụ: chạy một đoạn script nặng).
- Xem thống kê bộ nhớ chi tiết:
vmstat -s
Kết quả sẽ được hiển thị theo dạng danh sách, rất dễ đọc, cung cấp các thông tin như tổng bộ nhớ, bộ nhớ đã dùng, số lần swap… Tham khảo thêm Linux tổng quan để hiểu sâu hơn về bộ nhớ trong Linux.

- Kiểm tra hoạt động của ổ đĩa:
vmstat -d
Lệnh này sẽ liệt kê các thông số đọc/ghi cho từng ổ đĩa trên hệ thống của bạn, giúp bạn xác định ổ đĩa nào đang hoạt động nhiều nhất.
- Giám sát và ghi lại với dấu thời gian:
vmstat -t 1 >> vmstat_log.txt
Lệnh này sẽ ghi lại trạng thái hệ thống mỗi giây vào file vmstat_log.txt, kèm theo thời gian cụ thể. Bạn có thể để nó chạy trong một khoảng thời gian và sau đó phân tích lại file log để tìm ra các xu hướng hiệu suất.
Bài tập phân tích dữ liệu vmstat thực tế
Hãy tưởng tượng bạn đang giám sát một máy chủ và nhận được kết quả vmstat 2 5 như sau:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
8 2 0 123456 98765 876543 0 0 5 150 250 450 15 10 10 65 0
9 3 0 123400 98770 876500 0 0 8 180 280 480 12 11 8 69 0
8 2 0 123350 98780 876450 0 0 4 160 260 460 14 12 9 65 0
10 3 0 123300 98790 876400 0 0 9 190 290 490 11 10 7 72 0
9 2 0 123250 98800 876350 0 0 6 170 270 470 13 11 9 67 0
Câu hỏi: Dựa vào dữ liệu trên, nút thắt cổ chai của hệ thống nằm ở đâu?
Phân tích và trả lời:
- Nhìn vào cột CPU: Ta thấy cột
wa(wait I/O) cực kỳ cao, luôn ở mức trên 65%. Trong khi đó, cộtid(idle) lại rất thấp. Điều này có nghĩa là CPU không thực sự bận rộn tính toán, mà phần lớn thời gian đang phải “ngồi chờ” một thứ gì đó. - Nhìn vào cột Procs: Cột
b(blocked processes) có giá trị là 2 hoặc 3, cho thấy có các tiến trình đang bị chặn, thường là do chờ I/O. Cộtrcũng khá cao, cho thấy sự tranh chấp tài nguyên. - Nhìn vào cột IO: Cột
bo(blocks out) có giá trị tương đối cao, cho thấy có nhiều hoạt động ghi dữ liệu ra đĩa. - Kết luận: Nút thắt cổ chai lớn nhất của hệ thống này chính là hệ thống lưu trữ (I/O đĩa). CPU đang phải chờ đợi quá lâu để ổ đĩa hoàn thành các tác vụ đọc/ghi.
Các vấn đề thường gặp và cách khắc phục
Trong quá trình sử dụng vmstat, bạn có thể gặp một vài sự cố nhỏ. Đừng lo lắng, hầu hết chúng đều có cách giải quyết rất đơn giản.
Lệnh vmstat không hiển thị dữ liệu hoặc báo lỗi
Vấn đề: Bạn gõ vmstat và nhận được thông báo lỗi như bash: vmstat: command not found.
Nguyên nhân: Đây là lỗi phổ biến nhất, xảy ra khi gói procps (hoặc procps-ng) chưa được cài đặt trên hệ thống của bạn. Điều này thường xảy ra trên các bản cài đặt Linux tối giản hoặc các container Docker.
Cách khắc phục:
- Cài đặt gói cần thiết: Sử dụng trình quản lý gói của bạn để cài đặt
procpshoặcprocps-ng.- Trên Debian/Ubuntu:
sudo apt-get install procps - Trên CentOS/RHEL/Fedora:
sudo dnf install procps-ng
- Trên Debian/Ubuntu:
- Kiểm tra biến môi trường PATH: Trong một số trường hợp hiếm hoi, gói đã được cài đặt nhưng đường dẫn đến file thực thi không nằm trong biến môi trường
PATH. Bạn có thể kiểm tra bằng lệnhecho $PATH. Tuy nhiên, đây là trường hợp rất ít khi xảy ra.

Đọc sai dữ liệu hoặc không hiểu ý nghĩa các chỉ số
Vấn đề: Bạn nhìn vào kết quả của vmstat và đưa ra kết luận sai lầm về hiệu suất hệ thống.
Nguyên nhân phổ biến:
- Hiểu sai về
cache: Nhiều người mới dùng Linux nhìn thấy cộtfreecó giá trị thấp và cộtcachecó giá trị cao thì hoảng sợ, cho rằng hệ thống sắp hết RAM. Đây là một hiểu lầm. Linux chủ động sử dụng RAM trống để làm cache, giúp tăng tốc truy cập file. Lượng cache này sẽ được giải phóng ngay lập tức khi một ứng dụng cần đến bộ nhớ. Vì vậy,freethấp không phải lúc nào cũng là vấn đề. - Chỉ nhìn vào một thời điểm: Hiệu suất hệ thống luôn biến động. Nếu bạn chỉ chạy lệnh
vmstatmột lần duy nhất, bạn có thể bắt gặp một thời điểm tăng đột biến (spike) tạm thời và đưa ra kết luận sai. Ví dụ, một tác vụ sao lưu chạy trong chốc lát có thể làm tăng cao chỉ sốwa, nhưng đó không phải là vấn đề kéo dài.
Giải pháp và cách khắc phục:
- Nâng cao kiến thức: Hiểu rõ rằng
free + buff + cachemới là tổng lượng bộ nhớ thực sự khả dụng cho các ứng dụng mới. - Sử dụng
intervalvàcount: Luôn giám sát hệ thống trong một khoảng thời gian nhất định (ví dụ:vmstat 2 30để xem trong 1 phút) để nhận diện các xu hướng thay vì các sự kiện tức thời. - Sử dụng tài liệu tham khảo: Khi không chắc chắn về một chỉ số nào đó, hãy sử dụng lệnh
man vmstatđể đọc tài liệu hướng dẫn chi tiết ngay trên terminal. Đây là nguồn thông tin chính xác và đáng tin cậy nhất.
Những thực hành tốt khi sử dụng lệnh vmstat
Để biến vmstat thành một trợ thủ đắc lực, bạn nên tuân thủ một vài nguyên tắc và thực hành tốt sau đây. Điều này không chỉ giúp bạn sử dụng công cụ hiệu quả hơn mà còn hình thành thói quen quản trị hệ thống chuyên nghiệp.
1. Giám sát trong khoảng thời gian dài, không chỉ nhìn một lần
Như đã đề cập, một ảnh chụp nhanh duy nhất có thể gây hiểu lầm. Hiệu suất của hệ thống là một câu chuyện diễn ra theo thời gian. Hãy luôn sử dụng tham số interval (ví dụ vmstat 5) để quan sát các chỉ số trong ít nhất vài phút. Điều này giúp bạn phân biệt giữa một sự cố đột biến tạm thời và một vấn đề hiệu suất kéo dài thực sự.
2. Kết hợp với các công cụ khác
Vmstat rất tuyệt vời để cung cấp một cái nhìn tổng quan và xác định loại nút thắt cổ chai (CPU, Memory, hay I/O). Tuy nhiên, nó không cho bạn biết tiến trình cụ thể nào đang gây ra vấn đề. Khi vmstat chỉ ra một vấn đề, hãy sử dụng các công cụ chuyên sâu hơn để điều tra:
- Nếu CPU quá tải (
us,sycao): Dùngtop, htop, hoặcatopđể xem tiến trình nào đang chiếm nhiều CPU nhất. - Nếu bộ nhớ có vấn đề (
si,socao): Dùngtop(sắp xếp theo %MEM) hoặcfree -hđể xem chi tiết hơn. - Nếu I/O đĩa chậm (
wacao): Dùngiotophoặciostatđể xác định tiến trình và phân vùng đĩa nào đang có nhiều hoạt động đọc/ghi nhất.

3. Thiết lập báo cáo định kỳ
Đối với các máy chủ quan trọng, việc phân tích hiệu suất sau khi sự cố xảy ra là rất cần thiết. Bạn có thể thiết lập một cron job để chạy vmstat định kỳ và ghi kết quả ra một file log. Ví dụ, thêm dòng sau vào crontab (crontab -e) để ghi lại trạng thái hệ thống mỗi 5 phút:*/5 * * * * vmstat -t >> /var/log/vmstat_history.log
Bằng cách này, khi người dùng báo cáo rằng hệ thống bị chậm vào một thời điểm nào đó, bạn có thể xem lại file log để tìm ra nguyên nhân.
4. Đảm bảo chạy với quyền phù hợp
Trong hầu hết các trường hợp, vmstat không yêu cầu quyền root. Tuy nhiên, một số thông tin chi tiết hoặc trên các hệ thống được cấu hình bảo mật cao có thể yêu cầu quyền quản trị viên để truy cập đầy đủ. Nếu bạn thấy dữ liệu bị thiếu hoặc không chính xác, hãy thử chạy lệnh với sudo vmstat.

Kết luận
Qua bài viết chi tiết này, AZWEB hy vọng bạn đã có một cái nhìn toàn diện và sâu sắc về lệnh vmstat – một công cụ tuy nhỏ gọn nhưng vô cùng quyền năng trong bộ công cụ của bất kỳ quản trị viên hệ thống Linux nào. Từ việc cài đặt, tìm hiểu cú pháp, cho đến cách đọc hiểu từng chỉ số và áp dụng vào các tình huống thực tế, vmstat chứng tỏ vai trò không thể thiếu trong việc giám sát và chẩn đoán hiệu suất hệ thống.
Lợi ích lớn nhất mà vmstat mang lại là khả năng cung cấp một bức tranh tổng thể về tài nguyên hệ thống theo thời gian thực. Nó giúp bạn nhanh chóng trả lời các câu hỏi quan trọng: “Hệ thống của tôi đang gặp vấn đề ở đâu? Do CPU, bộ nhớ hay do ổ đĩa?”. Việc nắm vững vmstat không chỉ giúp bạn giải quyết sự cố hiệu quả hơn mà còn nâng cao kỹ năng quản trị và tối ưu hóa hệ thống.
Chúng tôi khuyến khích bạn hãy mở terminal lên và thực hành thường xuyên với vmstat trên các máy chủ hoặc VPS của mình. Càng sử dụng nhiều, bạn sẽ càng nhạy bén hơn với các con số và nhanh chóng nhận ra các dấu hiệu bất thường. Bước tiếp theo trên hành trình của bạn là học cách kết hợp vmstat với các công cụ khác như iostat, top, và sar để có một bộ công cụ giám sát hiệu suất hoàn chỉnh, đảm bảo các dịch vụ và website của bạn luôn hoạt động ở trạng thái tốt nhất.