Cấu hình phần cứng hiệu suất cao nhất là gì?


35

Tôi biết rằng số điểm chuẩn chính xác sẽ khác nhau giữa các nhà sản xuất, nhưng nói chung nếu bạn chỉ xem xét các ổ đĩa flash cao cấp, thẻ SD và USB HDD và Raspberry Pi của bạn được kết nối với mạng thông qua bộ chuyển đổi ethernet, cấu hình nhanh nhất từ ​​mạng quan điểm truyền dữ liệu? Tôi chỉ tìm kiếm câu trả lời trong đó mọi người đã thực sự thử các cấu hình được liệt kê bên dưới và có kết quả thực sự chứ không phải lý thuyết.

Rõ ràng phải sử dụng thẻ SD vì nó được yêu cầu ít nhất là một phần của chu kỳ khởi động, nhưng giả sử rằng bạn có phân vùng dữ liệu bổ sung trên mỗi thiết bị được liệt kê bên dưới có tốc độ truyền mạng cao nhất trên Raspberry Pi?

  1. Thẻ SD
  2. Ổ đĩa flash USB
  3. Ổ cứng USB

Câu hỏi này không tầm thường vì tại một số điểm xử lý trên không liên quan đến một trong các thiết bị lưu trữ được kết hợp với giao tiếp ethernet có thể ảnh hưởng đến tốc độ truyền, cũng như cổng ethernet trên Raspberry Pi được điều khiển bởi bus USB nên thông lượng chung sẽ bị ảnh hưởng bởi sự phối hợp của truyền dữ liệu ethernet và truyền dữ liệu phương tiện USB. Tôi không biết thẻ SD có trên cùng một bus USB được chia sẻ với các cổng USB và cổng ethernet hay không nhưng nếu tôi cho rằng đó sẽ là một hiệu suất lợi ích khá lớn khôn ngoan.

Đã chỉnh sửa để bao gồm chuyển mạng theo yêu cầu đối với điểm chuẩn


1
FYI, người trả lời có thể sử dụng sudo hdparm -t /dev/sdxnhư một công cụ hữu ích để đo điểm chuẩn.
Jivings

2
Tôi không có điểm chuẩn, nhưng đó là kiến ​​thức phổ biến: ssd> hdd> flash> sd> phương tiện quang học
Alexander - Tái lập Monica

+1 - Điểm hay về cổng SD - có phải trên cùng một bus với USB / ethernet không? Việc chia sẻ tải trên SD và bộ lưu trữ USB kèm theo có hoạt động tốt hơn không?
Jon Egerton

@XAleXOwnZX chắc chắn rằng nếu các bus mà các thiết bị đó bật có thể phù hợp với hiệu suất tối đa của thiết bị thì đó là thứ tự nhưng tôi cá rằng Raspberry Pi chỉ có USB nên thứ tự của bạn sẽ giống như ssd = hdd = flash> quang và SD có thể cư trú ở bất cứ đâu trong danh sách đó dựa trên việc nó có bus riêng tách biệt với các cổng USB hay không.
Dan B

Đó là một điểm tốt, nhưng HDD> Flash chắc chắn. Ổ cứng USB của tôi đạt 30 mb / giây so với ổ flash 5-10 của tôi
Alexander - Tái lập lại

Câu trả lời:


35

Trong điểm chuẩn, bạn phải luôn thiết lập giới hạn của mình là gì. Bởi vì nếu bạn mong đợi nhận được 100mbs từ lan đó thì bạn chỉ đang tự đánh lừa chính mình!

Nhìn vào thiết kế Khối này của RaspberryPI Model-B nhập mô tả hình ảnh ở đây

Vì vậy, chúng tôi thiết lập một thực tế rất quan trọng ở đây. Ethernet bị tắc nghẽn bởi bộ điều khiển USB vì hình thành khối digram chúng tôi thiết lập nó được kết nối với bộ chia USB. (Không có dấu hiệu rõ ràng là nó sử dụng một bus khác hay chỉ đơn giản là USB2?)

Nhìn kìa - một sơ đồ khối khác,

nhập mô tả hình ảnh ở đây

