본문 바로가기
공부기록/스프링 프레임워크

[스프링] 파일 용량별 전송 시간

by 책읽는 개발자 ami 2021. 6. 12.
728x90
반응형

파일 모듈을 개발 중인데, 사용자가 대략 어느 정도 크기의 파일을 올리겠다는 예상치가 없어 난감하다..

10MB 이정도 크기는 1초도 안 걸리는 것 같아 큰 문제가 될 것 같진 않다. 하지만 1GB, 2GB 등의 기가바이트 단위라면..? 그래서 측정해보기로 했다.

일단 더미 데이터를 만든다. 더미 데이터는 WINDOWS 기준으로 아래와 같이 만들 수 있다.

 

 

명령 프롬프트에 들어가 fsutil file createnew [파일명] [파일크기] 와 같이 작성한다. 이때 파일크기는 바이트 단위다.

정확한 파일 크기를 위해 https://convertlive.com/u/convert/gigabytes/to/bytes#0.5에서 GB to B 컨버전을 하여 파일크기를 입력했다.

 

Convert Gigabytes to Bytes (GB → B)

Bytes (B) Bits (bit) Exabytes (EB) Exabits (Ebit) Gigabytes (GB) Gigabits (Gbit) Kilobytes (kB) Kilobits (Kbit) Megabytes (MB) Megabits (Mbit) Petabytes (PB) Petabits (Pbit) Terabytes (TB) Terabits (Tbit) Nibbles Bytes (B) Bits (bit) Exabytes (EB) Exabits

convertlive.com

 

500MB 536870912
1GB 1073741824
1.5GB 1610612736
2GB 2147483648
3GB 3221225472

 

내가 테스트한 단위는 위 표와 같다.

테스트 환경: 클라이언트 pc에서 파일을 전송하면 서버 pc가 이를 받아서 서버 pc에 파일을 올린다. 이때 파일 크기에 따른 전송시간을 구해보고자 했다. 대략적으로 걸린 시간을 체크해봤더니 다음과 같은 결과가 나왔다.

500MB 5초
1GB 10초
1.5GB 15초
2GB 20초
3GB 30초

 

시간과 용량이 완전 정비례라 깜짝 놀람.. (원격 서버 테스트 결과는 또 완전 다르다)

 

참고로 스프링 부트에서 파일용량 제한을 없애기 위해 application.properties에 다음과 같이 설정을 했다.

# Max file size.
spring.servlet.multipart.max-file-size=-1
 
# Max Request Size
spring.servlet.multipart.max-request-size=-1
728x90
반응형