Hướng dẫn đo tốc độ ổ cứng bằng FIO trên VPS Linux

18/04/2025

post-thumnail

Khi quản lý một VPS Linux, một trong những yếu tố quan trọng cần theo dõi là hiệu suất của ổ cứng. Hiệu suất ổ cứng ảnh hưởng trực tiếp đến tốc độ truy xuất dữ liệu, khả năng xử lý các tác vụ I/O, và tổng thể hiệu suất của hệ thống. Một công cụ mạnh mẽ giúp bạn đo tốc độ ổ cứng là FIO (Flexible I/O Tester). Bài viết dưới đây sẽ hướng dẫn bạn đo tốc độ ổ cứng bằng FIO trên VPS Linux.

FIO (Flexible I/O Tester) là gì?

FIO (Flexible I/O Tester) là một công cụ mã nguồn mở mạnh mẽ. Được thiết kế để kiểm tra hiệu suất I/O (Input/Output) của ổ cứng, hệ thống lưu trữ hoặc các thiết bị khác liên quan đến việc đọc/ghi dữ liệu.

FIO hỗ trợ nhiều loại thử nghiệm I/O khác nhau và có thể được sử dụng để mô phỏng các tác vụ I/O mà bạn thường gặp trong môi trường sản xuất. Ví dụ như đọc/ghi ngẫu nhiên hoặc tuần tự với các kích thước khối (block size) khác nhau.

Những điểm nổi bật của FIO

Đo lường chính xác

FIO giúp đo lường các thông số quan trọng của hệ thống lưu trữ. Các thông số cụ thể như:

  • IOPS (Input/Output Operations Per Second)
  • Throughput (băng thông đo bằng MB/s hoặc IOPS)
  • Latency (thời gian trễ), và CPU Usage (tỷ lệ sử dụng CPU).

Hỗ trợ nhiều loại I/O

FIO có thể mô phỏng các kiểu I/O khác nhau như:

  • Đọc ngẫu nhiên (Random Read): Đọc các phần dữ liệu ngẫu nhiên từ ổ đĩa.
  • Ghi ngẫu nhiên (Random Write): Ghi dữ liệu ngẫu nhiên vào ổ đĩa.
  • Đọc tuần tự (Sequential Read): Đọc dữ liệu liên tiếp từ ổ đĩa.
  • Ghi tuần tự (Sequential Write): Ghi dữ liệu liên tiếp vào ổ đĩa.

Cấu hình linh hoạt

FIO cho phép người dùng tùy chỉnh các tham số kiểm tra một cách chi tiết, bao gồm:

  • Kích thước khối (block size): Kích thước mỗi đơn vị dữ liệu trong bài kiểm tra.
  • Số lượng tác vụ song song (numjobs): Số lượng tác vụ đọc/ghi được thực hiện đồng thời.
  • Thời gian kiểm tra (runtime): Thời gian mà bài kiểm tra sẽ chạy.
  • Sử dụng bộ nhớ đệm (buffering): Điều chỉnh việc sử dụng bộ đệm để mô phỏng các tình huống thực tế.

Tại sao cần đo tốc độ ổ cứng trên VPS?

Ổ cứng của VPS là thành phần quyết định tốc độ truy xuất dữ liệu của các ứng dụng, dịch vụ, và hệ thống. Đo tốc độ ổ cứng giúp bạn:

  • Đánh giá hiệu năng hệ thống: Xác định liệu VPS của bạn có đang chạy ở mức tối ưu hay không.
  • So sánh hiệu suất giữa các nhà cung cấp VPS: Nếu bạn đang cân nhắc chuyển đổi giữa các nhà cung cấp VPS hoặc nâng cấp gói, việc kiểm tra tốc độ ổ cứng sẽ giúp bạn có được lựa chọn phù hợp.
  • Xử lý sự cố: Nếu bạn gặp vấn đề với hiệu suất hệ thống, việc đo tốc độ ổ cứng có thể giúp bạn phát hiện ra các vấn đề liên quan đến I/O hoặc tình trạng ổ cứng.

