Computer >> Máy Tính >  >> Hệ thống >> Linux

Làm thế nào để Kiểm tra Hiệu suất Ổ đĩa (IOPS và Độ trễ) trong Linux?

Trong bài viết này, chúng ta sẽ thảo luận về cách kiểm tra hiệu suất của đĩa hoặc mảng lưu trữ trong Linux. IOPS (hoạt động đầu vào / đầu ra mỗi giây) là số lượng hoạt động đầu vào - đầu ra mà hệ thống lưu trữ dữ liệu thực hiện mỗi giây (nó có thể là một đĩa đơn, một mảng RAID hoặc một LUN trong thiết bị lưu trữ bên ngoài). Nói chung, IOPS đề cập đến số lượng khối có thể được đọc hoặc ghi vào phương tiện.

Hầu hết các nhà sản xuất đĩa đều chỉ định các giá trị IOPS danh nghĩa, nhưng trên thực tế, những giá trị này không được đảm bảo. Để hiểu hiệu suất của hệ thống con lưu trữ của bạn trước khi bắt đầu dự án, bạn nên nhận các giá trị IOPS tối đa mà bộ lưu trữ của bạn có thể xử lý.

Sử dụng Công cụ FIO (I / O linh hoạt) để đo điểm chuẩn cho bộ nhớ

Để đo hiệu suất IOPS của đĩa trong Linux, bạn có thể sử dụng fio (công cụ có sẵn cho CentOS / RHEL trong kho EPEL). Vì vậy, để cài đặt fio trong RHEL hoặc CentOS, hãy sử dụng trình quản lý gói yum (dnf):

# yum install epel-release -y
# yum install fio -y

Hoặc apt-get trong Debian hoặc Ubuntu:

# apt-get install fio

Làm thế nào để Kiểm tra Hiệu suất Ổ đĩa (IOPS và Độ trễ) trong Linux?

Sau đó, bạn xác định các đĩa để kiểm tra. Kiểm tra được thực hiện bằng cách thực hiện các thao tác đọc / ghi trong thư mục mà ổ đĩa hoặc LUN của bạn được gắn vào.

Hãy thực hiện một số loại kiểm tra hiệu suất IOPS của đĩa trong các tình huống tải đĩa khác nhau (chế độ kiểm tra bạn chọn tùy thuộc vào logic ứng dụng được lưu trữ và cơ sở hạ tầng chung của dự án).

Kiểm tra thao tác đọc / ghi ngẫu nhiên

Khi chạy thử nghiệm, một tệp 8 GB sẽ được tạo. Sau đó, fio sẽ đọc / ghi 4KB khối (kích thước khối chuẩn) với 75/25% bằng số lần đọc và ghi hoạt động và đo lường hiệu suất. Lệnh như sau:

# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randrw --rwmixread=75

Làm thế nào để Kiểm tra Hiệu suất Ổ đĩa (IOPS và Độ trễ) trong Linux?

Tôi đã chạy thử nghiệm đầu tiên của mình trên một mảng bao gồm hai SSD s và có kết quả tốt:

  • Đọc: 3280MiB / giây, IOPS trung bình 83000
  • Viết: 110MiB / giây, IOPS trung bình 28000

Vì chúng tôi đã chạy kiểm tra đọc / ghi kết hợp nên giá trị cho các kiểm tra riêng biệt sẽ cao hơn.

Để so sánh, tôi đã đo hiệu suất trên SATA lái xe:

Làm thế nào để Kiểm tra Hiệu suất Ổ đĩa (IOPS và Độ trễ) trong Linux?

  • Đọc: IOPS =430, BW =1,7 MiB / s
  • Viết: IOPS =143, BW =0,6 MiB / s

Tất nhiên, kết quả của HDD kém hơn so với SSD.

Kiểm tra thao tác đọc ngẫu nhiên

Để đo hiệu suất đĩa chỉ cho các hoạt động đọc ngẫu nhiên, hãy chạy lệnh sau:

# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randread

Phần cuối cùng của lệnh đã được thay đổi thành —readwrite=randread .

Làm thế nào để Kiểm tra Hiệu suất Ổ đĩa (IOPS và Độ trễ) trong Linux?

Như tôi đã nói trước đó, hiệu suất đọc / ghi sẽ cao hơn nếu được đo riêng:

READ: IOPS=150k, BW=584MiB/s (612MB/s)

