2010년 12월 27일 월요일

임의의 데이터 파일을 생성해 낼때 사용할 수 있는 방법은?

임의의 파일을 생성하여 테스트 할 경우가 있다. 디스크 IO 를 측정할 경우나 또는 지정한 데이터 크기의 임의파일을 만들어 여러 전송에 성능측정을 하는 경우도 있다. 이렇게 임의 파일을 만드는 가장 간단한 방법은 /dev 밑에 존재하는 디바이스를 이용하는 것이다.

# cat /dev/urandom > test.bin

/dev/urandom 을 통해서 test.bin 을 생성하는 것이다. 적정한 시점에서 Ctrl+C 를 눌러 중지하면 된다. /dev/urandom 외에 /dev/zero, /dev/random 을 이용할 수 있다. /dev/zero 가 가장 빠르게 동작할 것이며, /dev/urandom 은 /proc/sys/kernel/random/pool_size 에 의해 사이즈 Chunk 가 결정된다.

이외 dd 를 이용해 원하는 사이즈 값 만큼 생성해 내는 방법도 있다. 아래의 예는,
/dev/zero 를 이용해 test.bin 을 생성하는데, 그 사이즈는 50 메가 이다.


# time dd if=/dev/zero of=test.bin bs=50000000 count=1
1+0 records in
1+0 records out
50000000 bytes (50 MB) copied, 0.326928 s, 153 MB/s

real    0m0.346s
user    0m0.000s
sys     0m0.136s

초당 153M가 나왔고, 0.3 초 정도 걸렸다. 이런 방법들은 디스크 성능 측정에 유용하기도 하고, 패킷 전송률 같은 것을 테스트 할때도 임의의 데이터 파일을 생성해 전송해 보는데도 유용하다.

댓글 없음:

댓글 쓰기