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

Máy chủ PowerEdge R750s

Tổng quan

Đối với máy chủ PowerEdge R750s, mỗi máy chủ có 16 thiết bị NVMe được kết nối trực tiếp, tám thiết bị với mỗi CPU và hai bộ điều hợp HCAs Mellanox ConnectX-6 Cổng đơn VPI HDR 200 Gbps (một bộ điều hợp cho mỗi ổ cắm CPU). Cấu hình này là một cấu hình cân bằng về các miền NUMA. Đối với cấu hình được đặc trưng, ​​chúng tôi đã sử dụng hai máy chủ PowerEdge R750 được tải đầy đủ các thiết bị Dell OEM P5600 1.6TB PCIe4. Tuy nhiên, bất kỳ thiết bị NVMe nào được hỗ trợ trên máy chủ PowerEdge R750 đều được hỗ trợ cho các nút NVMe này.

PowerEdge R750 Hiệu suất IOzone tuần tự N máy khách đến N tệp

  • Hiệu suất của N máy khách liên tiếp đến N tệp được đo bằng IOzone phiên bản 3.492. Các bài kiểm tra mà chúng tôi đã chạy đa dạng từ một luồng đơn lẻ cho đến 1024 luồng.

    Chúng tôi đã sử dụng các tệp đủ lớn để giảm thiểu tác động của bộ nhớ đệm, với tổng kích thước dữ liệu là 8 TiB, gấp đôi tổng kích thước bộ nhớ của máy chủ và máy khách. Lưu ý rằng GPFS đặt nhóm trang có thể điều chỉnh thành dung lượng bộ nhớ tối đa được sử dụng để lưu vào bộ đệm ẩn dữ liệu, bất kể dung lượng RAM được cài đặt và dung lượng trống (đặt thành 32 GiB trên máy khách và 96 GiB trên máy chủ để cho phép tối ưu hóa I/O) . Trong khi ở các giải pháp HPC khác của Dell, kích thước khối cho các lần truyền tuần tự lớn là 1 MiB, thì GPFS được định dạng với kích thước khối là 8 MiB; do đó, hãy sử dụng giá trị đó hoặc bội số của nó trên điểm chuẩn để có hiệu suất tối ưu. Kích thước khối 8 MiB có vẻ quá lớn và lãng phí quá nhiều dung lượng khi sử dụng các tệp nhỏ, nhưng GPFS sử dụng phân bổ khối con để ngăn tình trạng đó. Trong cấu hình hiện tại, mỗi khối được chia thành 512 khối con, mỗi khối 16 KiB.

    Các lệnh sau đây được sử dụng để chạy điểm chuẩn cho các hoạt động ghi và đọc, trong đó biến  Chủ đề  là số lượng luồng được sử dụng (1 đến 1024 tăng dần theo lũy thừa của 2) và  danh sách luồng  là tệp phân bổ mỗi luồng trên một nút khác nhau, sử dụng phương pháp vòng tròn để trải chúng đồng nhất trên 16 nút tính toán. Biến  FileSize  có kết quả là 8192 (GiB)/Chủ đề để chia đều tổng kích thước dữ liệu cho tất cả các luồng được sử dụng. Kích thước truyền 16 MiB đã được sử dụng cho đặc tính hiệu suất này.

    ./iozone -i0 -c -e -w -r 16M -s ${FileSize}G -t $Threads -+n -+m ./threadlist

    ./iozone -i1 -c -e -w -r 16M -s ${FileSize}G -t $Threads -+n -+m ./threadlist

    Hình 35.      Hiệu suất tuần tự từ N đến N

    Từ kết quả, chúng tôi thấy rằng hiệu suất đọc đạt mức ổn định khoảng 96 GB/giây ở 128 luồng và cao nhất ở 512 luồng với 98,7 GB/giây. Con số này có vẻ thấp vì 16 thiết bị NVMe được sử dụng trên mỗi máy chủ PowerEdge R750, so với các máy chủ PowerEdge R650 có 10 thiết bị. Lý do là thông số kỹ thuật đọc cho các thiết bị 1,6TB được sử dụng (P5600) với máy chủ PowerEdge R750 thấp so với các thiết bị được sử dụng trên máy chủ PowerEdge R650 (PM1735), như được mô tả trong mục gạch đầu dòng thứ hai trong danh sách sau.

    Hiệu suất ghi đạt mức ổn định với khoảng 26 GB/giây ở 32 luồng, với mức cao nhất là 28,6 GB/giây ở 512 luồng. Hiệu suất ghi có thể trông thấp so với hiệu suất đọc, tuy nhiên, cần xem xét hai yếu tố:

    • Sao chép đã được sử dụng để có một bản sao cho từng thiết bị NVMe (NSD) trên một máy chủ khác nhau cho mục đích HA, tạo ra một bản sao dữ liệu một cách hiệu quả. Sau đó, chỉ một nửa số ổ NVMe đóng góp vào hiệu suất ghi, trong khi nửa còn lại trở thành chi phí cần thiết để sao chép dữ liệu.
    • Các mẫu NVMe PCIe 4 có sẵn cho máy chủ PowerEdge R750 tiền sản xuất được sử dụng trong dự án này bị hạn chế, vì vậy các thiết bị Dell 1.6 TB (OEM intel P5600) PCIe4 đã được sử dụng trên giường thử nghiệm. Hiệu suất của các thiết bị này là 3.500 GB/giây khi đọc và 1.700 GB/giây khi ghi, thấp hơn đáng kể so với các thiết bị có dung lượng lớn hơn (7.000 GB/giây đọc và 3.500 GB/giây ghi đối với thiết bị 3,2 TB và 7.000 GB/giây đọc và 4.300 GB/giây ghi đối với thiết bị 6,4 TB).

    Cả kết quả đọc và ghi dường  như đều ổn định khi đạt đến trạng thái ổn định, đây là một hành vi thuận lợi vì các máy chủ không bị giảm hiệu suất do số lượng máy khách đồng thời truy cập vào các luồng khác nhau. Là một thử nghiệm trong tương lai và vì IOzone có giới hạn là 1024 là số luồng tối đa, IOR có thể được sử dụng để tìm giới hạn đối với các máy khách/tệp đồng thời (sau khi thêm nhiều máy khách hơn để tránh chuyển đổi ngữ cảnh trong các máy khách, ảnh hưởng đến hiệu suất) .

     