Cài đặt FIO trên VPS Linux

Để sử dụng FIO, đầu tiên bạn cần cài đặt nó trên VPS của mình. Quá trình cài đặt khá đơn giản và nhanh chóng trên các hệ điều hành Linux phổ biến. Dưới đây là hướng dẫn cài đặt FIO trên một số hệ điều hành phổ biến.

Cài Đặt FIO Trên Ubuntu/Debian

Đối với các hệ điều hành như Ubuntu hoặc Debian, bạn có thể cài đặt FIO bằng các lệnh sau:

Cài Đặt FIO Trên CentOS/RHEL

Trên các hệ thống CentOS hoặc RHEL, bạn cần cài đặt EPEL repository trước, sau đó cài đặt FIO:

Cài Đặt FIO Trên Fedora

Trên Fedora, quá trình cài đặt tương đối đơn giản:

Sau khi cài đặt thành công, bạn có thể kiểm tra phiên bản của FIO để xác nhận quá trình cài đặt:

Cài đặt thành công Fio trên VPS Debian

Nếu cài đặt Fio thành công bạn có thể kiểm tra phiên bản FIO đã cài đặt. Hình ảnh cài đặt thành công FIO – 3.12 trên VPS Việt Nam hệ điều hành Debian.

Cấu hình các tham số kiểm tra tốc độ

FIO cho phép bạn kiểm tra hiệu suất ổ cứng với rất nhiều tùy chọn khác nhau. Dưới đây là một số tham số chính bạn sẽ sử dụng trong quá trình kiểm tra:

–name: Đặt tên cho bài kiểm tra.

–ioengine: Xác định kiểu động cơ I/O, ví dụ sync (I/O đồng bộ).

–rw: Chỉ định kiểu đọc/ghi (read, write, randread, randwrite, seqread, seqwrite).

–bs: Kích thước khối (block size) mà bạn muốn sử dụng trong quá trình kiểm tra.

–numjobs: Số lượng tác vụ song song.

–size: Kích thước tập tin dữ liệu được sử dụng trong bài kiểm tra.

–runtime: Thời gian chạy bài kiểm tra.

–time_based: Chạy bài kiểm tra dựa trên thời gian thay vì kích thước dữ liệu.

–output: Lưu kết quả kiểm tra vào file log.

=> Xem thêm: Đo tốc độ mạng bằng iPerf trên VPS ubuntu 20.04

Ví dụ về các bài kiểm tra đo tốc độ ổ cứng bằng FIO

Kiểm tra tốc độ đọc ghi ngẫu nhiên (Random Write)

Một trong những bài kiểm tra phổ biến nhất là đo tốc độ ghi ngẫu nhiên, điều này giúp bạn đánh giá khả năng ghi dữ liệu ngẫu nhiên của ổ cứng. Dưới đây là lệnh sử dụng FIO để kiểm tra tốc độ ghi ngẫu nhiên với kích thước khối 4KB:

Giải thích các tham số:

–rw=write: Kiểm tra tốc độ ghi.

–bs=4k: Kích thước khối là 4KB.

–size=10G: Tạo một tệp dung lượng 10GB để kiểm tra.

–runtime=60s: Chạy trong 60 giây.

Kiểm tra tốc độ đọc ngẫu nhiên (Random Read)

Để kiểm tra tốc độ đọc ngẫu nhiên, bạn chỉ cần thay đổi tham số --rw thành read:

Kiểm tra tốc độ ghi tuần tự (Sequential Write)

Nếu bạn muốn kiểm tra tốc độ ghi tuần tự, có thể thay đổi kích thước khối lên 1MB để phù hợp với các tác vụ ghi lớn hơn:

Kiểm tra tốc độ ghi tuần tự trên VPS Debia

Hình ảnh trên là ví dụ về kiểm tra tốc độ ghi tuần tự trên VPS Debia. Dựa vào kết quả ta có thể phân tích như sau:

