Tại sao open-iscsi ghi chậm hơn hai lần so với Samba qua Ethernet 10G?


9

Trên máy chủ tệp cục bộ của tôi, tôi có raid-6 trên ổ đĩa cứng 7x.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

Kiểm tra tốc độ cục bộ cho tôi tốc độ ghi 349 MB / s.

Ghi từ xa vào Samba từ SSD (tốc độ đọc> 2Gb / giây) mang lại cho tôi 259 MB / s ghi. Nhưng ghi từ xa vào ổ iSCSI (trên trình khởi tạo Win10 iSCSI) chỉ cho tôi ghi 151 Mb / s.

cấu hình raid6 - kích thước chunk 128K, sọc_cache_size = 8191. Ghi bitmap ý định là trên SSD (Samsung 860 PRO, chunk bitmap 4096K).

Mảng được gắn với các tùy chọn: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi setup: target dựa trên tệp 4Tb.

Bất kỳ gợi ý tại sao iSCSI chậm hơn Samba khi viết? Bất kỳ gợi ý về cách cải thiện tốc độ ghi iSCSI?

Tôi giả sử nó có liên quan đến mong muốn của open-iscsi để ghi vào đĩa sau mỗi thao tác, điều này làm tăng sự khuếch đại ghi trên raid6 do viết lại chẵn lẻ quá mức. Nhưng tôi không chắc làm thế nào để sửa nó. Tốc độ nó quan trọng hơn sự an toàn của dữ liệu hiện tại trong trường hợp mất điện.

Như một lưu ý phụ, mục tiêu iSCd cũ hơn có khả năng kích hoạt chế độ ghi lại (sử dụng IOMode=wb) và tốc độ ghi duy trì nhanh hơn nhiều. Thật không may, nó dường như không được biết đến.


2
Mạng lưới như thế nào? 10GigE? Phiên bản hệ điều hành máy chủ, phiên bản kernel là gì? Mục tiêu và phiên bản iscsi là gì? ietd, scst hay lio? Open-iscsi chỉ cung cấp một bộ khởi tạo, không phải mục tiêu ... Bạn đang sử dụng gì để đo tốc độ ghi? Hệ thống tập tin được sử dụng trên mục tiêu là gì?
wazoox

Trong Windows 10, QoS đã bị xóa khỏi NIC?
yagmoth555

2
Đăng cấu hình của mục tiêu iSCSI của bạn và bất kỳ điều chỉnh mạng được điều chỉnh nào cũng sẽ được thận trọng trong trường hợp này. Bạn cũng có thể xem xét thử nghiệm với bộ khởi tạo iscsi mở trên máy khách linux với kernel hiện đại để đưa ra so sánh rõ ràng giữa các bộ khởi tạo sử dụng cùng một mục tiêu, vì thử nghiệm hiện tại có thể bị thu hẹp quá nhiều bởi bộ khởi tạo Windows. Nhiều dữ liệu hơn == tốt hơn.
đệm

1
Nhưng theo như câu hỏi thực tế có liên quan: iSCSI và Samba rất khác nhau và bạn đang sử dụng lớp bộ đệm VFS khi sử dụng Samba không tồn tại trong một thiết bị khối trần. Tôi hiểu rằng bạn ngạc nhiên về sự khác biệt về hiệu suất, nhưng bạn có quan tâm nhiều hơn đến sự so sánh này hay để iSCSI bão hòa mạng của bạn không? Nếu iSCSI là mối quan tâm chính của bạn và hiệu suất Samba là một chi tiết nhỏ cho ngữ cảnh, bạn có thể chỉnh sửa câu hỏi để làm cho rõ ràng hơn (và có thể nhận được câu trả lời tốt hơn).
đệm

Bạn đã sử dụng Windows 10 để thử nghiệm, nhưng tôi không thấy bất kỳ chi tiết nào của máy được sử dụng ở bất cứ đâu. (và tại sao sử dụng HĐH máy khách Windows cho thử nghiệm như vậy?)
yagmoth555

