Skip to content

Df

df (abbreviation for disk free) is a standard Unix computer program used to display the amount of available disk space for filesystems on which the invoking user has appropriate read access. df is usually implemented by reading the mtab file or using statfs.

df first appeared in Version 1 AT&T UNIX.

df 용량이 실제하고 안 맞을 때

시스템을 오랫동안 리부팅 없이 사용하는 경우에 흔히 발견되곤 합니다.

이런 경우에는

  • du 명령으로 확인해 보면 사용량이 많지 않은데,
  • df 명령으로 확인해 보면 남은 용량이 거의 없습니다.

문제 원인

  1. 특정 프로세스가 file descriptor 를 열고,
  2. file descriptor 가 가리키는 파일이 지워지고
  3. 그 프로세스가 여전히 file descriptor 를 열어놓고
  4. 계속해서 write 를 하고 있기 때문입니다.

lsof 명령으로 해당 디렉토리의 파일 상태를 확인할 수 있다. (e.g. lsof /home 이라고 하면 /home 파티션에 관련된 정보만 보여줍니다.)

각 컬럼 정보:

COMMAND     PID     USER   FD      TYPE     DEVICE   SIZE/OFF       NODE NAME

SIZE/OFF 컬럼에 나오는 값이 파일 용량입니다. 이 용량이 비 정상적으로 큰 라인을 찾아서 PID 를 확인 후 lsof -p PID 하면 해당 프로세스 확인 가능. kill -9 PID로 죽이면 된다.

요약

  • du 명령은 파일시스템을 읽어서 정보를 보여주기 때문에 정확하지만 읽어야 할 정보가 많을 경우 응답이 느림.
  • df 명령은 응답이 빠르지만, 특정 상황에서 실제 용량을 반영해 주지 못하는 경우가 발생할 수 있음.

lsof 를 이용해서 문제의 프로세스를 찾고, kill 명령으로 프로세스를 종료시켜도 되지만. 시스템 리부팅이 가능하다면, 리부팅을 해 주는 것도 방법.

See also

Favorite site