최고 성능의 하드웨어 구성은 무엇입니까?


35

정확한 벤치 마크 번호는 제조업체마다 다를 수 있지만 일반적으로 고급 플래시 드라이브, SD 카드 및 USB HDD 만 고려하고 Raspberry Pi가 이더넷 스위치를 통해 네트워크에 연결된 경우 네트워크에서 가장 빠른 구성은 무엇입니까 데이터 전송 관점? 사람들이 실제로 아래에 나열된 구성을 시도하고 이론이 아닌 실제 결과를 얻은 답변 만 찾고 있습니다.

분명히 부팅주기의 적어도 일부가 필요하기 때문에 SD 카드를 사용해야하지만 아래에 나열된 각 장치에 Raspberry Pi에서 가장 높은 네트워크 전송 속도를 갖는 추가 데이터 파티션이 있다고 가정합니다.

  1. SD 카드
  2. USB 플래시 드라이브
  3. USB HDD

이더넷 통신과 연결된 저장 장치 중 하나와 관련된 처리 오버 헤드가 전송 속도에 영향을 미칠 수 있기 때문에 라즈베리 파이의 이더넷 포트는 USB 버스에 의해 제어되므로 일반적으로 처리량에 영향을 미치기 때문에이 질문은 사소하지 않습니다. 이더넷 데이터 전송과 USB 미디어 데이터 전송의 조정 SD 카드가 USB 포트 및 이더넷 포트와 동일한 공유 USB 버스에 있는지 여부는 알 수 없지만 그렇지 않은 경우 성능면에서 큰 이점이 있다고 생각합니다.

벤치 마크 요구 사항으로 네트워크 전송을 포함하도록 편집


1
참고로, 답변자는 sudo hdparm -t /dev/sdx벤치마킹에 유용한 도구로 사용할 수 있습니다 .
Jivings

2
벤치 마크는 없지만 일반적인 지식은 다음과 같습니다. ssd> hdd> flash> sd> optical media
Alexander

+1-SD 포트의 장점-USB / 이더넷과 동일한 버스에 있습니까? SD 및 연결된 USB 저장소의 공유로드가 더 잘 작동합니까?
Jon Egerton

@XAleXOwnZX 해당 장치가있는 버스가 장치의 최대 성능과 일치 할 수 있는지 확인한 다음 순서이지만 Raspberry Pi에는 USB 만 있기 때문에 주문은 ssd = hdd = flash> optical SD는 USB 포트와 분리 된 자체 버스가 있는지 여부에 따라 목록의 어느 곳에 나있을 수 있습니다.
Dan B

좋은 지적이지만 HDD> 플래시입니다. 내 USB 하드 드라이브는 플래시 드라이브의 5-10에 비해 30mb / s를 얻습니다
Alexander

답변:


35

벤치마킹에서는 항상 한계를 정해야합니다. 당신이 그 LAN에서 100MB를 얻을 것으로 예상한다면 당신은 단지 자신을 속이는 것보다!

RaspberryPI Model-B의이 블록 디자인을보십시오 여기에 이미지 설명을 입력하십시오

그래서 우리는 여기서 매우 중요한 사실을 확립합니다. 이더넷은 USB 컨트롤러에 의해 병목 현상이 발생합니다. 우리가 설정 한 블록 다이어그램은 USB 허브에 연결되어 있기 때문입니다. (다른 버스를 사용하거나 단순히 USB2를 사용한다는 명확한 표시가 없습니까?)

Ohh look-다른 블록 다이어그램

여기에 이미지 설명을 입력하십시오

이제 상황에 대해 더 많은 정보를 얻을 수 있습니다. 10/100 컨트롤러는 불행히도 USB 허브에 연결되어 있습니다. 다시 말하지만, 사양에서 허브가 LAN 컨트롤러와 얼마나 빨리 통신하는지는 말하지 않습니다 .USB 속도와 LAN이 협상되었다는 주요 사실을 기대하십시오. 혼합 속도 USB 환경 용.

SD 카드는 어디에 있습니까?

SD 카드가 BCM2835 (65 페이지)에 직접 연결되어 있으며 다양한 구성 수준에서 성능이 미치는 영향에 대해 자세히 설명합니다. SD 카드에 전용 클럭이 있으면 코어 CPU / GPU와는 최대 속도로 독립적으로 실행할 수 있습니다. (카드와 표준에 관계없이 몇 가지 표준을 지원한다는 것을 알 수 있습니다.)

여기에 이미지 설명을 입력하십시오

이것이 무엇을 의미합니까?

더 빠른 SD 카드와 crappy pen drive (4gb / 8gb)를 벤치마킹하면 성능 차이가 가장 클 것입니다. 이제 CPU / GPU가이 훌륭한 임베디드 장치 (usb / lan chip)와의 통신을 어떻게 처리하고 어떤 속도로 통신 할 수 있는지에 대한 의문이 제기됩니다.