Bây giờ làm sáng tỏ hơn về tình hình. Bộ điều khiển 10/100 được kết nối với bộ chia USB - thật không may, một lần nữa, không có thông số kỹ thuật nào nói rằng bộ trung tâm giao tiếp với bộ điều khiển lan nhanh như thế nào - mong đợi sự thật quan trọng là tốc độ usb và lan được đàm phán cho môi trường usb tốc độ hỗn hợp.

Thẻ SD ở đâu?

Hóa ra thẻ SD được kết nối trực tiếp với BCM2835 (trang 65) và chúng đi sâu vào chi tiết rất lớn về hiệu suất bị ảnh hưởng từ các cấp cấu hình khác nhau. Một điều quan trọng cần lưu ý là nếu thẻ SD có Đồng hồ chuyên dụng, nó có thể chạy độc lập với CPU / GPU lõi ở tốc độ tối đa (dù sử dụng thẻ và tiêu chuẩn nào - bạn có thể thấy nó hỗ trợ một vài tiêu chuẩn.)

nhập mô tả hình ảnh ở đây

Vậy điều đó có ý nghĩa gì?

Điều đó có nghĩa là nếu bạn điểm chuẩn thẻ SD nhanh hơn và ổ đĩa bút crappy (4gb / 8gb), rất có thể bạn sẽ nhận được sự khác biệt lớn về hiệu suất. Vì vậy, bây giờ nó đặt ra câu hỏi, làm thế nào CPU / GPU xử lý giao tiếp với thiết bị nhúng tuyệt vời này (chip usb / lan) và tốc độ mà nó có khả năng giao tiếp.

Bạn thấy lý thuyết thực sự có thể đi bao xa trước khi chúng ta thực sự thực hiện bất kỳ điểm chuẩn nào? Một điểm quan trọng khác ở đây là - CPU điều khiển luồng dữ liệu như thế nào. Nó có sử dụng kênh đồng hồ riêng như khuyến nghị không?

Ở một thế giới lý tưởng, bạn sẽ nghĩ rằng LAN / USB này sẽ xử lý nó. Nhưng điều đó đòi hỏi MCU .. chúng ta có thấy MCY ở bất cứ đâu trong sơ đồ khối đó không .. KHÔNG!

Vì vậy, CPU phải yêu cầu IO DATA gửi cho nó cổng USB sau đó chuyển đến cổng LAN (thông qua cùng USB HUB) Có .. vì vậy điều đó sẽ gây ra một số vấn đề về tốc độ ở đâu đó.

Ngoài ra, điều tuyệt vời cần lưu ý là những gì xảy ra khi bạn sao chép vào ổ đĩa USB và từ thẻ SD tất cả thông qua mạng LAN .. nó sẽ gây ra một số lưu lượng truy cập.

Chúng ta cần điểm chuẩn các khía cạnh khác nhau

Khi thiết lập những gì chúng tôi đang cố gắng để chuẩn, chúng tôi có thể đặt câu hỏi trong thế giới thực.

  1. USB bên trong xử lý dữ liệu từ SD nhanh như thế nào?
  2. Bao nhiêu CPU được sử dụng để đọc / ghi vào SD sau đó vào LAN?
  3. Bao nhiêu CPU được sử dụng để đọc / ghi vào ổ USB Pen?
  4. Việc sao chép bất kỳ dữ liệu nào ảnh hưởng trực tiếp đến việc sử dụng CPU?
  5. Làm thế nào tốt chip USB / LAN xử lý đọc dữ liệu từ 2 nguồn trở lại cổng LAN và nó có ảnh hưởng đến CPU theo tỷ lệ không?
  6. Không cần kiểm tra xem lan có nhận được đủ 10mb / giây hay không vì nó bị tắc nghẽn do trạng thái của trung tâm USB.

Bây giờ bạn biết những gì bạn đang đấu tranh cho tôi thách thức bạn tự trả lời cho họ.

Bạn có thể thấy đây là một điểm khởi đầu rất tốt.

Tài liệu tham khảo

Nhưng chủ yếu là,

kiến thức và đánh giá kỹ thuật của riêng tôi, tôi đã thực hiện dựa trên kinh nghiệm nhúng của riêng tôi. OP đã hỏi một câu hỏi rất hay nhưng thiếu để hiểu rằng nếu không có sự hiểu biết về lý thuyết về một hệ thống, bạn sẽ phải cam chịu đánh giá / giải quyết các vấn đề thực tế.

