Home » Categories » Multiple Categories

Cách kiểm tra tốc độ ổ cứng

Rất nhiều khách hàng khi đăng ký VPS hoặc dịch vụ Cloud VPS hoặc SSD VPS tại vHost hay bất kì nhà cung cấp nào khác đều có chung một câu hỏi: VPS của tôi nhanh như thế nào? Làm thế nào để kiểm tra được điều đó?

Trong bài viết này chúng tôi sẽ liệt kê và phân tích các cách thức kiểm tra hiệu suất ổ cứng của VPS.

Những gì không nên làm?

Rất nhiều khách hàng thường xuyên sử dụng lệnh sau đây để kiểm tra tốc độ ổ cứng, có thể ngay chính quý khách và các nhân viên kỹ thuật của vHost khi mới vào làm việc cũng từng sử dụng lệnh này để kiểm tra tốc độ đọc ghi ổ cứng VPS của mình.

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

Câu lệnh trên sẽ thực hiện ghi 16000 lần với mỗi lần là block size 64k để tạo ra 1 file có kích thước 1GB. Lệnh dd rất phổ biết vì đây là phần mềm được cài đặt mặc định trên các hệ điều hành Linux, Unix. Quý khách có thể nhìn vào kết quả test ( ví dụ: 10MB/s) và đánh giá VPS/Server chạy chậm, tuy nhiên thật sự con số này có một số vấn đề như sau:

- Đây là tính trình độc lập (single thread) và thực hiện việc ghi tuần tự. Nếu VPS của quý khách đang vận hành web server và database erver thì con số này không mang lại ý nghĩa gì bởi vì các dịch trên rất ít khi nào ghi tuần tự.

- Việc ghi dữ liệu 1GB xuống hệ thống là rất nhỏ và có thể tăng lên bằng cách sử dụng tính năng write-back có trên card raid của server. Lúc này dữ liệu sẽ được ghi vào NVRAM có trên card raid trước rồi mới ghi xuống ổ cứng sau. Tham số conv=fdatasync chỉ có tác dụng đối với VPS và không có tác dụng với server.

- Thời gian thực thi lệnh này rất ngắn vì vậy không thể kết luận được nhiều thông tin dựa trên kết quả tại lúc đó.

- Không thể kiểm tra việc đọc từ ổ cứng.

Vì vậy câu lệnh trên không phải là cách để kiểm tra tốc độ của ổ cứng mà nên sử dụng tool như sau:

Đo random IOPS bằng FIO

VPS của quý khách vận hành web server hoặc một dịch vụ nào đó tương tự, tham số để đo hiệu suất hoạt động của ổ cứng là IOPS (Input/Output Operations per Second) - số lần đọc ghi dữ liệu trong một giây. Để có kết quả chính xác nhất chúng ta sử dụng các thông số sau:

1. Đọc ngẫu nhiên, ghi ngẫu nhiên hoặc kết hợp cùng lúc cả hai. Database thường được lưu trữ ở khắp nơi trên ổ cứng vì vậy ta nên sử dụng các thông số ngẫu nhiên để kiểm tra.

2. Block size 4KB. Database và rất nhiều chương trình có dữ liệu rất nhỏ, vì vậy nên sử dụng block size 4KB để cho kết quả chính xác.

3. Đa tiến trình (Multiple threads). Vì website thường có nhiều người truy cập cùng lúc vì vậy phải sử dụng da tiến trình để kiểm tra tốc độ của ổ cứng.

FIO là một phần mềm phổ biến để kiểm tra IOPS trên hệ điều hành Linux để cài đặt ta làm theo hướng dẫn bên dưới:

cd /root
yum install -y make gcc libaio-devel || ( apt-get update && apt-get install -y make gcc libaio-dev  </dev/null )
wget https://github.com/Crowd9/Benchmark/raw/master/fio-2.0.9.tar.gz ; tar xf fio*
cd fio*
make