PowerEdge R750 Hiệu suất IOR tuần tự N máy khách thành 1 tệp

  • Hiệu suất của N máy khách tuần tự cho một tệp chia sẻ duy nhất được đo bằng IOR phiên bản 3.3.0, với  OpenMPI  4.1.4rc1 để chạy điểm chuẩn trên 16 nút điện toán. Các thử nghiệm mà chúng tôi đã chạy đa dạng từ một luồng cho đến 512 luồng do không có đủ lõi cho 1024 luồng (16 máy khách có tổng cộng 16 x 2 x 20 = 640 lõi) và chi phí đăng ký quá mức ảnh hưởng một chút đến kết quả ở 1024 luồng.

    Chúng tôi đã giảm thiểu hiệu ứng bộ nhớ đệm bằng cách đặt nhóm trang GPFS có thể điều chỉnh thành 32 GiB trên máy khách và 96 GiB trên máy chủ, đồng thời sử dụng tổng kích thước dữ liệu là 8 TiB, gấp đôi kích thước RAM từ máy chủ và máy khách cộng lại. Chúng tôi đã sử dụng kích thước truyền 16 MiB cho đặc tính hiệu suất này. Để có giải thích đầy đủ, hãy xem  hiệu suất IOzone tuần tự N máy khách đến N tệp . 

    Các 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 của 2) và  my_hosts.$Threads  là tệp tương ứng phân bổ mỗi 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. Biến  FileSize  có kết quả là 8192 (GiB)/Chủ đề để chia đều tổng kích thước dữ liệu cho tất cả các luồng được sử dụng. 

    mpirun –allow-run-as-root -np $Threads –hostfile my_hosts.$Threads –mca btl_openib_allow_ib 1 –mca pml ^ucx –oversubscribe –prefix /usr/mpi/gcc/openmpi-4.1.2a1 /usr/local/bin /ior -a POSIX -v -I 1 -d 3 -e -k -o /mmfs1/perftest/ior/tst.file -w -s 1 -t 16m -b ${FileSize}G 

    mpirun–-allow-run-as-root -np $Threads–-hostfile my_hosts.$Threads–-mca btl_openib_allow_ib 1–-mca pml ^ucx–-oversubscribe–-prefix /usr/mpi/gcc/openmpi-4.1.2a1 /usr/local/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/ior/tst.file -r -s 1 -t 16m -b ${FileSize}G

    Hình 36.     Hiệu suất tuần tự từ N đến 1

    Từ kết quả, chúng tôi thấy rằng hiệu suất tăng lên nhanh chóng cùng với số lượng máy khách được sử dụng và sau đó đạt đến mức ổn định đối với các thao tác đọc ở khoảng 16 luồng và đối với các thao tác ghi ở 8 luồng và chỉ còn lại một sự sụt giảm nhỏ đối với các thao tác đọc khi số lượng chủ đề tăng lên. Hiệu suất đọc tối đa là 97,3 GB/giây ở 32 luồng và để ghi là 27,1 GB/giây ở 512 luồng. Lưu ý rằng hiệu suất tăng nhanh hơn so với các thử nghiệm NN, điều này có thể là do có thêm sáu thiết bị trên mỗi máy chủ (so với máy chủ PowerEdge R650) để phân phối dữ liệu, truy cập MPI cộng với IOR hiệu quả hơn cho các thao tác ghi so với IOzone hoặc một số lý do khác điều đó không rõ ràng. Cần điều tra thêm về hành vi này.