Các kết quả

(4) Câu trả lời này cho thấy một số thử nghiệm cướp biển trái đất. Và nó chứng minh rằng việc thực hiện giao dịch dữ liệu mạnh ảnh hưởng trực tiếp đến CPU (chỉ không chắc là thẻ SD hay quá trình chuyển dữ liệu bên trong chip BCM sang chip USB / LAN)

(6) Đã chứng minh rằng cổ chai duy nhất sẽ là nguồn (ví dụ thẻ SD chậm) Hub USB quản lý để bơm dữ liệu ở mức 90% + nhưng trả lời cho câu hỏi 4 và 5 có thể ảnh hưởng trực tiếp đến hiệu suất này.

Vì vậy, thực hiện một số nghiên cứu và đóng góp của những người dùng khác, chúng tôi đang bắt đầu thiết lập và nhận được kết quả sơ bộ.

Dưới đây là một biểu đồ đẹp để giúp hình dung những gì chúng ta đang giải quyết.

nhập mô tả hình ảnh ở đây


1
+1 Câu trả lời tuyệt vời. Mặc dù bạn có thể vui lòng cung cấp nguồn cho hình ảnh của bạn?
Jivings

1
Câu trả lời này thực hiện một công việc tuyệt vời là thêm chi tiết vào câu hỏi giải thích tại sao mỗi phương tiện lưu trữ khác nhau có thể có số hiệu suất rất khác nhau. Cảm ơn bạn đã thông tin bổ sung mà tôi nên đã thêm vào câu hỏi ngay từ đầu.
Dân B

1
USB vẫn còn khoảng 30 MB / s, tức là rất nhiều dự phòng cho mạng 100 Mbit.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen đúng vậy. Nhưng một trong những câu hỏi của tôi liên quan đến hiệu suất của trung tâm usb nhúng. Haw nhanh thật không? và nó có phụ thuộc vào CPU ARM không - điều gì xảy ra khi bạn sao chép các nguồn mẫu 2 qua mạng LAN .. Đó là điều đáng để điểm chuẩn. Tôi không nói rằng nó sẽ không làm điều đó - nhưng chắc chắn có thể là một vấn đề trong một số tình huống.
Piotr Kula

Âm thanh như bạn có kinh nghiệm trong lĩnh vực này. Bạn có thể làm các phép đo thực tế?
Thorbjørn Ravn Andersen

3

Rõ ràng, hiệu suất cao nhất sẽ là với một ramdisk.

Điều đó sẽ không được sử dụng nhiều cho một thiết bị lưu trữ gắn mạng, nhưng sau đó, pi không nhất thiết là lựa chọn tốt nhất cho ứng dụng cố định đó.

Đối với một số điều mà tính linh hoạt của pi là phù hợp duy nhất, các yêu cầu lưu trữ thực tế có thể đủ nhỏ để chạy rõ ràng từ ramdisk, hoặc có thể ngầm từ ram thông qua cơ chế lưu trữ đĩa (ramdisks linux chỉ là bộ đệm đĩa mà không cần đĩa sao lưu).

Bạn vẫn sẽ cần một thẻ để khởi động, nhưng vì lợi ích phụ của việc chạy từ ram, bạn có thể giữ thẻ chỉ đọc và giảm thiểu rủi ro làm hỏng thẻ.


Bạn không cần thẻ để khởi động. Hệ điều hành / bộ tải khởi động yêu cầu nó! Bạn có thể khởi động từ giao diện Nối tiếp hoặc LAN nếu bạn thay đổi bộ tải khởi động để làm như vậy. Nếu bạn đủ kỹ thuật, bạn có thể thêm ram 3 GB vào RPI - nhưng đó hoàn toàn là chủ đề. Thực tế là tất cả mọi thứ đi qua một trung tâm USB ngu ngốc! bleeeh
Piotr Kula

Không phải là bộ tải khởi động, ít nhất là bộ tải bạn có thể thay đổi, nằm trên thẻ SD? Bạn có thể có thể tải rom khởi động nội bộ để tải từ một nguồn khác nếu bạn thay đổi một số dây đai pin cấu hình.
Chris Stratton

