스마트 폰이나 카메라, 블랙박스등에 저장장치로 현재에는 MicroSD를 주로 사용하고 있다. 2000년대 부터 핸드헬드 장치나 카메라등에서 사용하던게 CF, SD, Smart Media, Media, MMC, XD등 제조사별로 무분별하게 사용되다가 어느순간 살아남은게 SD계열의 카드와 일부 CF카드 그리고 최근 보니 SD포맷으로 헤더가 더 많은 것들도 있는데 관심이 없어서... 최근 스마트폰에서는 아예 외장메모리를 다 걷어내버려서 아쉽기는 하다.

     

      라즈베리파이5를 사고 당연히 필자는 NVME를 주로 사용할 거라서 고민도 안하고 있다가, SD카드를 이용할 때와 USB, NVMe를 이용할때의 차이를 정리해드리면 좋겠다면서도, 사실 스펙이 이미 공개되어있고 해당 스펙에 준하는 성능이 나온다면 라즈베리파이에서는 NVMe = USB 다음 Micro SD 순으로 속도가 결정된다. 당연히 PCIe기반의 NVMe는 훠어어어얼씬 더 빠르겠지만, 라즈베리파이에서 제공하는  PCIe의 경우 2.0 x 1 이므로, 대역폭이 대략 5G 이므로 USB 3.0과 동일하다고 예상하고 있다.

     

      그리고 사용하는 형태에 따라서 어떤분은 빠르게 느껴질꺼고 느리게 느끼는 분도 있으실 겁니다. 왜냐면, 미디어에 따라 읽고 쓰는 속도가 차이가 나기 때문이고, 일반적인 사용과 빌드를 주로하는 사용자들이 느끼는 속도도 다를 수 있다. 필자의 예상이지만, AP(Application Processor, CPU)의 처리속도가 30% 정도 빨라졌다 한들 I/O 속도가 빨라지지 않으면 큰 차이를 느끼기가 어렵기 때문이다. 대부분의 이런 속도 차를 개선하기 위해서 캐시등을 사용하기도 하지만, ARM이라는 프로세서에서는 그 크기가 데스크톱 프로세서에 비해 크지 않은 경우가 많기에 더 느리게 동작할 수 있다. 현재에는 많이 개선되었지만 최소한 예전에는 그랬다는 이야기이다.

     

      그러면 필자는 뭘 해보고 싶었냐면, 항상 MicroSD를 구매할때 아래에 있었던 읽기/쓰기 속도에 따라 라즈베리파이5에서 사용할 때의 성능을 이야기 하고 싶었지만, 그건 시간이 너무 오래걸리기도 하고 해서 부팅시간에 미치는 영향 정도로 줄여볼까 한다.

     

    1. 사전준비

    1.1. 준비물 

       PC는 기본으로 깔고.. 노트북에는 최근 MicroSD 슬롯을 기본적으로 제공하는 경우가 많아서 테스트시 편리하다. 

      1) 라즈베리파이 5 

      2) MicroSD 3종 

          필자는 SanDisk의 Ultra, Extreme, Extreme Pro를 준비했다. 

      3) 메모리 카드리더

     

     

    1.2. 테스트 방법

    1.2.1. 스펙 체크

      1) 각각의 MicroSD 카드를 포맷한다.

      2) Christal Diskinfo를 이용하여 성능을 측정한다.

     

    1.2.2. 부팅속도 체크 (대부분 읽기)

      1)  각각의 MicroSD에 라즈베리파이 최신 이미지를 설치한다. 

      2) 각각 최초 부팅이후 기본 설정을 동일하게 진행한다.

      3) 두번째 부팅시 라즈베리파이의 전원을 인가함과 동시에 스탑워치를 시작한다.

      4) 데스크톱 화면이 표시됨과 동시에 스탑워치를 중지한다.

     

    1.2.3. 쓰기 속도 체크 (대부분 쓰기)

      우선 다음과 같이 예상하고 있는데, 리눅스에서도 테스트 별도로 테스트 하는 방법이 있긴한데 어떤것을 이용할지는 조금 생각이 필요할 것 같다. 

      1) 홈 디렉터리에서 메모리 데이터 /dev/zero를 1K 단위로  100번 기록하는 시간

      2) 동일한 조건으로 1M 단위로 100번 기록하는 시간

      3) 동일한 조건으로 4M 단위로 200번 기록하는 시간

     

     

    2. 테스트

    2.1. 테스트 대상 정보

      앞서 설명한데로 테스트는 아래의 3종의 MicroSD를 테스트 하였다.

     

    2.1.1. Sandisk Ultra

      태블릿이나 스마트폰등 일반적인 목적으로 가장 많이 사용하는 메모리카드이다. 기존 라즈베리파이에서도 주로 많이 사용하였다.

    1) 제품 상세정보

      저렴한 가격으로 가성비가 좋은 제품이다. 주요사항은 TLC이며, 최대 읽기속도만 100MB/s로 표시되어있다.

     

     

    2) 테스트 결과

      MicroSD를 꺼내 랩탑PC에서 제공하는 MicroSD 소켓을 이용하여 포멧후 Cristral Disk Info로 테스트를 하였다. 테스트 결과는 아래와 같다. 시퀀스하게 기록했을 때 최대 속도는 제시한 속도인 100MB/s에 가깝다. 다만 쓰기 속도가 읽기 속도에 비해서 확연히 느림을 알수있다. 따라서 기본적인 동작(부팅등)에서는 큰 차이가 나지 않지만 컴파일등 파일을 기록하거나 할 경우 속도가 느려질 수 밖에 없다. 

     

     

    2.1.2. Sandisk Extreme

    1) 제품 상세정보

      다음은 익스트림이다. 최대 읽기속도160MB/s, 최대 쓰기속도 60MB/s라고 한다. 물론 쇼핑목에 있는 정보와 조금 다른것 같은데, 이럴땐 포장지에 어필되어있는 내용이 맞는 거다.

     

    2) 테스트 결과

      테스트 결과는 조금 충격스럽다. 물론, MicroSD 카드리더(소켓)의 성능때문일 수 있고, 크리스털 디스크 인포로 측정이 어려운 경우일 수도 있다. 그래도 쓰기 속도가 월등히 빨라졌음을 알수있다.

     

     

    2.1.3. Sandisk Extreme Pro

    1) 제품 상세정보

      다음은 익스트림이다. 최대 읽기속도200MB/s, 최대 쓰기속도 90MB/s라고 한다. 64기가는 표시되어있지 않지만, 세부 옵션에서 12500원 정도임을 확인할 수 있다. 

     

     

    2) 테스트 결과

      윈도우에서 테스트 해본결과 Extreme과 Extreme Pro는 큰 차이가 나지 않았다. 

     

    이러면 사실상 Extreme Pro보다 Extreme이 가성비가 좋아보인다. 

     

     

    2.2. MicroSD카드리더 변경후 재시험

      이번 테스트에서는 USB 3.0 기반의 MicroSD 카드리더를 이용하여 측정, 테스트에는 Crystal Diskinfo 와 장시간 신뢰하면서 사용했던 트랜샌드 USB 3.0 카드리더를 사용하였다.

     

     

    1) Sandisk Ultra

      이전 시험 결과와 USB 3.0 카드리더를 사용한 시험결과이다. 크게 의미 없어 보인다.

      

     

    2) Sandisk Extreme

      이전 결과와 비교하면 랜덤에서는 불리하지만 시퀀스가 있는 데이터를 기록할 때 조금 유리함을 알수있다. 그래도 표기스펙보다는 떨어짐은 어쩔 수 없다.

     

    3) Sandisk Extreme Pro

      어째 Pro라는 딱지를 붙히기가 민망해진다. 고속 영상데이터를 넣는 경우 이러한 메모리 카드를 쓰는데 말이다. 실제 최근 드론이나 특정 레코딩 장치, 카메라에서는 저속 MicroSD를 넣으면 경고문구까지 나오는데... Pro 딱지를 달고 이정도 스펙인 것은 다소 유감스러운 일이다. 

     

     

     

    3. 부팅시간 및 네이티브 저장시간

      동일 설정이후 부팅때 까지 걸리는 시간을 측정한다. 사실 읽기 위주이므로 크게 차이가 나지 않을 것으로 예상하였고, 실제 결과는 오차범위까지 고려한다면 22초 모두 같다고 볼 수 있다.  따라서,  MicroSD 종류와 상관없이 초기 상태에서 부팅 시간은 거의 동일하다. 앞서 말했든 대부분 읽기의 동작을 하기 때문에 말이다. 

    3.1. 부팅시간 측정

    1) Sandisk Ultra

        - 준비 : PI OS 생성  / 디폴트 설정 적용(무선X) 리부팅 / 정상부팅 / 종료 / 전원인가 & 테스트

        - 소요시간 : 전원인가후 22.2초 (상태바 표시 완료 까지)

        

    2) Sandisk Extreme

        - 준비 : PI OS 생성  / 디폴트 설정 적용(무선X) 리부팅 / 정상부팅 / 종료 / 전원인가 & 테스트

        - 소요시간 : 전원인가후 22.1초 (상태바 표시 완료 까지)

     

    3) Sandisk Extreme Pro

        - 준비 : PI OS 생성  / 디폴트 설정 적용(무선X) 리부팅 / 정상부팅 / 종료 / 전원인가 & 테스트

        - 소요시간 : 전원인가후 22.5초 (상태바 표시 완료 까지)

     

    3.2. 네이티브 기록 시간 측정

      시스템이 구동되는 내에서 기록되므로 실제 기록성능은 당연히 낮아지게 된다. 테스트 명령은 아래와 같다.

    time dd if=/dev/zero of=/dev/sd{x}{y}/test.dat bs=1M count=1000; sync   

    또한 리눅스 특성상, 커맨드 종료시점이 아닌, 데이터가 완전히 저장되고 프롬프트가 뜨는 시간을 타이머로 측정하여 속도를 계산한다.

     

    1) Sandisk Ultra

        - 초기설정 : 정상부팅 > 터미널 실행 > dd 명령으로 기록 (Sync 포함)

        - 소요시간 :  50초 (1048576000 Byte / 50s = 20,971,520/s = 초당 약 20.9 MByte)

        

    2) Sandisk Extreme

        - 초기설정 : 정상부팅 > 터미널 실행 > dd 명령으로 기록 (Sync 포함)

        - 소요시간 :  17.3초 (1048576000 Byte / 17.3s = 60,611,329/s = 초당 약 60.6 MByte)

     

    3) Sandisk Extreme Pro

        - 초기설정 : 정상부팅 > 터미널 실행 > dd 명령으로 기록  (Sync 포함)  

        - 소요시간 :  17.1초 (1048576000 Byte / 17.1s = 61,320,233/s = 초당 약 61.3 MByte)

     

     

    4. 결론 

       사실 윈도우 테스트만 봤을 때는 사실상 가성비로는 Extreme이 가장 적합할 것으로 보인다. 특성은 온도나 이런부분이 차이 나더라도 크게 문제될 범위는 아닌것 같고 말이다. 그러면 결국 가격과 읽고 쓰기의 차이가 가장 낮은 제품중에서 속도가 빠른것을 고르면... 문제될것이 없어 보인다. 따라서, 

     

      그러면, 적혀 있는 속도는 무슨기준인지 궁금해질 수도 있다. 우리가 사용하는 윈도우나 리눅스는 데이터를 기록하기 위해서 운영체제의 영향을 많이 받는다. 따라서, 시스템을 원활하게 이용할 수 있는 환경을 만들기 위해서, 운영체제는 많은 일들을 하고 있다. 그 중의 하나의 기능 또는 프로세스로서 동작하기 때문에 데스크톱 같은 운영체제 위에서 이러한 장치를 사용한다면 속도는 줄어들게 된다. 만약, 최대한의 성능을 굳이 테스트 하고자 한다면 FPGA로 구성해서 데이터를 기록할 수 있도록 잘 만들어서 시험하거나(보통 반도체 테스트 장비는 그런 식으로 많이 만든다) 아니면 VxWorks 등에서 단일 Task로 읽기 및 쓰기기능을 구현하면 범용 운영체제에서의 결과보다 조금더 나은 결과를 얻을 수 있다. 

     

      독자 여러분께서 네이티브로 빌드도하고 설치도하고, 그러면서 개발도 하는데 SD카드를 써야된다면, 위의 결과를 통해서 얻은 결론인 독자 Extreme이나 동급 스펙의 MicroSD 카드를 사용하는 것이 적합할 것으로 보이며, 네이티브 빌드를 자주하거나 큰 라이브러리를 빌드하여 사용하는 경우라면 USB 3.0 메모리나 NVME를 사용하는것이 절대로 유익하다.

     

     

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기