Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?

Một trong những số liệu chính, cho phép ước tính hiệu suất của hệ thống lưu trữ hiện có hoặc được thiết kế là IOPS ( Hoạt động đầu vào / đầu ra mỗi giây ). Nói một cách dễ hiểu, IOPS là số thao tác đọc / ghi với bộ lưu trữ, đĩa hoặc hệ thống tệp trên một đơn vị thời gian. Con số này càng lớn thì hiệu suất lưu trữ của bạn càng lớn (nói thẳng ra, 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 mạng SMB, khối lượng CSV hoặc LUN trên SAN / iSCSI lưu trữ).

Chụp I / O Bộ nhớ bằng Bộ đếm Hiệu suất Ổ đĩa trong Windows

Bạn có thể ước tính gần đúng khối lượng công việc I / O lưu trữ hiện tại trong Windows bằng cách sử dụng bộ đếm hiệu suất ổ đĩa tích hợp sẵn từ Màn hình hiệu suất . Để thu thập các dữ liệu quầy này:

  1. Khởi động Perfmon;
  2. Tạo Bộ thu thập dữ liệu mới và chọn Tạo thủ công ; Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?
  3. Chọn hộp kiểm Tạo nhật ký dữ liệu -> Bộ đếm hiệu suất ; Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?
  4. Bây giờ trong các 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 Đĩa vật lý đối tượng (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):
    • Trung bình Disk Sec./Transfer
    • Trung bình Độ dài hàng đợi đĩa
    • Số byte đĩa trung bình / lần truyền
    • Số byte đĩa / giây
    • Chuyển đĩa / giây
    • Tách IO / giây
  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, các giá trị bộ đếm được thu thập sau mỗi 15 giây. Để hiển thị hiệu suất đĩa theo thời gian thực, bạn cần thêm bộ đếm Perfmon được chỉ định trong Công cụ giám sát -> Màn hình hiệu suất tiết diện. Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?
  6. Vẫn còn để bắt đầu thu thập dữ liệu bộ đếm hiệu suất (chọn Bắt đầu ) 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 Dừng ; Làm thế nào để đ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, hãy chuyển đến Perfmon -> Báo cáo -> Người dùng Xác định -> Data_Disk_IO -> check_the_last_set . Theo mặc định, dữ liệu đĩa được hiển thị dưới dạng đồ thị;
  8. Sử dụng Ctrl + G để chuyển sang Báo cáo chế độ. Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?

Làm thế nào để hiểu các bộ đếm hiệu suất lưu trữ do Perfmon thu thập? Để phân tích nhanh hiệu suất đĩa / bộ nhớ, bạn cần xem xét các 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 (liệu RAID hay Stripe được sử dụng, số lượng và loại đĩa, kích thước bộ nhớ cache, v.v.).
  • Giây đĩa / Truyền - thời gian cần thiết để thực hiện một thao tác 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 đúng thời gian. Đối với các máy chủ tải cao, giá trị độ trễ của đĩa không được vượt quá 10 ms (0,1);
  • Truyền Đĩa / giây - (IOPS). Số lượng thao tác đọc / ghi mỗi giây. Đây là chỉ báo chính về cường độ truy cập đĩa (giá trị IOPS gần đúng cho các loại đĩa khác nhau được liệt kê ở cuối bài viết);
  • Số byte / giây trên đĩa - Tổng thông lượng đĩa (đọc + ghi) mỗi giây. Giá trị tối đa tùy thuộc vào loại đĩa (150-250 Mb / s - đối với đĩa HDD thông thường và 500-10000 đối với SSD);
  • Tách IO / giây - chỉ báo phân mảnh đĩa khi hệ điều hành phải chia một thao tác I / O thành nhiều yêu cầu đĩa. Nó cũng có thể chỉ ra rằng ứng dụng đang yêu cầu khối dữ liệu quá lớn không thể chuyển được trong một thao tác;
  • Trung bình Độ dài hàng đợi đĩa - số lượng yêu cầu đọc / ghi trung bình đã được xếp hàng đợi. Đối với một đĩa đơn, độ dài hàng đợi không được vượt quá 2 . Đối với mảng RAID gồm 4 đĩa, giá trị ngưỡng của độ 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 DiskSpd (https://aka.ms/diskspd) tiện ích để 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à một công cụ giao diện dòng lệnh có thể thực hiện các hoạt động I / O với mục tiêu ổ đĩa được chỉ định trong một số luồng. Tôi thường sử dụng DiskSpd để đo hiệu suất lưu trữ và lấy tốc độ đọc / ghi và IOPS tối đa có sẵn từ máy chủ cụ thể (tất nhiên bạn cũng có thể đo hiệu suất của bộ nhớ, trong trường hợp này diskspd sẽ được sử dụng để tạo tải lưu trữ ).

DiskSpd không yêu cầu cài đặt, chỉ cần tải xuống và giải nén kho lưu trữ vào đĩa cục bộ. Đối với hệ thống x64 bit, hãy sử dụng phiên bản diskspd.exe từ amd64fre thư mục.

Tôi sử dụng lệnh sau để kiểm tra hiệu suất của đĩ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 khá lớn được tạo ra trên các đĩa và CPU của hệ thống được thử nghiệm. Để loại bỏ sự suy giảm hiệu suất cho người dùng, không nên khởi động nó trên các hệ thống hiệu quả trong giờ cao điểm.

Làm thế nào để đ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 nên sử dụng kích thước tệp lớn để nó không nằm trong bộ đệm của bộ điều khiển lưu trữ);
  • -d300 - thời lượng thử nghiệm 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 quyền truy cập tuần tự, hãy sử dụng –s);
  • -t8 - số luồng;
  • -w40 - tỷ lệ giữa thao tác ghi và thao tác đọc 40% / 60%;
  • -o32 - độ dài hàng đợi;
  • -b64K - kích thước khối;
  • -Sh - không sử dụng bộ nhớ cache;
  • -L - đo độ trễ;
  • E:\diskpsdtmp.dat - đường dẫn tệp thử nghiệm.

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

