파일 시스템 성능 비교 및 특징

현대 IT 서비스 환경에서는 대규모 데이터 저장과 고성능 I/O 처리가 필수적입니다.
특히 SSD 기반 블록 스토리지의 도입과 파일 시스템의 선택은 성능, 안전성, 확장성에 있어서 큰영향을 미칩니다.
본 문서는 여러 파일 시스템 중에서도 가장 널리 사용되는 EXT4, XFS 등 주요 리눅스 파일시스템의 특성과 성능을 비교하고,
실 서비스 환경(백업서버 등)에서의 적용 사례와 최적화 방안을 제시하는 것을 목적으로 합니다.
또한, dd와 fio같은 벤치마크 도구를 활용해 스토리지 성능을 측정하고, MRTG와 Netdata를 통해 실시간 시스템 상태를 시각적으로 모니터링함으로써,
파일시스템 선택 및 튜닝 시 참고 자료로 활용하실 수 있도록 구성하였습니다.
파일 시스템별 기본 특징
| File system | 특징 |
|---|---|
EXT4 | 안정성 높고 범용적으로 사용 대부분의 리눅스 배포판에서 기본사용되며 저용량 파일 처리에 유리 디스크 복구 도구(e2fsck) 안정적 |
XFS | 대용량 파일 처리에 최적화 병렬 입출력 처리에 강점이 있으며 파일 시스템 확장(online grow) 용이 백업/저장소 시스템에 적합 |
Btrfs | 스냅샷, 체크섬 등 고급 기능 지원 다중 디바이스 구성 가능하며 RAID 기능 내장 실사용에서는 안정성 및 복구 문제 보고 |
ZFS | 데이터 무결성, 압축, 중복 제거 등 고급 기능 제공 메모리 사용량이 많음(ZFS ARC 캐시) RAID-Z, 자동복구 기능이 우수하며 주로 고급 NAS 및 엔터프라이즈 환경에서 사용 |
EXT4 vs XFS 파일시스템 성능 비교
1. dd 디스크 성능 측정
테스트 환경
- 테스트 서버: 가상서버 단독형 vgna_2_n (vCPU 2core, Memory 2GB)
- 디스크 구성: 블록스토리지 SSD Block Pro 50G
- 테스트 도구: dd 명령어
- OS: Ubuntu 24.04.2 LTS
dd 테스트 명령어 예시
# 쓰기/읽기 성능 테스트
time dd if=/dev/zero of=/mnt/ext4/test_<block_size>.img bs=<block_size> count=10000 conv=fsync
time dd if=/mnt/ext4/test_<block_size>.img of=/dev/null bs=<b>
dd 명령어 주요 옵션 설명
| 옵션 | 설명 |
|---|---|
if=/dev/zero | 입력 소스로 0으로 채워진 가상 디바이스 사용 (빈 데이터 생성용) |
of=파일명 | 출력 파일명 (테스트 파일 생성) |
bs=4K, 8K, 1M, 4M | 블록 사이즈 (단일 IO 작업 크기) — 작은 블럭은 엑세스 성능, 큰 블럭은 순차 IO 성능 테스트 |
count=xxx | 반복 횟수 (총 데이터 용량 = 블록 사이즈 × count) |
conv=fsync | 쓰기 시 캐시를 flush → 실 디스크 쓰기 완료 후 측정 (정확한 쓰기 성능 측정 시 필요) |
if=테스트파일 of=/dev/null | 디스크에서 읽어들인 데이터 버리기 → 읽기 성능 측정 용도로 사용 |
time | 명령 실행 시 전체 소요 시간(real/user/sys) 측정 |
dd 측정 결과 (XFS vs EXT4)
| 블럭 크기 | 테스트 | XFS (MB/s, 시간) | EXT4 (MB/s, 시간) |
|---|---|---|---|
| 4K | 쓰기 | 90.7 MB/s (1m58.409s) | 96.7 MB/s (1m51.005s) |
| 4K | 읽기 | 106 MB/s (1m41.062s) | 101 MB/s (1m46.662s) |
| 8K | 쓰기 | 78.2 MB/s (2m17.359s) | 92.9 MB/s (1m55.525s) |
| 8K | 읽기 | 119 MB/s (1m30.399s) | 115 MB/s (1m33.518s) |
| 1M | 쓰기 | 82.1 MB/s (2m7.744s) | 96.5 MB/s (1m48.694s) |
| 1M | 읽기 | 168 MB/s (1m2.409s) | 165 MB/s (1m3.587s) |
| 4M | 쓰기 | 104 MB/s (1m40.399s) | 89.4 MB/s (1m57.322s) |
| 4M | 읽기 | 280 MB/s (0m37.452s) | 132 MB/s (1m19.155s) |
분석결과
- 작은 블럭 (4K, 8K) 에서는 EXT4가 전반적으로 더 빠른 경향
- 1M 에서는 두 파일시스템 비슷한 성능
- 4M 읽기 성능은 XFS가 확실히 강함 (280 MB/s vs 132 MB/s — 거의 2배 차이)
- 일반적인 DB 워크로드라면 EXT4
- 백업서버, 대용량 순차읽기라면 XFS