Kiểm tra hoạt động ghi ngẫu nhiên

Để đo hiệu suất đĩa cho các hoạt động ghi ngẫu nhiên, hãy chạy lệnh sau:

# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=fiotest --bs=4k --iodepth=64 --size=8G --readwrite=randwrite

WRITE: IOPS=84.7k, BW=331MiB/s (347MB/s)

Hiệu suất hoạt động ghi trên ổ SSD tốt cũng rất cao. Giống như trong thử nghiệm hoạt động đọc, sự khác biệt so với thử nghiệm hỗn hợp đạt 200-250 MiB / s và 50000 IOPS.

Nếu bạn tham khảo tài liệu chính thức của nhà sản xuất (đây là các ổ SSD Intel), bạn có thể an tâm khi nói rằng các giá trị là đúng.

Ví dụ về tệp cấu hình Fio

Fio cho phép kiểm tra hiệu suất hoạt động của ổ đĩa bằng các lệnh tương tác và với các tệp cấu hình được chuẩn bị trước để kiểm tra. Để sử dụng tùy chọn này, hãy tạo một tệp:

# nano read.fio

Và thêm các nội dung sau vào đó:

[global]
rw=randread
size=8G
filename=/tmp/testfio
ioengine=libaio
iodepth=4
invalidate=1
direct=1
[bgread]
rw=randread
iodepth=64

Sau đó bắt đầu kiểm tra:

# fio read.fio

Bài kiểm tra sẽ đo hiệu suất đọc của đĩa. Để kiểm tra hiệu suất ghi, hãy sử dụng tệp cấu hình sau:

[global]
rw=randwrite
size=8G
filename=/tmp/testfio
ioengine=libaio
iodepth=4
invalidate=1
direct=1
[bgwrite]
rw=randwrite
iodepth=64

Đo độ trễ của đĩa bằng Ioping

Bên cạnh IOPS, có một thông số quan trọng khác đặc trưng cho chất lượng lưu trữ của bạn:đó là độ trễ. Độ trễ là độ trễ yêu cầu đầu vào / đầu ra xác định thời gian truy cập vào bộ nhớ (được đo bằng mili giây). Độ trễ càng cao, ứng dụng của bạn càng phải đợi nhiều cho đến khi nhận được dữ liệu từ đĩa của bạn. Các giá trị độ trễ trên 20 mili giây đối với các hệ thống lưu trữ dữ liệu điển hình được coi là kém.

Để kiểm tra độ trễ của đĩa trong Linux, ioping công cụ được sử dụng:

# yum install ioping -y

# apt-get install ioping

Chạy kiểm tra độ trễ cho đĩa của bạn (20 yêu cầu được chạy):

# ioping -c 20 /tmp/

4 KiB <<< /tmp/ (ext4 /dev/md126p5): request=1 time=1.55 ms (warmup)
......................
4 KiB <<< /tmp/ (ext4 /dev/md126p5): request=19 time=176.3 us (fast)
4 KiB <<< /tmp/ (ext4 /dev/md126p5): request=20 time=356.9 us
--- /tmp/ (ext4 /dev/md126p5) ioping statistics ---
19 requests completed in 5.67 ms, 76 KiB read, 3.35 k iops, 13.1 MiB/s
generated 20 requests in 19.0 s, 80 KiB, 1 iops, 4.21 KiB/s
min/avg/max/mdev = 176.3 us / 298.7 us / 368.9 us / 45.7 us

Giá trị trung bình là 298,7 us (micro giây), do đó, độ trễ trung bình trong trường hợp của chúng tôi là 0,3 mili giây , điều đó thật xuất sắc.

Giá trị độ trễ có thể được chỉ định trong chúng tôi (micro giây) hoặc mili giây (mili giây). Để nhận giá trị ms từ chúng tôi, hãy chia nó cho 1.000.

Vì vậy, bạn có thể thực hiện kiểm tra tải lưu trữ trên máy chủ của mình trước khi khởi chạy dự án và kiểm tra các giá trị hiệu suất cao nhất. Tuy nhiên, bài kiểm tra không đảm bảo rằng mảng đĩa hoặc đĩa của bạn sẽ liên tục hiển thị cùng một hiệu suất, nhưng bạn nên thực hiện bài kiểm tra ở giai đoạn đầu của dự án. Tìm hiểu cách kiểm tra IOPS trong Windows trong bài viết này.