Trong thử nghiệm của tôi, dữ liệu hiệu suất sau (kiểm tra bảng Tổng IO) đã nhận được:

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

Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?

Bạn có thể nhận các giá trị riêng lẻ cho các thao tác đọc (phần Đọc IO) hoặc ghi (phần Viết IO).

Sau khi 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ột mảng có hiệu suất mong muốn cho các tác vụ của mình.

Cách đo IOPS, thông lượng và độ trễ của bộ nhớ bằng PowerShell?

Tôi đã tìm thấy một tập lệnh PowerShell (của Mikael Nystrom, Microsoft MVP), về cơ bản là một tiện ích bổ sung cho SQLIO.exe tiện ích (một tập hợp các bài 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 ngừng hỗ trợ công cụ này và thay thế SQLIO bằng một công cụ phổ biến hơn Diskspd và xóa các tệp phân phối SQLIO khỏi trang web của nó. Vì vậy, bạn sẽ phải tự tìm kiếm sqlio.exe hoặc tải xuống 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, hãy tải xuống kho lưu trữ có 2 tệp: SQLIO.exe DiskPerformance.ps1 (disk_perf_iops.ZIP - 74 KB) và giải nén nó vào bất kỳ thư mục nào.

Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?

Ví dụ về chạy tập lệnh PowerShell để ước tính 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

Làm thế nào để đo hiệu suất lưu trữ và IOPS trên Windows?

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

  • –TestFileName test.dat - tên của tệp được tạo bởi công cụ FSUTIL;
  • –TestFileSizeInGB 1 - kích thước tệp thử nghiệm. 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 của bộ đệm ẩn hệ thống lưu trữ. Nếu không, IOPS sẽ được đo cho dữ liệu bộ nhớ 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, trong đó tệp thử nghiệm sẽ được tạo. Bạn cũng có thể chỉ định một đường dẫn UNC đến thư mục chia sẻ mạng (SMB);
  • -TestMode Get-LargeIO - có hai tùy chọn đo lường đầu vào-đầu ra. Get-SmallIO cho phép đo lường 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 trong 10 giây, nếu không thì mất 60 giây;
  • -RemoveTestFile True - xóa tệp thử nghiệm sau khi thử nghiệm 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 ( Bảng định dạng ) hoặc trong một cửa sổ biểu đồ đồ họa riêng biệt ( Out-Gridview ).

Làm thế nào để đ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 kho dữ liệu VMFS trên HP MSA 2040 được kết nối qua SAN được sử dụng) mảng đĩa hiển thị 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 gần đúng cho các loại đĩa khác nhau được hiển thị:

Loại IOPS
SSD (SLC) 6000
SSD (MLC) 1000
15 nghìn RPM 175-200
10 nghìn RPM 125-150
7,2 nghìn RPM 50-75
Raid5 trong số 6 ổ đĩa với 10K RPM 1000

Tôi đã tìm thấy một số khuyến nghị về hiệu suất ổ đĩa trong IOPS đối với một số dịch vụ phổ biến của Microsoft:

  1. Microsoft Exchange 2010 với 5.000 người dùng, mỗi người trong số họ nhận 75 và gửi 30 email mỗi ngày, sẽ yêu cầu ít nhất 3.750 IOPS;
  2. Máy chủ Microsoft SQL 2008 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 đối với 10-100 người dùng yêu cầu 10-40 IOPS.