실제로 벤치마킹을하기 전에 이론이 실제로 얼마나 멀리 갈 수 있는지 보십니까? 여기서 또 다른 핵심 사항은-CPU가 데이터 흐름을 제어하는 ​​방법입니다. 권장되는대로 별도의 클럭 채널을 사용합니까?

이상적인 환경에서는이 LAN / USB가이를 처리한다고 생각할 것입니다. 그러나 그것은 MCU를 필요로한다. 우리는 그 블록 다이어그램의 어느 곳에서나 MCY를 볼 수 있는가?

따라서 CPU는 IO DATA가 USB 포트를 보내도록 요청한 다음 LAN 포트로 이동합니다 (같은 USB 허브를 통해). 어딘가에 속도 문제가 발생할 수 있습니다.

또한 LAN을 통해 USB 펜 드라이브와 SD 카드에서 복사 할 때 어떤 일이 발생하는지 기록해 두는 것이 좋습니다. 트래픽이 발생할 수 있습니다.

다양한 측면을 벤치마킹해야합니다

우리가 벤치마킹하려고하는 것을 확립 할 때 실제 질문을 할 수 있습니다.

  1. 내부 USB는 SD의 데이터를 얼마나 빨리 처리합니까?
  2. SD에서 LAN으로 읽고 쓰는 데 얼마나 많은 CPU가 사용됩니까?
  3. USB 펜 드라이브에 읽기 / 쓰기에 얼마나 많은 CPU가 사용됩니까?
  4. 데이터 복사가 CPU 사용량에 직접 영향을 줍니까?
  5. 내장 USB / LAN 칩은 2 개의 소스에서 LAN 포트로 데이터를 다시 읽는 것을 얼마나 잘 처리하며 CPU에 비례하여 영향을 줍니까?
  6. USB 허브가있는 상태에 따라 병목 현상이 발생하여 LAN이 최대 10mb / s를 가져 오는지 테스트 할 필요가 없습니다.

당신이 무엇을 위해 싸우고 있는지 알게되었으므로 나는 그들에게 당신 자신에게 대답하도록 도전합니다.

이것이 아주 좋은 출발점이 될 수 있습니다.

참고 문헌

그러나 대부분

내 자신의 임베디드 경험을 바탕으로 내 자신의 기술 지식과 평가. OP는 매우 좋은 질문을했지만 시스템에 대한 이론적 이해 없이는 실제 문제를 평가 / 해결하려고 시도 할 운명에 있다는 것을 이해하지 못합니다.

결과

(4) 이 답변 은 지구 해적 테스트에 이르기까지 몇 가지를 보여줍니다. 또한 강력한 데이터 트랜잭션을 수행하면 CPU에 직접 영향을 미친다는 것을 증명합니다 (SD 카드 또는 BCM 칩 내부의 데이터를 USB / LAN 칩으로 이동하는 프로세스인지 확실하지 않음)

(6) 유일한 병목이 소스가 될 것임이 입증되었습니다 (예 : 느린 SD 카드) USB 허브는 90 % 이상의 데이터를 펌핑하지만 질문 4와 5에 대한 답변은이 성능에 직접 영향을 줄 수 있습니다.

따라서 다른 사용자에 대한 조사와 기여를 통해 예비 결과를 도출하고 얻었습니다.

다음은 우리가 다루고있는 것을 시각화하는 데 도움 이되는 멋진 차트 입니다.

여기에 이미지 설명을 입력하십시오


1
+1 좋은 답변입니다. 이미지 소스를 제공 할 수 있습니까?
Jivings

1
이 답변은 왜 각기 다른 스토리지 미디어가 서로 다른 성능 수치를 가질 수 있는지 설명하는 질문에 세부 사항을 추가하는 훌륭한 작업을 수행합니다. 처음에 질문에 직접 추가해야 할 추가 정보에 감사드립니다.
Dan B

1
USB는 여전히 약 30MB / s, 즉 100Mbit 네트워크를위한 충분한 공간입니다.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen 맞습니다. 그러나 내 질문 중 하나는 내장 USB 허브의 성능과 관련이 있습니다. 정말 빠른가요? 또한 LAN CPU를 통해 양식 2 소스를 복사 할 때 발생하는 상황과 ARM CPU에 따라 달라집니다. 벤치마킹 할만한 가치가 있습니다. 나는 그것을하지 않을 것이라고 말하지는 않지만 어떤 상황에서는 분명히 문제가 될 수 있습니다.
Piotr Kula

현장에서 경험이있는 것 같습니다. 실제 측정을 할 수 있습니까?
Thorbjørn Ravn Andersen

3

분명히 최고의 성능은 램 디스크를 사용하는 것입니다.

네트워크 연결 저장 장치에는 그다지 유용하지 않지만, pi가 고정 응용 프로그램에 가장 적합한 것은 아닙니다.

파이의 유연성이 독창적으로 적합한 일부 경우, 실제 스토리지 요구 사항은 램 디스크에서 명시 적으로 실행하거나 디스크 캐싱 메커니즘을 통해 램에서 암시 적으로 실행하기에 충분히 작을 수 있습니다 (리눅스 램 디스크는 백업 디스크가없는 디스크 캐시 일뿐입니다).

