USBスティックがあり、読み書き速度を測定しようとしています。ランダムなデータを書くべきかゼロを書くべきか、どれだけ書くべきかを決定することはできません。できるだけ早くこれを実行したいのですが、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
オペレーティングシステム:Ubuntu 16.04 LTS
質問:
オペレーティングシステムの最適化と結果のノイズを避けるのに十分な大きさは何ですか?オペレーティングシステムまたはUSBドライブのサイズによって異なりますか?
私が書いたり読んだりするデータの内容は重要ですか?すでにメモリ内のアイテム(すべて0または1など)を誤ってループバックしようとすると、USBスティックは最適化されますか?