두 가지 소스(베어메탈, kvm)와 두 가지 형식(gpt 파티션, lvm 파티션)의 HDD 스토리지 쓰기 속도를 비교하고 있습니다. 명령을 세 번 실행하고 평균을 확인했습니다. 테스트를 위해 RPi 4B의 USB3 포트에 연결된 Seagate 외장 하드 드라이브 1.5TB를 사용했습니다.
dd if=/dev/zero of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync status=progress
baremetal-gpt ~ 45.8MB/s
baremetal-lvm ~ 75.2MB/s
LVM 파티션의 쓰기 속도가 더 빠른 이유는 무엇입니까? 캐싱이 발생하고 있나요?
vm은 파일을 디스크로 사용합니다(파일은 베어메탈의 lvm 파티션에 저장됨).
dd if=/dev/zero of=/home/tdf/test.img bs=8k count=10k conv=fdatasync status=progress
쓰기 속도 - 65.3MB/s
dd if=/home/tdf/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
읽기 속도 - 249MB/초
vm은 전체 lvm 볼륨(베어 메탈의 lvm)을 디스크로 사용합니다.
dd if=/dev/zero of=/home/tdv/test.img bs=8k count=10k conv=fdatasync status=progress
쓰기 속도 - 75.7MB/s
dd if=/home/tdv/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
읽기 속도 - 112MB/s
두 가상 머신 모두 디스크 내부에서 lvm을 사용합니다(ubuntu 20.04 서버 설치 시 기본 옵션)
위의 값이 예상됩니까? 구체적으로 파일 디스크와 볼륨 디스크의 쓰기 속도에 차이가 있는 이유는 무엇입니까? 파일 디스크를 사용할 때 읽기 속도가 훨씬 빠릅니다. dd에서 nocache를 사용함에도 불구하고 어딘가에서 캐싱이 발생합니까?
편집 1:
/dev/zero 대신 /dev/urandom을 시도했습니다. 방법은 다음과 같습니다.이것. lvm에서 두 번 시도했습니다. 먼저 이전과 동일한 구성을 유지하고 두 번째로 디스크를 gpt로 변경한 다음 다시 lvm으로 변경했습니다.
베어메탈-lvm:
dd if=/dev/urandom of=/run/user/1000/test.img bs=8k count=10k conv=fdatasync status=progress ;
dd if=/run/user/1000/test.img of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync status=progress
쓰기 속도 1위 - 66.6MB/s, 쓰기 속도 2위 - 49.1MB/s
dd if=/media/darth_vader124/temp/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
첫 번째 읽기 속도 - 131.33MB/s, 두 번째 읽기 속도 - 60.33MB/s
베어메탈-gpt:
dd if=/dev/urandom of=/run/user/1000/test.img bs=8k count=10k conv=fdatasync status=progress ;
dd if=/run/user/1000/test.img of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync
쓰기 속도 - 55.4MB/s
dd if=/media/darth_vader124/temp/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
읽기 속도 - 93.7MB/초
다른 프로세스는 마운트를 사용하고 있지 않습니다(iotop을 사용하여 검색됨). 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. lvm에서 디스크 성능이 두 번째로 떨어지는 다른 이유는 무엇입니까?
편집 2:
몇 시간 동안 시스템을 종료하고 baremetal-lvm의 읽기 및 쓰기 대역폭을 다시 확인했습니다. 이 값은 첫 번째 실행 중에 관찰된 값으로 돌아갑니다.
쓰기 속도 ~ 73MB/초, 읽기 속도 ~ 119MB/초
특정 하드 드라이브 모델이 연중무휴로 실행되는 경우 읽기/쓰기 성능이 저하됩니까? 내 것은 Seagate Expansion 1.5TB 외장 하드 드라이브입니다. 아니면 하드웨어 오류와 같은 다른 문제가 있습니까?