Tôi gần như tích cực với chip BCM .. giống như arduino chẳng hạn có bộ tải khởi động .. (như BIOS trên PC) Phải có một số chương trình ban đầu để tải chương trình tiếp theo, v.v. thay đổi bootlaoder trên RPi .. đợi một hoặc hai năm.
Piotr Kula

ATMEGA của arduino là một ví dụ về vi điều khiển được thiết kế để chạy độc lập, với đèn flash bên trong. Một booloader có người dùng tùy biến. Mặt khác, SOC của pi dường như đến từ lớp các bộ phận hệ thống lớn hơn đòi hỏi các bộ nhớ ngoài. Chúng thường có bộ tải khởi động, nhưng đó là rom mặt nạ không thể thay đổi một khi chúng rời khỏi nhà máy. Trong một sản phẩm truyền thống dựa trên thứ gì đó tương tự, sẽ có chip flash ngoài 4-8 MByte. Nhưng pi dường như sử dụng thẻ SD có thể tháo rời thay vào đó, tránh vấn đề ai đó làm hỏng đèn flash hàn.
Chris Stratton

Điều đó thật thú vị. Vì vậy, nó có phải là phân vùng FAT chứa dữ liệu khởi động này? hoặc nó được lưu trữ ở một nơi khác trên một phần ẩn của SD? Sau đó, trong một nỗ lực thậm chí còn dễ dàng hơn, hãy thử chuyển hướng quá trình tải sang một "bị hack" khác trên thiết bị ...
Piotr Kula

0

USB HDD hoặc USB SSD sẽ cung cấp cho bạn hiệu suất nhanh nhất. Thẻ SD ghi khoảng 12 MB / s cho các thiết bị class10 và USB có thể nhận tới 30 MB / s.

Tôi không đồng ý rằng trung tâm USB đang làm tắc nghẽn ethernet trên RPi, vì HUB có thể duy trì 400 Mbit / s và ethernet là 100. Vì vậy, về mặt lý thuyết, nó có thể duy trì tới 4 x cổng ethernet 100Mb / s nhanh.


MỌI lớp 10 SD tôi từng kiểm tra là> 19mb / s ghi. Tôi đã có một lớp 6 đã làm 14mb / s. SanDisk Extreme SD cho rằng 45mb / s đạt được 50mb / giây đọc và 47mb / s ghi, thật bất ngờ. Lexar 400x SD là tốc độ nhanh nhất tôi đã kiểm tra với tốc độ 70mb / giây, nhưng khoảng 30mb / giây ghi. Trên USB 2.0, hầu như không có sự khác biệt giữa thẻ SD nhanh, ổ cứng và SSD. Tất cả các giao diện USB 2.0 tôi đã sử dụng với tốc độ tối đa khoảng 35mb / giây. Tôi đã thấy các ổ USB 2.0 có dung lượng khoảng 10mb / giây và một số thậm chí còn thấp hơn thế. Nhiều ổ USB 3.0 có tốc độ ghi được giới hạn ở mức 10-20 mb / s, ngay cả trên các cổng USB 3.0!
Therealstubot

0

Tôi nhận được tối đa 4Mb / giây bằng ổ flash USB và tương tự cho USD HDD. Điều này trong khi chỉ cần thả các tệp qua mạng windows 'homegroup' vào thiết bị được kết nối với Raspberry.

Tôi đã mong đợi ít nhất 10 lần như vậy, nhưng tôi đã không thể tăng tốc độ chuyển tiền. Tôi đã thử chuyển FTP trực tiếp sang USB HDD (thiết bị này chuyển với tốc độ + 60Mb / giây khi kết nối với máy tính xách tay của tôi) nhưng kết quả rất kém. 100KiB / giây! Kết quả là số giờ lưu lượng truy cập chỉ trong vài 100 MB.

Bây giờ tôi di chuyển ổ cứng giữa máy tính xách tay và Raspberry Pi để truyền dữ liệu :-(


Tôi nghĩ rằng bạn có vấn đề về cấu hình / mạng vì tôi có thể tải tệp trực tiếp lên thẻ nhớ USB của mình lên tới 24 Mbps. Và tôi nghĩ rằng tôi có thể làm tốt hơn với Ethernet thay vì Wi-Fi. Tôi đã được sử dụng vsftpd.
Morgan Courbet
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.