Dell Validated Design cho HPC pixstor Storage—Giải pháp chung với Kalray (6)

Hiệu suất siêu dữ liệu HDDMD với MDtest bằng các tệp trống

  • Gần đây, người ta đã quyết định thay thế mô-đun HDMD dựa trên hai máy chủ PowerEdge R750 và một hoặc nhiều mảng ME4024, bằng một hoặc nhiều cặp máy chủ NVMe dựa trên máy chủ PowerEdge R650 (cũng có thể sử dụng R750 hoặc R7525, nhưng không được mô tả trong công việc này và có mật độ thấp hơn). HDMD tùy chọn được sử dụng trong nền thử nghiệm này với các mảng ME5084 (không có phần mở rộng bộ nhớ) để lưu trữ dữ liệu bao gồm một cặp máy chủ PowerEdge R650 với mười thiết bị PM1735 NVMe PCIe 4 trên mỗi máy chủ. Hiệu suất siêu dữ liệu trên mô-đun HDMD NVMe mới đó với các máy chủ NVMe khác để lấy dữ liệu (thay vì sử dụng ME5084) được ghi lại sau trong tài liệu này.

    Hiệu suất siêu dữ liệu được đo bằng MDtest phiên bản 3.3.0, với OpenMPI v4.1.ARC1 để chạy điểm chuẩn trên 16 nút tính toán. Các bài kiểm tra mà chúng tôi đã chạy đa dạng từ một luồng cho đến 512 luồng. Điểm chuẩn chỉ được sử dụng cho các tệp (không có siêu dữ liệu thư mục), lấy số lượng hoạt động tạo, thống kê, đọc và xóa mà giải pháp có thể xử lý.

    Nghiên cứu với các tệp trống và 3 tệp KiB được đưa vào để hoàn thiện. Kết quả với 4 tệp KiB có thể phù hợp hơn vì 4 tệp KiB không thể vừa với một inode cùng với thông tin siêu dữ liệu và mảng ME5 được sử dụng để lưu trữ dữ liệu cho từng tệp. Do đó, MDtest cũng có thể cung cấp ước tính gần đúng về hiệu suất của tệp nhỏ đối với thao tác đọc và phần còn lại của thao tác siêu dữ liệu bằng cách sử dụng mảng ME5.

    Lệnh sau được sử dụng để chạy điểm chuẩn, trong đó  biến Chủ  đề là số lượng luồng được sử dụng (1 đến 512 tăng dần theo lũy thừa 2) và  my_hosts.$Threads  là tệp tương ứng đã phân bổ từng luồng trên một nút khác nhau, sử dụng phương pháp quay vòng để trải chúng đồng nhất trên 16 nút tính toán. Giống như điểm chuẩn IO ngẫu nhiên, số lượng luồng tối đa được giới hạn ở 512 do không có đủ lõi cho 1024 luồng và việc chuyển ngữ cảnh có thể ảnh hưởng đến kết quả, báo cáo một con số thấp hơn hiệu suất thực tế của giải pháp.

    mpirun –allow-run-as-root -np $Threads –hostfile my_hosts.$Threads –map-by node –mca btl_openib_allow_ib 1 –oversubscribe –prefix /usr/mpi/gcc/openmpi-4.1.2a1 / usr/local/bin/mdtest -v -d /mmfs1/perf/mdtest -P -i 1 -b $Directories -z 1 -L -I 1024 -u -t -F

    Vì tổng số IOP, số tệp trên mỗi thư mục và số luồng có thể ảnh hưởng đến kết quả hoạt động nên chúng tôi quyết định giữ cố định tổng số tệp ở 2 tệp MiB (2^21 = 2097152), số lượng tệp mỗi thư mục được cố định ở mức 1024 và số lượng thư mục thay đổi, do số lượng chuỗi thay đổi như trong bảng sau: 

    Bảng 4.       Phân phối tệp trên các thư mục  bằng MDtest

    Số của chủ đề

    Số lượng thư mục trên mỗi chủ đề

    Tổng số tệp

    1

    2048

    2.097.152

    2

    1024

    2.097.152

    4

    512

    2.097.152

    số 8

    256

    2.097.152

    16

    128

    2.097.152

    32

    64

    2.097.152

    64

    32

    2.097.152

    128

    16

    2.097.152

    256

    số 8

    2.097.152

    512

    4

    2.097.152

    1024

    2

    2.097.152

    Hình 25.     Hiệu suất siêu dữ liệu – tệp trống 

    Lưu ý rằng thang đo được chọn là logarit với cơ số 10, để cho phép so sánh các hoạt động có sự khác biệt về một số bậc độ lớn; mặt khác, một số hoạt động xuất hiện giống như một đường phẳng gần bằng 0 trên biểu đồ bình thường. Biểu đồ logarit với cơ số 2 phù hợp hơn vì số luồng tăng theo lũy thừa của 2. Biểu đồ như vậy trông giống nhau, nhưng mọi người có xu hướng nhận thức và ghi nhớ các số dựa trên lũy thừa của 10 tốt hơn.

    Hệ thống cung cấp kết quả tốt với các thao tác thống kê và đọc đạt giá trị cao nhất ở 256 luồng với lần lượt là 8,8M thao tác/giây và 5,34M thao tác/giây. Thao tác xóa đạt tối đa 311,9K thao tác/giây ở 64 luồng và thao tác tạo đạt tối đa ở 512 luồng với 322,9K thao tác/giây. Hoạt động thống kê và đọc có nhiều biến đổi hơn, nhưng khi chúng đạt đến giá trị cao nhất, hiệu suất không giảm xuống dưới 1,3 triệu thao tác/giây đối với hoạt động thống kê và 970 nghìn thao tác/giây đối với hoạt động đọc. Các thao tác tạo và xóa sẽ ổn định hơn khi chúng đạt đến mức ổn định và duy trì trên 280K thao tác/giây đối với thao tác xóa và duy trì trên 265K thao tác/giây đối với thao tác tạo. 

    Hiệu suất siêu dữ liệu với MDtest bằng 3 tệp KiB

    Thử nghiệm này gần giống với thử nghiệm trước, ngoại trừ việc chúng tôi đã sử dụng các tệp nhỏ 3 KiB thay vì các tệp trống; dữ liệu vẫn sẽ nằm gọn bên trong inode siêu dữ liệu. Lệnh sau được sử dụng để chạy điểm chuẩn, trong đó  biến Chủ  đề là số lượng luồng được sử dụng (1 đến 512 tăng dần theo lũy thừa 2) và  my_hosts.$Threads  là tệp tương ứng đã phân bổ từng luồng trên một nút khác nhau, sử dụng phương pháp quay vòng để trải chúng đồng nhất trên 16 nút tính toán.

    mpirun –allow-run-as-root -np $Threads –hostfile my_hosts.$Threads –map-by node –mca btl_openib_allow_ib 1 –oversubscribe –prefix /usr/mpi/gcc/openmpi-4.1.2a1 / usr/local/bin/mdtest -v -d /mmfs1/perf/mdtest -P -i 1 -b $Directories -z 1 -L -I 1024 -u -t -F -w 3K -e 3K

    Hình 26.     Hiệu suất siêu dữ liệu – tệp nhỏ (3 KiB) 

    Hệ thống cung cấp kết quả tốt cho các hoạt động thống kê, đạt mức cao nhất là 8,9M Hoạt động/giây ở 64 luồng và hoạt động đọc đạt mức cao nhất là 4M Hoạt động/giây ở 256 luồng. Hoạt động loại bỏ đạt mức tối đa là 407,9K Hoạt động/giây và hoạt động tạo đạt mức cao nhất là 258,9K hoạt động/giây, cả hai đều ở 32 luồng. Hoạt động thống kê và đọc có nhiều biến đổi hơn, nhưng khi chúng đạt đến giá trị cao nhất, hiệu suất không giảm xuống dưới 3,6 triệu thao tác/giây đối với hoạt động thống kê và 2,5 triệu thao tác/giây đối với hoạt động đọc. Các thao tác tạo và xóa ít biến đổi hơn, tăng gần như tuyến tính khi số lượng luồng tăng lên, sau đó đạt mức ổn định với hơn 314K Hoạt động/giây đối với thao tác Xóa và 219 nghìn Hoạt động/giây đối với thao tác tạo. 

    Hiệu suất siêu dữ liệu với MDtest bằng 4 tệp KiB

    Thử nghiệm này gần giống với hai thử nghiệm trước, ngoại trừ việc chúng tôi đã sử dụng các tệp nhỏ 4KiB. Lệnh sau được sử dụng để chạy điểm chuẩn, trong đó  biến Chủ  đề là số lượng luồng được sử dụng (1 đến 512 tăng dần theo lũy thừa 2) và  my_hosts.$Threads  là tệp tương ứng đã phân bổ từng luồng trên một nút khác nhau, sử dụng phương pháp quay vòng để trải chúng đồng nhất trên 16 nút tính toán.

    mpirun –allow-run-as-root -np $Threads –hostfile my_hosts.$Threads –map-by node –mca btl_openib_allow_ib 1 –oversubscribe –prefix /usr/mpi/gcc/openmpi-4.1.2a1 / usr/local/bin/mdtest -v -d /mmfs1/perf/mdtest -P -i 1 -b $Directories -z 1 -L -I 1024 -u -t -F -w 4K -e 4K

    Hình 27.     Hiệu suất siêu dữ liệu – tệp nhỏ (4 KiB) 

    Hệ thống cung cấp kết quả tốt với tất cả các hoạt động đạt giá trị cao nhất ở 256 luồng. Hoạt động thống kê đạt 7,6 triệu Hoạt động/giây, hoạt động Đọc đạt khoảng 3,5 triệu hoạt động/giây, hoạt động xóa đạt tối đa 440,3K Hoạt động/giây và hoạt động tạo đạt tối đa 137,3 nghìn Hoạt động/giây. Hoạt động thống kê và đọc có nhiều biến đổi hơn, nhưng khi chúng đạt đến giá trị cao nhất, hiệu suất không giảm xuống dưới 2,5 triệu Hoạt động/giây đối với hoạt động Thống kê và 590 nghìn Hoạt động/giây đối với hoạt động đọc. Thao tác tạo và xóa ít biến đổi hơn, tiếp tục tăng khi số lượng luồng tăng lên cho đến khi đạt giá trị tối đa, sau đó bắt đầu giảm dần hiệu suất (ở 512 luồng).

    Bản tóm tắt

    Giải pháp hiện tại có thể mang lại hiệu suất tốt, dự kiến ​​sẽ ổn định bất kể không gian sử dụng (vì hệ thống được định dạng ở chế độ phân tán), như có thể thấy trong Bảng 4 . Hơn nữa, giải pháp mở rộng tuyến tính về dung lượng và hiệu suất khi thêm nhiều mô-đun nút lưu trữ và có thể mong đợi mức tăng hiệu suất tương tự từ HDMD tùy chọn với một cặp NVMe.  

    Bảng 5.       Hiệu suất cao nhất và duy trì

    điểm chuẩn

    Hiệu suất cao điểm

    hiệu suất bền vững

    Viết

    Đọc

    Viết

    Đọc

    Máy khách N tuần tự lớn đến N tệp

    28,5 GB/giây

    31,4 GB/giây

    27,1 GB/giây

    28GB/giây

    Máy khách N tuần tự lớn cho một tệp được chia sẻ

    29,1 GB/giây

    30,9 GB/giây

    26,9 GB/giây

    24,3 GB/giây

    Khối nhỏ ngẫu nhiên N máy khách thành N tệp

    20,8K IOps

    31,8K IOps

    20,8K IOps

    31,8K IOps

    Siêu dữ liệu Tạo tệp trống

    Hoạt động 323K

    Siêu dữ liệu Thống kê các tệp trống

    8,8 triệu hoạt động

    Siêu dữ liệu Đọc các tệp trống

    5,96 triệu hoạt động

    Siêu dữ liệu Xóa các tệp trống

    311,9K hoạt động

    Siêu dữ liệu Tạo 4 tệp KiB

    137,3K hoạt động

    Tệp siêu dữ liệu Stat 4 KiB

    Hoạt động 7,65M

    Siêu dữ liệu Đọc 4 tệp KiB

    Hoạt động 3,5M

    Siêu dữ liệu Xóa 4 tệp KiB

    440,3K hoạt động