Tải đĩa: iostat và iotop
Cách nhận biết máy có bị nghẽn đĩa không, chính xác ai đang ghi và cách liên hệ các con số với giới hạn tốc độ trên tier VPS của bạn.
Cập nhật 23 tháng 8, 2026
Ổ đĩa là nguyên nhân phổ biến nhất của tình trạng “mọi thứ đều chậm nhưng CPU lại đang rảnh”. Các tiến trình ngồi chờ I/O, chỉ số load average tăng vọt, nhưng htop hiển thị CPU% gần như bằng không. Hãy cùng xem cách nhìn ra điều này bằng những con số cụ thể.
Bạn được cấp những gì
Ổ đĩa trên các node là NVMe, nhưng tốc độ bị giới hạn theo tier: ghi — 60 MB/s mỗi nhân, nhưng không thấp hơn 60 và không cao hơn 400 MB/s; tốc độ đọc gấp đôi tốc độ ghi. Vượt mức giới hạn, bạn được phép bùng nổ gấp ba lần trong 30 giây — đủ để giải nén một tệp lưu trữ hoặc build một dự án, nhưng không đủ để liên tục tải lên một terabyte.
| Tier | Nhân | Ghi, MB/s | Đọc, MB/s |
|---|---|---|---|
| VDS-1 | 1 | 60 | 120 |
| VDS-2 | 2 | 120 | 240 |
| VDS-3 | 4 | 240 | 480 |
| VDS-4 | 6 | 360 | 720 |
| VDS-5 và VDS-6 | 8 và 10 | 400 | 800 |
Nếu kết quả đo của bạn chạm đúng những con số này, bạn đã đạt mức giới hạn — không có gì hỏng cả. Ngoài ra, chỉ có cách nâng lên tier cao hơn mới giúp được.
iostat: bức tranh tổng thể
apt install -y sysstat # Debian, Ubuntu
dnf install -y sysstat # AlmaLinux, CentOS Stream
iostat -xz 2
Lệnh này in ra một ảnh chụp mỗi hai giây. Kết quả đầu tiên là giá trị trung bình kể từ lúc khởi động — hãy bỏ qua nó. Hãy nhìn vào dòng vda hoặc sda:
r/s,w/s— số thao tác đọc và ghi mỗi giây.rkB/s,wkB/s— đơn vị megabyte, chia cho 1024. So sánh với bảng phía trên.await— thời gian chờ trung bình mỗi thao tác, tính bằng mili giây. Một chữ số là bình thường; hàng chục và hàng trăm nghĩa là đang có hàng đợi.%util— mức độ bận của ổ đĩa. Ổn định ở mức 90–100 % nghĩa là bạn đã chạm tường.
vmstat 2 cũng hữu ích: cột wa (io wait) cho biết, theo phần trăm, lượng thời gian CPU chỉ ngồi chờ ổ đĩa.
iotop: chính xác ai đang ghi
apt install -y iotop && iotop -oPa
-o chỉ hiển thị các tiến trình đang hoạt động, -P hiển thị tiến trình thay vì luồng, -a hiển thị khối lượng tích lũy kể từ lúc khởi chạy. Sau một phút quan sát, bạn sẽ thấy thủ phạm thực sự: thường là một cơ sở dữ liệu, một trình thu thập log hoặc một bản sao lưu.
Kiểm tra một lần mà không cần giao diện tương tác:
iotop -boPan 3 | head -20
Cần làm gì với những gì bạn phát hiện
- Journal đang ghi. Hãy giới hạn kích thước của nó:
journalctl --vacuum-size=200MvàSystemMaxUse=200Mtrong/etc/systemd/journald.conf. Để biết thêm, xem systemd journals. - Cơ sở dữ liệu đang ghi. Kiểm tra xem có phải một lượt quét toàn bảng đang chạy do thiếu chỉ mục, và liệu buffer có bị đặt quá nhỏ khiến mọi thứ phải đẩy xuống ổ đĩa không.
- Sao lưu hoặc rsync trong giờ làm việc. Hãy giới hạn tốc độ:
rsync --bwlimit=20M; khi nén lưu trữ, dùngionice -c3 nice -n19 tar ...để tác vụ nhường tài nguyên. - Swap. Nếu ổ đĩa bận vì phân trang, vấn đề không nằm ở ổ đĩa mà ở bộ nhớ — hãy đọc Bộ nhớ và swap.
Những sai lầm thường gặp
Đo tốc độ bằng dd với conv=fdatasync rồi kết luận từ một lần chạy duy nhất: những giây đầu chạy trên mức bùng nổ và cho ra kết quả bị thổi phồng. Phương pháp đúng nằm trong Đo tốc độ ổ đĩa và mạng.
Ổ đĩa đầy cũng trông giống như “mọi thứ đều chậm”: không còn dung lượng trống, một dịch vụ không ghi được tệp tạm và bị treo. Hãy kiểm tra
df -htrước tiên — chỉ mất một giây.