Câu trả lời:


6

Trước hết, RAID-6 là vấn đề vì tính toán chẵn lẻ kép. Thứ hai, bạn có thể kết nối mục tiêu iSCSI hai lần trong MS iSCSI Initiator, kích hoạt RR hoặc Least Queue Depth (không may, Win10 không hỗ trợ đa luồng, vì vậy bạn có thể kiểm tra nó với Windows Server thay thế).

Trong thực tế, truy cập cấp khối phải nhanh hơn truy cập cấp tệp. Bạn đang sử dụng loại công cụ đo điểm chuẩn nào từ trang web Windows? Tôi khuyên bạn nên sử dụng đĩaspd hoặc FIO. Ngoài ra, bạn có thể sử dụng một cái gì đó như Starwind làm mục tiêu iSCSI nhanh hơn nhiều.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V


2
Raid 6 nằm trong phần cứng - không phải phần mềm. Nó không còn là vấn đề hiệu suất kể từ khoảng 20 năm.
Nils

RAID-6 là vấn đề? Tính toán chẵn lẻ xảy ra bất kể giao thức.
Daniel

2
RAID6 chậm hơn không phải vì tính toán chẵn lẻ, mà vì cái gọi là lỗ ghi dữ liệu là một kết quả của bản chất RAID chẵn lẻ đọc-sửa đổi-ghi.
tướcSamedi1958

3
"Raid 6 nằm trong phần cứng - không phải phần mềm. Nó không còn là vấn đề hiệu năng kể từ khoảng 20 năm nữa. - Nils 21 tháng 3 lúc 10:05" -> Điều này đơn giản là không đúng :( Đọc này -> theithollow.com/
2012/03/21

1

iSCSI nên được sử dụng ở cấp độ khối, mô tả thiết lập của bạn có vẻ như bạn đang sử dụng một hệ thống tệp, đặt một tệp trên đó và sau đó chạy tệp này dưới dạng lớp khối iSCSI.

Điều này là xa lý tưởng, và definiteley không phải là một thiết lập để so sánh tốc độ. Hãy thử sử dụng lvm trên đầu raid6 để phân đoạn không gian và ở trên lớp khối cho iSCSI hoặc sử dụng raid6 trực tiếp làm thiết bị iSCSI.

Trong thiết lập hiện tại của bạn, dữ liệu được truyền qua mạng, nhấn một tệp trong hệ thống tệp, rất có thể không được tối ưu hóa cho loại khối lượng công việc này và cũng được chia sẻ với các quy trình khác. Có thể thực hiện thiết lập như vậy với iSCSI, nhưng nên được coi là giải pháp dự phòng chưa được tối ưu hóa.


1

Xin lưu ý rằng ddmột điểm chuẩn rất đơn giản và RẤT dễ bị biến dạng. Ví dụ: bạn ddđang viết số 0 - nếu có trường hợp đặc biệt cho dữ liệu đầy số không (ví dụ: vì nó có thể nén), bạn sẽ thấy hiệu suất tuyệt vời nhưng chuyển sang viết "dữ liệu thực" khác không và đột nhiên hiệu suất có thể biến mất. ..

Để trả lời câu hỏi của bạn (như trong tất cả các điểm chuẩn), bạn thực sự phải cách ly các phần để xác định bit giới thiệu vấn đề. Ví dụ, việc ghi vào hệ thống tập tin Windows trực tiếp (và không qua iSCSI) cũng cực kỳ nhanh? Nếu bạn có cùng cấu hình phần cứng và chạy Linux thay vì Windows thì nó có nhanh như vậy không hay nó có chậm không? Điều gì xảy ra nếu bạn chuyển sang sử dụng một công cụ điểm chuẩn như fio ?

Đáng buồn thay, có quá nhiều khả năng để có thể trả lời một câu hỏi như thế nà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.