Hiệu suất iSCSI kém với các ổ SSD và mạng 10 Gbe


10

Mục tiêu iSCSI

Ubuntu 14.04 (Trusty Tahr) với RAM 16 GB và CPU 16 nhân làm mục tiêu iSCSI được LVM hỗ trợ bằng ba đĩa SSD Samsung, mỗi ổ có khả năng thực hiện 65 nghìn IOPS bằng bộ điều khiển LSI 6 Gbit / s với bộ nhớ cache trên bo mạch.

Điểm chuẩn trên đĩa SSD trong mục tiêu:

fio --filename=/dev/sdd --direct=1 --sync=1 --rw=write --bs=4k --numjobs=10 --iodepth=1 --runtime=60 --time_based --group_reporting --name=ssd-max

iops=65514

Trường hợp sddđược cấu hình trong phần cứng RAID 0 bằng ba ổ SSD Samsung 850 EVO.

Người khởi xướng

Tôi đã xuất LUN 500G trên máy khách Ubuntu 14.04 với RAM 32 GB và CPU 8 lõi.

Điểm chuẩn trên LUN xuất khẩu

fio --filename=/dev/sdg --direct=1 --sync=1 --rw=write --bs=4k --numjobs=10 --iodepth=1 --runtime=60 --time_based --group_reporting --name=client-max

iops=2400

Hiệu suất giảm đáng kể khi thực hiện DAS và qua mạng, tôi đã mong đợi ít nhất 10 nghìn IOPS.

Giao tiếp giữa mục tiêu và bộ khởi tạo nhỏ hơn 1 ms và iperf hiển thị thông lượng mạng là 9,2 Gbit / s.

Tôi hiểu rằng sẽ có tác động hiệu suất cho việc ghi 4k vì mỗi dữ liệu phải đi qua ngăn xếp mạng của cả bộ khởi tạo và mục tiêu trước khi ghi vào đĩa, nhưng đây là mức giảm không thể chấp nhận được từ 65k xuống còn 2k.

Vấn đề có thể ở đâu? Tôi có một Ethernet Ethernet 10 Gbit / s giữa mục tiêu và bộ khởi tạo. Có ý kiến ​​gì không?


2
Không phải bất cứ nơi nào gần đủ thông tin và quả cầu pha lê của chúng tôi quá đắt để lãng phí chúng cho những khách hàng không trả tiền. Nếu bạn muốn giúp đỡ, sau đó cung cấp thông tin có ý nghĩa có thể được sử dụng để giúp bạn làm mọi thứ.
TomTom

Tôi đã chỉnh sửa câu hỏi của tôi, nếu bạn có thời gian, bạn có thể giúp tôi với các đề xuất của bạn.
Kevin Parker

Vì NIC và CPU có thể là nút cổ chai trong bất kỳ thiết lập iSCSI phần mềm nào, bạn có thể muốn đề cập đến chúng là gì.
rakslice

Câu trả lời:


20

Trả lời ngắn gọn: Đây là kết quả của độ trễ mạng một khối lượng công việc nối tiếp (như bạn áp đặt bằng cách sử dụng direct=1, sync=1iodepth=1).

Long trả lời: sử dụng direct=1, sync=1iodepth=1bạn tạo ra một khối lượng công việc nối tiếp, như viết mới không thể được xếp hàng trước khi ghi trước đó đã cam kết khẳng định. Nói cách khác, tốc độ gửi ghi phụ thuộc hoàn toàn vào độ trễ của mạng. Một đơn giản pinggiữa hai máy rất có thể vượt quá 0,2ms, vì vậy, khi sử dụng giao thức cấp cao hơn là TCP (và iSCSI ở trên nó). Giả sử tổng độ trễ mạng khoảng 0,33ms, bạn có giá trị IOPS tối đa khoảng 3000. Điều này không tính đến các nguồn trễ khác (es: chính các đĩa), vì vậy nó phù hợp với những gì bạn đã ghi.

Hãy thử điều này: thực hiện một điểm chuẩn đầu tiên mà không có --direct=1 --sync=1, và một điểm khác có các tùy chọn này nhưng tăng iodepthlên 32 yêu cầu. Sau đó báo cáo kết quả ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.