여전히 부팅 할 카드가 필요하지만, 램에서 실행하면 추가로 카드를 읽기 전용으로 유지하고 손상 위험을 최소화 할 수 있습니다.


부팅 할 때 카드가 필요하지 않습니다. 운영 체제 / 부트 로더에 필요합니다! 부트 로더를 변경 한 경우 직렬 인터페이스 또는 LAN에서 부팅 할 수 있습니다. 충분히 기술적 인 사람이라면 RPI에 3GB 램을 추가 할 수 있습니다. 사실 모든 것이 바보 같은 USB 허브를 통과합니다! bleeeh
Piotr Kula

SD 카드에있는 부트 로더 (적어도 변경 가능한 부트 로더)가 아닙니까? 일부 구성 핀 스트래핑을 변경하면 내부 부트 ROM을 다른 소스에서로드 할 수 있습니다.
Chris Stratton

나는 BCM 칩에 거의 긍정적이다. 예를 들어 arduino와 같은 것은 부트 로더를 가지고있다. RPi의 bootlaoder 변경 .. 1 ~ 2 년 정도 기다리십시오.
Piotr Kula

arduino의 ATMEGA는 내부 플래시와 함께 독립 실행 형으로 설계된 마이크로 컨트롤러의 예입니다. booloader에는 사용자 정의가 가능합니다. 반면에 파이의 SOC는 외부 메모리를 필요로하는 더 큰 시스템 부품에서 나온 것으로 보인다. 이들은 일반적으로 부트 로더를 가지고 있지만, 일단 공장을 떠난 후에는 변경할 수없는 마스크 롬입니다. 이와 같은 것을 기반으로 한 전통적인 제품에는 4-8MB 외부 플래시 칩이 있습니다. 그러나 파이는 탈착식 SD 카드를 대신 사용하여 누군가가 납땜 플래시를 손상시키는 문제를 피하는 것으로 보입니다.
Chris Stratton

그것 참 흥미 롭네. 이 부팅 데이터를 포함하는 FAT 파티션입니까? 아니면 SD의 숨겨진 부분에 저장되어 있습니까? theroy에서 당신은 훨씬 더 쉬운 시도로, 로딩 프로세스를 장치의 다른 "해킹 된"경로로 재 시도해보십시오.
Piotr Kula

0

USB HDD 또는 USB SSD는 가장 빠른 성능을 제공합니다. SD 카드는 class10 장치에 약 12MB / s를 기록하며 USB는 최대 30MB / s를 얻을 수 있습니다.

HUB가 400 Mbit / s를 유지할 수 있고 이더넷이 100이기 때문에 USB 허브가 RPi의 이더넷에 병목 현상을 일으키는 것에 동의하지 않습니다. 따라서 이론적으로 최대 4 개의 고속 이더넷 100Mb / s 포트를 유지할 수 있습니다.


내가 테스트 한 모든 클래스 10 SD는> 19mb / s 쓰기입니다. 나는 14mb / s를하는 클래스 6을 가지고있었습니다. 45mb / s로 청구되는 SanDisk Extreme SD는 50mb / s 읽기 및 47mb / s 쓰기를 달성합니다. Lexar 400x SD는 70mb / s 읽기 속도에서 테스트 한 속도가 가장 빠르지 만 쓰기 속도는 약 30mb / s입니다. USB 2.0의 경우 고속 SD 카드, HDD 및 SSD 사이에는 거의 차이가 없습니다. 내가 엉망으로 만든 모든 USB 2.0 인터페이스는 약 35mb / s로 출력됩니다. 나는 약 10mb / s 및 그보다 약간 낮은 USB 2.0 썸 드라이브를 보았습니다. 많은 USB 3.0 썸 드라이브는 USB 3.0 포트에서도 쓰기 속도가 10-20 mb / s로 제한됩니다!
Therealstubot

0

USB 플래시 드라이브를 사용하여 최대 4Mb / s를 얻으며 USD HDD에 대해서도 동일합니다. 이것은 단순히 Windows 네트워크 'homegroup'을 통해 파일을 Raspberry에 연결된 장치에 드롭하는 동안 간단합니다.

나는 적어도 10 배를 기대했지만 전송 속도를 올리지 못했습니다. USB HDD로 직접 FTP 전송을 시도했지만 (이 장치는 랩톱에 연결할 때 + 60Mb / s로 전송됩니다) 결과는 매우 좋지 않습니다. 100KiB / s! 단 몇 MB에 불과한 몇 시간 동안 트래픽이 발생합니다.

이제 데이터 전송을 위해 랩톱과 Raspberry Pi간에 HDD를 이동합니다.


최대 24Mbps의 USB 스틱에 파일을 직접 업로드 할 수 있기 때문에 구성 / 네트워크 문제가 있다고 생각합니다. 그리고 Wi-Fi 대신 이더넷으로 더 잘 할 수 있다고 생각합니다. 사용하고 vsftpd있습니다.
Morgan Courbet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.