본문으로 건너뛰기

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

현대 IT 서비스 환경에서는 대규모 데이터 저장과 고성능 I/O 처리가 필수적입니다.
특히 SSD 기반 블록 스토리지의 도입과 파일 시스템의 선택은 성능, 안전성, 확장성에 있어서 큰영향을 미칩니다.

본 문서는 여러 파일 시스템 중에서도 가장 널리 사용되는 EXT4, XFS 등 주요 리눅스 파일시스템의 특성과 성능을 비교하고,
실 서비스 환경(백업서버 등)에서의 적용 사례와 최적화 방안을 제시하는 것을 목적으로 합니다.
또한, dd와 fio같은 벤치마크 도구를 활용해 스토리지 성능을 측정하고, MRTGNetdata를 통해 실시간 시스템 상태를 시각적으로 모니터링함으로써,
파일시스템 선택 및 튜닝 시 참고 자료로 활용하실 수 있도록 구성하였습니다.

파일 시스템별 기본 특징

File system특징
EXT4안정성 높고 범용적으로 사용
대부분의 리눅스 배포판에서 기본사용되며 저용량 파일 처리에 유리
디스크 복구 도구(e2fsck) 안정적
XFS대용량 파일 처리에 최적화
병렬 입출력 처리에 강점이 있으며 파일 시스템 확장(online grow) 용이
백업/저장소 시스템에 적합
Btrfs스냅샷, 체크섬 등 고급 기능 지원
다중 디바이스 구성 가능하며 RAID 기능 내장
실사용에서는 안정성 및 복구 문제 보고
ZFS데이터 무결성, 압축, 중복 제거 등 고급 기능 제공
메모리 사용량이 많음(ZFS ARC 캐시)
RAID-Z, 자동복구 기능이 우수하며 주로 고급 NAS 및 엔터프라이즈 환경에서 사용

EXT4 vs XFS 파일시스템 성능 비교

1. dd 디스크 성능 측정

테스트 환경

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 IOPSXFS BandwidthXFS LatencyEXT4 IOPSEXT4 BandwidthEXT4 Latency
랜덤 쓰기2370.95 MB/s167 ms1200.48 MB/s333 ms
랜덤 읽기17.5k71.5 MB/s226 us285k1112 MB/s135 us
순차 쓰기73.0k303 MB/s53 us21.1k86.6 MB/s188 us
순차 읽기76.1k312 MB/s52 us75.7k310 MB/s52 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)

BPSPPS
항목결과
네트워크 링크 속도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)

BPSPPS
항목결과
네트워크 링크 속도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 성능 그래프)

콘솔 대시보드 페이지

항목XFSEXT4
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 등) 을 함께 고려하시는 것이 좋습니다.