파일 시스템 성능 비교 및 특징
현대 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
공통 테스트 환경
fio(Flexible I/O), MRTG, netdata 테스트는 아래와 같은 공통 환경에서 수행하였습니다.
fio(Flexible I/O Tester)는 다양한 입출력 패턴을 시뮬레이션하여 디스크나 스토리지의 성능을 정밀하게 측정하고 테스트할 수 있는 유연한 벤치마킹 도구
MRTG: 네트워크 트래픽을 주기적으로 수집해 그래프로 시각화하는 SNMP 기반 트래픽 모니터링 도구
Netdata: 실시간 리소스 모니터링 도구로, CPU, 메모리, 디스크, 서비스 상태 등을 웹 UI로 지원
- 디스크 포맷: XFS, EXT4 (각각 테스트 시 별도 마운트 후 수행)
- 디스크 구성: SSD 기반 블록 스토리지
- 네트워크: 20Gbps NIC
- 테스트 내용: 6개 동시 백업 작업 진행
- 측정 도구: MRTG, Netdata (
app.disk_physical_io
), fio - OS : Rocky linux 8.10
2. fio(Flexible I/O) 디스크 성능 측정
fio --name=rand_write_test \
--filename=/mnt/test_ext4/testfile \
--rw=randwrite --bs=4k --direct=1 --size=1G \
--numjobs=4 --iodepth=32 --runtime=60 \
--group_reporting
주요 테스트 패턴 설명
테스트 종류 | 옵션 값 | 설명 |
---|---|---|
랜덤 쓰기 | --rw=randwrite | 데이터베이스 워크로드 유사 환경 |
랜덤 읽기 | --rw=randread | 캐시 및 SSD 성능 영향 큼 |
순차 쓰기 | --rw=write | 로그 기록 및 백업에 유사 |
순차 읽기 | --rw=read | 대용량 백업 복구 성능 측정 |
메모리에 남아있는 캐시 제거
sync; echo 3 > /proc/sys/vm/drop_caches
디스크 I/O 요청이 실제 디스크로 직접가지 않고 페이지 캐시(page cache)라는 메모리 영역을 먼저 사용하게 됩니다.
이 때문에 I/O 성능 테스트를 할 때 캐시가 개입되면 디스크 자체의 순수 성능이 아니라 메모리 속도를 측정하게 되는 문제가 발생되기에
디스크 성능을 정확히 측정하고 일관성있는 동일 조건을 확보를 위해 제거합니다.
⚠️ 주의: 운영 중인 서버에서 위 명령은 메모리 캐시를 비워버려 일시적인 성능 저하가 발생할 수 있으므로, 벤치마크 전용 환경에서만 사용하시기 바랍니다.
fio 측정 결과표 (XFS vs EXT4)
테스트 종류 | XFS IOPS | XFS Bandwidth | XFS Latency | EXT4 IOPS | EXT4 Bandwidth | EXT4 Latency |
---|---|---|---|---|---|---|
랜덤 쓰기 | 237 | 0.95 MB/s | 167 ms | 120 | 0.48 MB/s | 333 ms |
랜덤 읽기 | 17.5k | 71.5 MB/s | 226 us | 285k | 1112 MB/s | 135 us |
순차 쓰기 | 73.0k | 303 MB/s | 53 us | 21.1k | 86.6 MB/s | 188 us |
순차 읽기 | 76.1k | 312 MB/s | 52 us | 75.7k | 310 MB/s | 52 us |
- 순차 쓰기 / 순차 읽기 성능에서는 XFS가 EXT4 대비 우수 (3~4배 수준)
- 랜덤 쓰기 성능도 XFS가 더 높음.
- EXT4는 랜덤 읽기에서 높은 IOPS를 보였으나, 이는 SSD 캐시 영향으로 실제 백업 workload와는 무관
- 백업 서버, 대용량 순차 IO 용도에서는 XFS 사용 권장
- EXT4는 범용적이지만 고성능 IO 목적에는 XFS가 더 적합
- IOPS : 초당 처리 가능한 입출력(작은 단위의 IO) 횟수 (Input/Output Operations Per Second)
- Workload : 서버에 가해지는 데이터 처리 작업량 또는 작업 부하 유형
3. MRTG 트래픽 모니터링
FTP를 이용해서 데이타를 업로드했을때 각 파일시스템별 트래픽 수치입니다.
동일 조건에서 파일 시스템만으로도 약 30% 이상 차이가 나타납니다.
XFS 디스크 적용 시 네트워크 및 BPS 성능 (bond0)
BPS | PPS |
---|---|
![]() | ![]() |
항목 | 결과 |
---|---|
네트워크 링크 속도 | 20 Gb/s |
디스크 유형 | XFS |
최대 BPS (수신) | 11.2 Gb/s (55.8%) |
최대 PPS (수신) | 923.0 kpps |
- 20 Gb/s 네트워크 환경에서 XFS 파일시스템 사용 시 최대 BPS 11.2 Gb/s, 최대 PPS 923.0 kpps 성능을 기록
- 디스크 IO 병목 없이 안정적인 고속 백업 처리 가능 상태로 평가
- XFS 디스크 IO 성능 정상, 네트워크 자원 활용 우수
EXT4 디스크 적용 시 네트워크 및 BPS 성능 (bond0)
BPS | PPS |
---|---|
![]() | ![]() |
항목 | 결과 |
---|---|
네트워크 링크 속도 | 20 Gb/s |
디스크 유형 | EXT4 |
최대 BPS (수신) | 8.4 Gb/s (42.4%) |
최대 PPS (수신) | 701.8 kpps |
- 20 Gb/s 네트워크 환경에서 EXT4 파일시스템 사용 시 최대 BPS 8.4 Gb/s, 최대 PPS 701.8 kpps 성능을 기록
- 대용량 백업 시 디스크 IO 처리 성능 영향으로 네트워크 활용률이 낮아지는 경향을 보임.
- 현재 상태는 정상 범주이나, 고속 병렬 백업이 요구되는 경우 XFS 사용 또는 IO 최적화 필요
4. netdata disk 모니터링
측정 결과 비교(XFS 성능 그래프)
측정 결과 비교(EXT4 성능 그래프)
항목 | XFS | EXT4 |
---|---|---|
Peak I/O | 약 1.75 GiB/s(초반), 이후 1.5 GiB/s 이하 | 약 1.5 GiB/s (초반), 이후 1.0 GiB/s 이하 |
평균 쓰기 속도 | 약 1.5 GiB/s | 약 0.75 ~ 1.0 GiB/s |
쓰기 패턴 | 안정적 고속 쓰기 유지 | 중간 속도 유지, XFS 대비 낮음 |
병목 여부 | backlog 경고 발생, 성능 한계 근접 | backlog 없음 (추정), 속도 낮음으로 안정적 |
효율성 | 고성능 디스크에서 유리 | 저사양/안정성 우선이면 사용 가능 |
최종 결론 및 권장 사항
XFS 파일시스템은 고성능 SSD 및 NVMe 기반 블록 스토리지 환경에서 높은 순차 I/O 처리 성능과 안정적인 Throughput을 보여주었습니다.
특히, 대규모 백업, 로그 수집, 영상 데이터 저장 등 고용량·고속 쓰기 요구가 높은 서비스 환경에 적합합니다.
반면, EXT4 파일시스템은 범용성 및 안정성이 뛰어나며, 중·저용량 데이터 처리와 일반적인 서버 환경에서 충분한 성능을 발휘합니다.
다만, 고성능 병렬 백업이나 10Gbps 이상의 네트워크 환경에서는 XFS 대비 성능 제한이 발생할 수 있습니다.
따라서,
- 백업 서버, 데이터 웨어하우스, 로그 분석 시스템 등 대용량 처리 중심 서비스에는 XFS 파일시스템 사용을 권장합니다.
- 일반 서비스 서버, 웹서버, 범용 파일서버 환경에서는 EXT4 파일시스템으로도 충분한 성능을 기대할 수 있습니다.
또한, 성능 최적화를 위해 파일시스템 선택 외에도 디스크 구성(RAID 여부), I/O 스케줄러 설정, 커널 파라미터 조정(vm.dirty_ratio 등) 을 함께 고려하시는 것이 좋습니다.