Rsync는 파일 동기화와 백업에 많이 활용되는 도구로, 네트워크 환경이나 파일 크기에 따라 속도가 크게 달라질 수 있습니다. 단순히 rsync -av 같은 기본 옵션만 사용하면 안정적으로 동작하지만, 대량의 데이터를 다루거나 장거리 네트워크 구간을 거칠 때는 성능이 아쉽게 느껴질 때가 있습니다. 이번 글에서는 Rsync의 속도를 최적화하고 성능을 개선할 수 있는 실전 팁들을 정리해보겠습니다.
✅ 1. 압축 옵션 활용하기
네트워크 대역폭이 제한적인 환경에서는 압축을 통해 전송 속도를 개선할 수 있습니다. -z 옵션을 사용하면 전송 시 데이터를 압축해서 보내기 때문에, 전송량이 줄어들어 전체 시간이 단축될 수 있습니다.
단, CPU 자원이 부족한 환경에서는 압축 과정 때문에 오히려 느려질 수도 있으니, CPU 상황을 고려해야 합니다.
✅ 2. SSH 최적화
대부분 Rsync는 SSH를 통해 데이터를 전송합니다. 이때 암호화 알고리즘과 연결 설정을 최적화하면 속도가 빨라질 수 있습니다.
- 빠른 암호화 알고리즘 사용
AES128 같은 경량 암호화는 보안은 유지하면서도 처리 속도가 빠릅니다.
- ControlMaster 옵션
동일 세션에서 여러 번 Rsync를 실행할 때 SSH 연결을 재사용하면 초기 연결 시간이 줄어듭니다.
✅ 3. 블록 크기 조정
Rsync는 기본적으로 파일을 작은 블록 단위로 나눠서 비교합니다. --block-size 옵션을 조정하면 대용량 파일을 전송할 때 성능을 개선할 수 있습니다.
예를 들어 1GB 이상의 대형 로그 파일을 자주 동기화해야 한다면, 블록 크기를 크게 조정하는 게 유리합니다.
✅ 4. 병렬 전송 활용
단일 Rsync 프로세스보다 여러 개의 Rsync 프로세스를 병렬로 돌리는 게 더 빠를 때가 있습니다. 특히 수십만 개의 작은 파일을 전송할 때 효과적입니다.
- GNU Parallel이나 xargs -P를 활용해 여러 Rsync 작업을 동시에 실행
- 또는 --files-from 옵션을 활용해 전송할 파일을 분리 후 병렬 처리
예시:
✅ 5. 네트워크 튜닝
네트워크 자체를 조정하는 것도 성능에 큰 영향을 줍니다.
- TCP 윈도우 크기 조정
--bwlimit 옵션은 속도를 제한하는 기능이지만, 적절히 설정하면 네트워크 혼잡을 줄이고 안정성을 높일 수 있습니다.
- Jumbo frame 사용 (서버/스위치가 지원할 경우 MTU를 9000으로 설정)
✅ 6. 불필요한 옵션 줄이기
-a(archive) 옵션은 편리하지만, 모든 속성을 동기화할 필요가 없는 경우엔 불필요한 작업을 줄여 속도를 높일 수 있습니다.
예를 들어 퍼미션이나 타임스탬프 동기화가 필요 없다면:
이렇게 하면 단순히 파일 크기만 비교하고 전송합니다.
✅ 7. 하드웨어 리소스 활용
- 디스크 I/O 병목 줄이기: SSD 사용 시 캐싱이 잘 되므로 성능이 크게 개선됩니다.
- 멀티스레드 SSH: CPU가 여러 코어라면 멀티코어 활용이 가능한 OpenSSH 최신 버전을 사용하는 것이 유리합니다.
✅ 8. 대체 툴과의 병행 사용
Rsync는 범용성이 뛰어나지만, 대규모 전송에서는 bbcp, rclone, bscp 같은 툴이 더 빠를 때도 있습니다. 특히 클라우드 환경(S3, GCP, Azure)에서는 rclone이 더 적합합니다.
🐧 마무리
Rsync는 단순히 파일을 복사하는 도구를 넘어, 다양한 옵션과 환경 최적화를 통해 속도와 효율성을 크게 높일 수 있습니다. 핵심은 네트워크 환경, 파일 특성, 시스템 리소스에 맞게 옵션을 조합하는 것입니다. 작은 파일이 많을 때와 대용량 파일을 다룰 때 필요한 전략이 다르므로, 상황에 맞는 최적화 방법을 적용해보세요.
꾸준히 튜닝하다 보면 “Rsync가 이렇게 빨랐나?” 싶을 정도로 성능이 개선될 수 있을 것입니다.
'IT' 카테고리의 다른 글
| Rsync와 크론탭을 이용한 자동화 백업 (4) | 2025.09.09 |
|---|---|
| Rsync vs lsyncd vs rclone – 차이점과 활용법 (7) | 2025.09.08 |
| Rsync 로그 분석과 에러 처리 방법 (1) | 2025.09.02 |
| Rsync로 원격 서버 동기화 (1) | 2025.09.01 |
| Rsync 고급 활용법 – 증분 백업과 --dry-run 테스트 (9) | 2025.08.31 |