Giải thích lệnh:

  • fio: là công cụ đo hiệu năng I/O.
  • –name=seq_write_test: tên job là seq_write_test.
  • –ioengine=sync: sử dụng I/O đồng bộ.
  • –rw=write: thực hiện ghi tuần tự (sequential write).
  • –bs=1M: kích thước mỗi block là 1 MiB.
  • –numjobs=1: chạy 1 job.
  • –size=10G: tổng dung lượng cần ghi là 10 GiB.
  • –runtime=60s: chạy tối đa trong 60 giây.
  • –time_based: chỉ chạy theo thời gian chứ không dừng khi đạt đủ dung lượng.
  • –output=seq_write_test.log: xuất kết quả ra file log.

Phân tích kết quả (dòng log)

Jobs: 1 (f=1): [W(1)][25.0%][w=1718MiB/s][w=1717 IOPS][eta 00m:45s]

  • Jobs: 1 (f=1): chỉ có 1 job đang chạy, với 1 file đang được thao tác.
  • [W(1)]: trạng thái ghi (Write), với 1 thread đang thực hiện.
  • [25.0%]: tiến độ hoàn thành là 25% trong thời gian đã chạy.
  • [w=1718MiB/s]: tốc độ ghi hiện tại là 1718 MiB/s.
  • [w=1717 IOPS]: số lượng ghi mỗi giây là 1717 IOPS (vì block size là 1 MiB, nên 1717 IOPS tương đương 1717 MiB/s).
  • [eta 00m:45s]: thời gian ước lượng còn lại là 45 giây.
Ở dòng dưới:

Jobs: 1 (f=1): [W(1)][26.7%][w=1692MiB/s][w=1691 IOPS][eta 00m:44s]

Thông số thay đổi chút ít, tức là tốc độ ghi dao động một chút khi đang test.

Kết luận:
• VPS có hiệu năng ghi khá cao (trên 1.6 GiB/s).
• Đây là test ghi tuần tự với I/O đồng bộ – phù hợp để đánh giá tốc độ ghi ổ đĩa một cách thực tế.
• Hệ thống phản hồi ổn định và cho thấy đĩa có khả năng xử lý tốt.

Kiểm tra tốc độ độc tuần tự (Sequential Read)

Tương tự, để kiểm tra tốc độ đọc tuần tự, bạn thay --rw=read và giữ kích thước khối là 1MB:

Phân tích kết quả kiểm tra

Sau khi thực hiện các bài kiểm tra, FIO sẽ xuất ra kết quả vào tệp log mà bạn đã chỉ định. Bạn có thể xem kết quả bằng lệnh cat hoặc sử dụng bất kỳ công cụ đọc tệp nào.

Kết quả sẽ bao gồm các thông số quan trọng như:

  • IOPS (Input/Output Operations Per Second): Số lượng thao tác I/O mỗi giây.
  • Throughput: Băng thông, đo bằng MB/s hoặc IOPS.
  • Latency: Thời gian trễ, tính bằng mili giây (ms).
  • CPU Usage: Tỷ lệ sử dụng CPU trong quá trình kiểm tra.

Lưu Ý Khi Sử Dụng FIO

  • Đảm bảo rằng bạn có quyền truy cập vào các thư mục hoặc ổ đĩa cần kiểm tra.
  • Các bài kiểm tra I/O có thể tạo ra tải nặng lên VPS của bạn, vì vậy hãy thực hiện trong thời gian thấp điểm hoặc trên các máy thử nghiệm.
  • Nếu VPS của bạn có dung lượng lưu trữ hạn chế, hãy điều chỉnh kích thước tệp kiểm tra sao cho hợp lý.

FIO là một công cụ cực kỳ hữu ích để đo tốc độ ổ cứng trên VPS Linux. Bằng cách sử dụng FIO, bạn có thể dễ dàng đánh giá hiệu suất ổ cứng của mình. Từ đó đưa ra quyết định cải thiện hoặc tối ưu hóa hệ thống của mình. Hy vọng với những hướng dẫn trên bạn có thể đo tốc độ ổ cứng bằng FIO trên VPS Linux thành công!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *