Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Một trong những chỉ số chính, cho phép ước lượng hiệu suất của hệ thống lưu trữ hiện có hoặc được thiết kế là IOPS (Input/Output Operations Per Second). Nói một cách đơn giản, IOPS là số lượng hoạt động đọc/ghi với bộ nhớ, ổ đĩa hoặc hệ thống tệp trên một đơn vị thời gian. Càng lớn con số này, hiệu suất lưu trữ của bạn càng cao (thẳng thắn nói, giá trị IOPS phải được xem xét cùng với các đặc điểm hiệu suất lưu trữ khác, như độ trễ, thông lượng, v.v.).

Trong bài viết này, chúng ta sẽ xem xét một số cách đo hiệu suất lưu trữ (IOPS, độ trễ, thông lượng) trong Windows (bạn có thể sử dụng hướng dẫn này cho ổ cứng cục bộ, SSD, thư mục chia sẻ SMB, ổ đĩa CSV hoặc LUN trên lưu trữ SAN/iSCSI).

Thu thập I/O lưu trữ bằng bộ đếm hiệu suất ổ đĩa trong Windows

Bạn có thể ước lượng somatically tải công việc I/O lưu trữ hiện tại trong Windows bằng bộ đếm hiệu suất ổ đĩa tích hợp sẵn từ Performance Monitor. Để thu thập dữ liệu các bộ đếm này:

  1. Khởi động Perfmon;
  2. Tạo một Data Collector Set mới và chọn Create manually;
    Cách đo hiệu suất lưu trữ và IOPS trên Windows?
  3. Chọn hộp kiểm Create data logs -> Performance counter;
    Cách đo hiệu suất lưu trữ và IOPS trên Windows?
  4. Bây giờ trong thuộc tính của bộ thu thập dữ liệu mới, hãy thêm các bộ đếm hiệu suất sau cho đối tượng Physical Disk (bạn có thể chọn bộ đếm cho một ổ đĩa cụ thể hoặc cho tất cả các ổ đĩa cục bộ có sẵn):
    • Avg. Disk Sec./Transfer
    • Avg. Disk Queue Length
    • Avg Disk Bytes/Transfer
    • Disk Bytes/sec
    • Disk Transfers/sec
    • Split IO/sec
  5. Bạn có thể thay đổi các thuộc tính thu thập dữ liệu khác. Theo mặc định, giá trị bộ đếm được thu thập mỗi 15 giây. Để hiển thị hiệu suất ổ đĩa thời gian thực, bạn cần thêm các bộ đếm Perfmon được chỉ định trong phần Monitoring Tools -> Performance Monitor.
    Cách đo hiệu suất lưu trữ và IOPS trên Windows?
  6. Còn lại là bắt đầu thu thập dữ liệu bộ đếm hiệu suất (chọn Start) và chờ thu thập đủ thông tin để phân tích. Sau đó, nhấp chuột phải vào bộ thu thập dữ liệu của bạn và chọn Stop;
    Cách đo hiệu suất lưu trữ và IOPS trên Windows?
  7. Để xem dữ liệu hiệu suất đã thu thập, đi đến Perfmon -> Reports -> User Defined -> Data_Disk_IO —> check_the_last_set. Theo mặc định, dữ liệu ổ đĩa được hiển thị dưới dạng biểu đồ;
  8. Sử dụng Ctrl + G để chuyển sang chế độ Report.
    Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Cách hiểu bộ đếm hiệu suất lưu trữ được thu thập bởi Perfmon? Để phân tích nhanh hiệu suất ổ đĩa/lưu trữ, bạn cần xem giá trị của ít nhất 5 bộ đếm sau.

Khi phân tích dữ liệu bộ đếm, bạn nên hiểu cấu hình ổ đĩa vật lý (lưu trữ) hiện tại (có sử dụng RAID hay Stripe không, số lượng và loại ổ đĩa, kích thước cache, v.v.).

  • Disk sec/Transfer – thời gian cần thiết để thực hiện một hoạt động ghi/đọc với thiết bị lưu trữ hoặc ổ đĩa (độ trễ ổ đĩa). Nếu độ trễ lớn hơn 25 ms (0.25), thì mảng ổ đĩa không thể xử lý hoạt động I/O kịp thời. Đối với máy chủ tải cao, giá trị độ trễ ổ đĩa không nên vượt quá 10 ms (0.1);
  • Disk Transfers/sec – (IOPS). Số lượng hoạt động đọc/ghi mỗi giây. Đây là chỉ số chính của cường độ truy cập ổ đĩa (giá trị IOPS xấp xỉ cho các loại ổ đĩa khác nhau được liệt kê ở cuối bài viết);
  • Disk Bytes/Sec – Tổng thông lượng ổ đĩa (đọc+ghi) mỗi giây. Giá trị tối đa phụ thuộc vào loại ổ đĩa (150-250 Mb/s – cho ổ HDD thông thường và 500-10000 cho SSD);
  • Split IO/sec – chỉ số phân mảnh ổ đĩa khi hệ điều hành phải chia một hoạt động I/O thành nhiều yêu cầu ổ đĩa. Nó cũng có thể chỉ ra rằng ứng dụng yêu cầu các khối dữ liệu quá lớn không thể truyền trong một hoạt động;
  • Avg. Disk Queue Length – số lượng trung bình yêu cầu đọc/ghi được xếp hàng. Đối với một ổ đĩa đơn, độ dài hàng đợi không nên vượt quá 2. Đối với mảng RAID 4 ổ đĩa, giá trị ngưỡng độ dài hàng đợi ổ đĩa là 8.

DiskSpd: Kiểm tra hiệu suất ổ đĩa và IOPS trong Windows

Microsoft khuyến nghị sử dụng tiện ích DiskSpd (https://aka.ms/diskspd) để tạo tải trên hệ thống ổ đĩa (lưu trữ) và đo lường hiệu suất của nó. Đây là công cụ giao diện dòng lệnh có thể thực hiện hoạt động I/O với đích ổ đĩa được chỉ định trong nhiều luồng. Tôi thường sử dụng DiskSpd để đo hiệu suất lưu trữ và获得最大可用读/写速度和IOPS从特定服务器(当然您也可以测量存储的性能,在这种情况下diskspd将用于生成存储负载)。

DiskSpd không yêu cầu cài đặt, chỉ需 tải xuống và giải nén存档到本地磁盘。对于x64位系统,使用amd64fre目录中的diskspd.exe版本。

Tôi sử dụng lệnh sau để kiểm tra hiệu suất ổ đĩa:

diskspd.exe –c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E:\diskpsdtmp.dat > DiskSpeedResults.txt

Quan trọng. Khi sử dụng diskspd.exe, một tải đáng kể được tạo ra trên ổ đĩa và CPU của hệ thống được kiểm tra. Để loại bỏ sự giảm hiệu suất cho người dùng, không khuyến nghị bắt đầu nó trên hệ thống sản xuất trong giờ cao điểm.

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

  • -c50G – kích thước tệp 50 GB (tốt hơn là sử dụng kích thước tệp lớn để nó không phù hợp với cache của bộ điều khiển lưu trữ);
  • -d300 – thời gian kiểm tra tính bằng giây;
  • -r – hoạt động đọc/ghi ngẫu nhiên (nếu bạn cần kiểm tra truy cập tuần tự, sử dụng –s);
  • -t8 – số luồng;
  • -w40 – tỷ lệ ghi/đọc 40%/60%;
  • -o32 — độ dài hàng đợi;
  • -b64K — kích thước khối;
  • -Sh — không sử dụng cache;
  • -L — đo độ trễ;
  • E:\diskpsdtmp.dat – đường dẫn tệp kiểm tra.

Sau khi kiểm tra căng thẳng hoàn tất, các giá trị hiệu suất lưu trữ trung bình có thể được lấy từ các bảng đầu ra.

Trong bài kiểm tra của tôi, các dữ liệu hiệu suất sau (kiểm tra bảng Total IO) đã được thu được:

  • MiB/s — 241 (khoảng 252 Mb/s, không tệ);
  • IOPS — 3866 (rất tốt!);
  • Độ trễ trung bình — 66.206 ms (độ trễ khá lớn!).

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Bạn có thể nhận được các giá trị riêng lẻ cho hoạt động đọc (phần Read IO) hoặc ghi (phần Write IO).

Đã kiểm tra một số ổ đĩa hoặc LUN lưu trữ bằng diskspd, bạn có thể so sánh chúng hoặc chọn mảng với hiệu suất mong muốn cho nhiệm vụ của bạn.

Cách đo IOPS, thông lượng và độ trễ lưu trữ bằng PowerShell?

Tôi đã tìm thấy một tập lệnh PowerShell (bởi Mikael Nystrom, Microsoft MVP), về cơ bản là một phần bổ sung cho tiện ích SQLIO.exe (một tập hợp kiểm tra hiệu suất lưu trữ tệp).

Lưu ý. Vào tháng 12 năm 2015, Microsoft đã thông báo kết thúc hỗ trợ cho công cụ này và thay thế SQLIO bằng công cụ phổ quát hơn Diskspd, và xóa tệp phân phối SQLIO khỏi trang web của họ. Vì vậy, bạn sẽ phải tự tìm sqlio.exe, hoặc tải xuống nó từ trang web của chúng tôi (nó nằm trong kho lưu trữ với tập lệnh PowerShell).

Vì vậy, tải xuống kho lưu trữ chứa 2 tệp: SQLIO.exe và DiskPerformance.ps1 (disk_perf_iops.ZIP — 74 KB) và giải nén nó vào bất kỳ thư mục nào.

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Ví dụ chạy tập lệnh PowerShell để ước lượng hiệu suất ổ đĩa và IOPS:

.\DiskPerformance.ps1 -TestFileName test.dat –TestFileSizeInGB 1 -TestFilepath C:\temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Hãy xem xét các đối số của tập lệnh:

  • –TestFileName test.dat – tên tệp được tạo bởi công cụ FSUTIL;
  • –TestFileSizeInGB 1 – kích thước tệp kiểm tra. Các giá trị có thể là 1.5, 10, 50, 100, 500, 1,000 GB. Kích thước tệp phải lớn hơn kích thước cache hệ thống lưu trữ. Nếu không, IOPS sẽ được đo cho dữ liệu cache, thay vì ổ đĩa;
  • -TestFilepath C:\Temp – ở đây bạn chỉ định ổ đĩa để đo hiệu suất và thư mục trên ổ đĩa, nơi tệp kiểm tra sẽ được tạo. Bạn cũng có thể chỉ định đường dẫn UNC đến thư mục chia sẻ mạng (SMB);
  • -TestMode Get-LargeIO – có hai tùy chọn đo đầu vào/đầu ra. Get-SmallIO cho phép đo IOPS, và Get-LargeIO đo tốc độ truyền dữ liệu. Sự khác biệt giữa đối số SmallIO và LargeIO là kích thước khối 8 KB và 512 KB khi đo tốc độ, và loại truy cập, Ngẫu nhiên hoặc Tuần tự, tương ứng;
  • -FastMode True – trong Fastmode, mỗi bài kiểm tra chạy 10 giây, nếu không nó mất 60 giây;
  • -RemoveTestFile True – xóa tệp kiểm tra sau khi kiểm tra kết thúc;
  • -OutputFormat Out-GridView – kết quả kiểm tra có thể được hiển thị trong bảng điều khiển PowerShell (Format-Table) hoặc trong cửa sổ biểu đồ đồ họa riêng biệt (Out-Gridview).

Cách đo hiệu suất lưu trữ và IOPS trên Windows?

Trong trường hợp của chúng tôi (ổ đĩa ảo vmdk trên datastore VMFS trên HP MSA 2040 kết nối qua SAN được sử dụng) mảng ổ đĩa cho thấy giá trị IOPS trung bình khoảng 15.000 và tốc độ truyền dữ liệu (thông lượng) khoảng 5 Gbit/s.

Trong bảng sau, các giá trị IOPS xấp xỉ cho các loại ổ đĩa khác nhau được hiển thị:

Loại IOPS
SSD(SLC) 6000
SSD(MLC) 1000
15K RPM 175-200
10K RPM 125-150
7.2K RPM 50-75
Raid5 6 ổ đĩa 10K RPM 1000

Tôi đã tìm thấy một số khuyến nghị về hiệu suất ổ đĩa tính bằng IOPS cho một số dịch vụ Microsoft phổ biến:

  1. Microsoft Exchange 2010 với 5.000 người dùng, mỗi người nhận 75 và gửi 30 email mỗi ngày, sẽ yêu cầu ít nhất 3.750 IOPS;
  2. Microsoft SQL 2008 Server với 3.500 giao dịch SQL mỗi giây (TPS) yêu cầu 28.000 IOPS;
  3. Máy chủ ứng dụng Windows phổ biến cho 10-100 người dùng yêu cầu 10-40 IOPS.