← 문제 라이브러리
Linux 중급 LINUX-033 · 18분

큰 로그 파일을 지웠는데 디스크 사용률이 그대로 97%

새벽에 웹 서버의 /var 파티션 사용률이 97%라는 경보가 왔습니다.

검수된 문제무료
시나리오

새벽에 웹 서버의 /var 파티션 사용률이 97%라는 경보가 왔습니다. 온콜 담당자가 확인해 보니 nginx 접근 로그가 40GB 넘게 쌓여 있어서 rm으로 지웠습니다. 그런데 df로 보면 사용률이 여전히 97%이고, du로 /var/log를 세어 보면 2GB밖에 되지 않습니다. 이 서버의 logrotate 설정은 지난주 다른 담당자가 정리했습니다. 담당자는 파일시스템이 깨진 것 같다며 재부팅을 하자고 합니다. 디스크가 가득 차면 nginx가 로그를 쓰지 못해 요청 처리까지 멈출 수 있어 시간이 많지 않습니다.

단서
df -h /var ; du -sh /var/log
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p3   50G   46G  1.6G  97% /var

2.1G    /var/log
sudo lsof +L1 | grep deleted
COMMAND  PID USER FD TYPE DEVICE    SIZE/OFF NLINK    NODE NAME
nginx   1321 www   5w  REG  259,3 44023414784     0 1310722 /var/log/nginx/access.log (deleted)
/etc/logrotate.d/nginx (지난주 수정본)
/var/log/nginx/*.log {
    daily
    rotate 7
    compress
    missingok
}

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • df와 du가 서로 다른 값을 보이는 이유
  • 지워진 파일이 공간을 계속 쓰는 경우
점검 체크리스트
  1. df 와 du 결과 비교
  2. lsof +L1 로 지워졌지만 열려 있는 파일 찾기
  3. logrotate 설정에 로그를 다시 여는 단계(postrotate 또는 copytruncate)가 있는지