Sau khi FIO được cài đặt, ta sẽ tiến hành kiểm tra các thông số.

Đọc/ghi ngẫu nhiên

Đơn giản ta chỉ cần thực thi câu lệnh bên dưới:

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

Phần mềm sẽ tạo ra file có kích thước 4GB với tỉ lệ (3 lần đọc cho mỗi 1 lần ghi), với tổng cộng 64 tiến trình tại cùng một thời điểm và trả về kết quả như sau:

Jobs: 1 (f=1): [m] [100.0% done] [53390K/18257K /s] [13.4K/4564  iops] [eta 00m:00s]
vhost: (groupid=0, jobs=1): err= 0: pid=3435: Thu Jul 28 03:06:39 2016
 read : io=3071.7MB, bw=55033KB/s, iops=13758 , runt= 57154msec
 write: io=1024.4MB, bw=18353KB/s, iops=4588 , runt= 57154msec
 cpu          : usr=8.07%, sys=49.43%, ctx=50898, majf=0, minf=25
 IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
    submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
    issued    : total=r=786333/w=262243/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  READ: io=3071.7MB, aggrb=55032KB/s, minb=55032KB/s, maxb=55032KB/s, mint=57154msec, maxt=57154msec
 WRITE: io=1024.4MB, aggrb=18353KB/s, minb=18353KB/s, maxb=18353KB/s, mint=57154msec, maxt=57154msec

Disk stats (read/write):
 vda: ios=783910/261556, merge=0/171, ticks=877965/935373, in_queue=1812023, util=94.71%

Với kết quả trên ta có thể thấy VPS của vHost là read io: 13758 và write io: 4588

Ngoài ra, ta có thể kiểm tra chỉ riêng random read hoặc random write như sau:

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread

./fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

Kiểm tra latency với IOPing:

Để kiểm tra độ trễ của việc đọc ghi dữ liệu, ta có thể sử dụng tool IOPing, tool này có thể cài đặt như sau:

cd /root
yum install -y make gcc libaio-devel || ( apt-get update && apt-get install -y make gcc libaio-dev  </dev/null )
wget https://ioping.googlecode.com/files/ioping-0.6.tar.gz ; tar xf ioping*
cd ioping*
make

Kiểm tra độ trễ bằng cách:

./ioping -c 10

Một VPS có hiệu suất tốt cần đảm bảo kết quả dưới 1.0 ms.

 

       
      Attachments Attachments
      There are no attachments for this article.
      Comments Comments
      There are no comments for this article. Be the first to post a comment.
      Related Articles RSS Feed
      Hướng dẫn tạo SOCKS proxy via SSH 5 với Bitvise SSH Client - Tunnelier Ins
      Viewed 14946 times since Thu, Jan 22, 2015
      Tăng hoặc giảm tài nguyên của VPS tự động
      Viewed 705 times since Mon, Feb 13, 2017
      Hướng dẫn đổi mật khẩu của bất kì User nào trên Directadmin với quyền Admin.
      Viewed 4507 times since Sun, Aug 16, 2015
      Hướng dẫn remove IP blacklist Directadmin
      Viewed 4960 times since Wed, Aug 5, 2015
      Hướng dẫn cài đặt Clamav trên CentOS 6.x
      Viewed 6489 times since Sat, Apr 11, 2015
      Hướng dẫn sử dụng DirectAdmin
      Viewed 12694 times since Sun, Jan 4, 2015
      Hướng dẫn đăng nhập bằng SSH KEY vào VPS Linux
      Viewed 3935 times since Thu, Nov 1, 2018
      Hướng dẫn cài đặt ClamAV trên Directadmin
      Viewed 3712 times since Sat, Apr 11, 2015
      Tăng hoặc giảm tài nguyên của VPS
      Viewed 1212 times since Mon, Feb 13, 2017
      Thay thế webserver Apache bằng Nginx với Custombuild trên DirectAdmin
      Viewed 4455 times since Sun, Aug 16, 2015