df — 디스크 여유 공간 확인
Linux / 파일 및 디스크 관리 / df.html
💬 "df 명령어"
du가 폴더별 사용량을 보여준다면, df는 마운트된 파일시스템(파티션) 단위로 전체·사용·여유 용량을 보여줍니다. 서버 상태 점검에서 가장 먼저 치는 명령어 중 하나입니다.
기본 출력은 1K 블록 단위라 읽기 불편하므로 실무에서는 항상 -h를 붙입니다.
- 개념: 파일시스템별 디스크 사용 현황을 확인합니다. 어느 마운트 지점이 위험한지 한눈에 봅니다.
- 왼쪽 열:
Filesystem— 마운트된 장치(예: /dev/vda1) 또는 가상 파일시스템(tmpfs) 이름입니다. - 오른쪽 열:
Mounted on— 해당 장치가 붙어 있는 경로입니다. 실제로 문제가 되는 지점입니다. - Size / Used / Avail: 전체 / 사용 중 / 남은 용량입니다. Avail이 0에 가까우면 곧 쓰기가 실패합니다.
- Use%: 사용률입니다. 90%를 넘으면 로그 회전·정리를 검토해야 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-h | 사람이 읽기 쉬운 단위(K/M/G)로 출력 |
-T | 파일시스템 타입(ext4, xfs, tmpfs 등)을 함께 표시 |
-i | 용량 대신 inode 사용량을 표시 (파일 개수 고갈 진단) |
-x tmpfs | tmpfs 같은 가상 파일시스템을 제외하고 보기 |
--total | 맨 아래에 전체 합계 줄을 추가 |
필수 명령어 조합 3가지
df -h— 마운트별 용량을 보기 좋은 단위로 확인 (가장 기본)df -hT -x tmpfs -x devtmpfs— 실제 디스크만 골라서 타입과 함께 보기df -ih /var— 용량은 남았는데 파일이 안 만들어질 때 inode 고갈 확인
💬 "문제 원인을 좁혀가는 과정으로 예시 들어줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 어느 마운트가 문제인지 확인
전체 마운트를 보고 사용률이 높은 지점을 찾습니다.
df -hT -x tmpfs
2단계 · 그 안에서 범인 찾기
문제 마운트로 이동해 폴더별 사용량을 큰 순서로 정렬합니다.
cd /var && du -sh * | sort -h | tail -5
3단계 · 정리 후 반영 확인
로그를 비우거나 오래된 백업을 지운 뒤 다시 확인합니다. 지웠는데도 수치가 그대로면 프로세스가 파일을 잡고 있는 것입니다.
df -h /var && lsof +L1 | head
실무에서는 이렇게 씁니다
1. 배포 전 용량 점검
상황 — 신규 릴리스를 올리기 전에 대상 파티션에 여유가 있는지 확인해야 합니다.
df -h /var /data && df -hT -x tmpfs
결과 — Avail이 릴리스 용량(예: 2G)보다 충분한지 확인합니다. 90% 이상이면 배포를 멈추고 정리를 먼저 합니다.
포인트 — 배포 스크립트 맨 앞에 df 검사를 넣어두면 디스크 부족 장애를 예방할 수 있습니다.
2. 용량은 남았는데 파일 생성 실패
상황 — 여유 공간은 40%인데 새 로그 파일이 만들어지지 않고 No space left on device가 뜹니다.
df -ih /var
결과 — IUse%가 100%면 inode가 소진된 상태입니다. 작은 파일이 많은 디렉터리를 정리해야 합니다.
포인트 — 용량(%)만 보면 놓치는 대표적 장애입니다. 점검 항목에 df -ih를 함께 넣습니다.
주의할 점
- Avail이 0이어도 root에게는 5% 예약 블록이 남아 있어 관리자만 잠깐 쓸 수 있습니다.
- Use%가 90%를 넘으면 동작이 불안정해지기 시작합니다. 임계치 알림을 걸어둡니다.
- NFS 등 네트워크 파일시스템은 응답이 느려 df가 멈춘 것처럼 보일 수 있습니다.
- tmpfs와 overlay는 메모리/이미지를 쓰므로 실제 디스크 용량과 다릅니다. -x로 제외합니다.
실제 실행 화면
마운트별 용량과 사용률을 보기 좋은 단위로 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.