타이밍이 포함된 dd 스크립트

타이밍이 포함된 dd 스크립트

다음을 수행하는 스크립트에 대한 최선의 접근 방식을 찾으려고 노력 중입니다.

  1. dd를 사용하여 10GB 파일을 생성하는 루프 스크립트를 생성합니다. 완료 시 파일을 제거한 다음 25회 반복하거나 스크립트가 종료되기 전에 CTRL+C를 입력하는 경우입니다.
  2. 각 작업(예: dd, rm)이 끝나면 시간을 측정하여 dd와 rm에 걸린 시간을 정확히 알 수 있습니다.

지금까지 나는 다음과 같은 내용을 생각하고 있습니다.

for i in {1..25}
  do
    time sh -c "dd if=/dev/zero of=/user/home/test.img bs=10G count=1" >> /tmp/dd_timed.txt && time sh -c "rm -f /user/home/test.img" >> rm_timed.txt
done

누구든지 더 나은 솔루션을 가지고 있거나 이것을 약간 조정할 수 있습니까?

답변1

좋습니다. 이 작업을 수행하는 방법은 다음과 같습니다. 불쾌해 보이지만 작동합니다.

#!/bin/bash
for i in {1..25}
do
{ time dd if=/dev/zero of=/home/user/test.img bs=1G count=10 oflag=direct >& / dev/null ; } 2>> /tmp/dd_timed.txt && { time rm /home/user/test.img >& /dev/null ;  } 2>> /tmp/rm_timed.txt
done

답변2

사용 시간을 비교하는 것도 흥미로울 수 있습니다.

time ( dd if=/dev/zero of=/tmp/test.img bs=1M count=1024; sync )

그리고

time ( dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=direct;sync )

sync대상 장치에 쓰기가 완료되는 데 걸리는 시간을 측정하려면 포함해야 합니다 .

oflag=direct내 메인 컴퓨터에서 SATA SSD(내 /tmp위치) 에 쓸 때 를 사용하는 것이 [15-20%] 더 빠릅니다 .


그러나 문제가 있을 수 있습니다 oflag=direct. 다음 링크를 참조하세요.

왜 항상 'dd'에 'oflag=direct'를 사용하지 않습니까?

관련 정보