USB 플래시 드라이브 속도를 테스트하는 방법은 무엇입니까?

USB 플래시 드라이브 속도를 테스트하는 방법은 무엇입니까?

USB 스틱이 있고 읽기 및 쓰기 속도를 측정하려고 합니다. 임의의 데이터를 써야 할지 0을 써야 할지, 얼마나 써야 할지 결정할 수 없습니다. 가능한 한 빨리 이 작업을 수행하고 싶지만 OS의 캐싱으로 인해 인위적으로 빠른 속도를 보고하는 것은 피하세요. 이것은 지금까지 내 프로그램입니다.

쓰기 속도 측정

# Partition on the device under test
DEVICE=/dev/sdd5
WRITE_DATA=/tmp/write_data
READ_DATA=/tmp/read_data
BLOCK_COUNT=20
BLOCK_SIZE=524288

# Create a random test file to ensure data integrity.
dd if=/dev/urandom of=${WRITE_DATA} bs=${BLOCK_SIZE} count=${BLOCK_COUNT}

# Deactivate the cache.
hdparm -W0 ${DEVICE}

# Write.
dd if=${WRITE_DATA} of=${DEVICE} bs=${BLOCK_SIZE} count=${BLOCK_COUNT} oflag=direct

읽기 속도 측정

# Cause the kernel to drop clean caches.
# See also: https://www.kernel.org/doc/Documentation/sysctl/vm.txt
echo 3 | sudo tee /proc/sys/vm/drop_caches

# Read.
dd if=${DEVICE} of=${READ_DATA} bs=${BLOCK_SIZE} count=${BLOCK_COUNT} oflag=direct

# Make sure we read back what we wrote.
cmp --silent ${WRITE_DATA} ${READ_DATA} || echo "Files are different."

# Cleanup.
rm ${WRITE_DATA} ${READ_DATA}

USB 디스크 크기: 128GiB

운영 체제: 우분투 16.04 LTS

질문:

  1. 운영 체제 최적화와 결과의 노이즈를 피할 수 있을 만큼 "충분히 큰" 크기는 무엇입니까? 운영 체제나 USB 드라이브 크기에 따라 달라지나요?

  2. 내가 쓰거나 읽는 데이터의 내용이 중요합니까? 이미 메모리에 있는 항목(예: 모두 0 또는 1)을 실수로 루프백하려고 하면 USB 스틱이 최적화됩니까?

관련 정보