2010-12-12 5 views
4

centos 5.5를 실행하는 vps 슬라이스가 있습니다. 디스크 공간이 15 기가 있어야하지만 df에 따르면 디스크 공간 사용량이 두 배로 늘어납니다. du -skh * in/centos 5.5에서 df와 크게 다른 크기를 반환합니다.

내가 du -skh *를 실행

은에/루트로 내가 얻을 :

[[email protected] /]# du -skh * 
0  aquota.group 
0  aquota.user 
5.2M bin 
4.0K boot 
4.0K dev 
4.9M etc 
2.5G home 
12M  lib 
14M  lib64 
4.0K media 
4.0K mnt 
299M opt 
0  proc 
692K root 
23M  sbin 
4.0K selinux 
4.0K srv 
0  sys 
48K  tmp 
2.0G usr 
121M var 

이 내가 기계에 업로드 한 것과 일치하고, 5gigs 약까지 추가합니다. 내가 df을 실행할 때

는하지만 내가 얻을 : 이미 거의 12 기가를 사용하여 저를 보여주고있다

[[email protected] /]# df 
Filesystem   1K-blocks  Used Available Use% Mounted on 
/dev/simfs   15728640 11659048 4069592 75%/
none     262144   4 262140 1% /dev 

.

무엇이이 불일치를 일으키는 지와 내가 그것에 관해 할 수있는 것이있다. 나는 15 기가 헤르쯔를 기반으로 서버를 계획했지만, 이제는 기본적으로 약 7 기가의 물건을 가지고있다.

감사합니다.

답변

11

이 효과의 가장 일반적인 원인은 삭제 된 열린 파일입니다.

커널은 삭제시 사용 중이 아닌 경우에만 삭제 된 파일의 디스크 블록을 해제합니다. 그렇지 않으면 파일이 닫힐 때까지 또는 시스템이 재부팅 될 때까지 연기됩니다. 여전히 열려있는 파일 기술자를 누른 상태에서

  • 프로세스가 생성하는 임시 파일을

  • 열립니다

    에는 임시 파일 주위에 남아 있지 않도록하는 일반적인 유닉스 세계의 트릭

    는 다음과 , 프로세스 링크 해제 (즉, 삭제) 파일이 프로세스는 읽고 일반적으로 파일 기술자

  • 을 사용하여 파일에 기록

  • 당신이 일을 끝낼 때

  • 프로세스에서 파일 디스크립터를 닫고, 프로세스 (또는 시스템) 임시 파일이 이미 삭제, 예기치 않게 종료되고 더 청소가 필요없는 경우 커널은 공간을

  • 를 해제합니다.

  • 보너스로, 파일을 삭제하면 임시 파일을 만들 때 이름 충돌의 가능성이 줄어들며 실행중인 프로세스에 대한 추가 계층을 제공합니다.

이 문제는 프로세스가 갑자기 자신의 발 아래에서 가져온 된 파일을 처리하지 않도록합니다, 또한 프로세스가 파일을 삭제하기 위해 상호 협의 할 필요가 없습니다. 그러나 Windows 시스템에서 오는 사용자에게는 예기치 않은 동작이 발생합니다. 일반적으로 사용중인 파일을 삭제할 수 없기 때문입니다.

lsof 명령을 루트로 실행하면, 열려있는 모든 파일을 표시하고이를 삭제 삭제 된 파일 구체적를 나타냅니다 : 중지 및 유죄 프로세스를 다시 시작하거나 서버를 재부팅하면 해결해야

# lsof 2>/dev/null | grep deleted 
bootlogd 2024  root 1w  REG    9,3   58  917506 /tmp/init.0W2ARi (deleted) 
bootlogd 2024  root 2w  REG    9,3   58  917506 /tmp/init.0W2ARi (deleted) 

을 이 문제.

삭제 된 파일은 예를 들어 마운트 된 파일 시스템 이미지와 같은 경우에도 커널이 열어 놓을 수 있습니다. 이 경우 파일 시스템을 마운트 해제하거나 서버를 재부팅해야합니다.

귀하의 경우, "누락 된"공간의 크기로 판단하여 VPS를 설치하는 데 사용한 파일에 대한 참조를 찾으십시오. 설치 후 삭제 한 Centos DVD 이미지.

+0

커널이 파일을 보유하고 있다는 것을 언급 해 주셔서 감사합니다. 따라서 lsof는 그것을 보여주지 않습니다. 루프 장치와 관련된 큰 파일 (스파 스 lvm 볼륨 그룹)이 있었는데이 공간이 내 자유 공간을 먹고 있었지만 lsof는 아무것도 표시하지 않았습니다. – Augusto

2

나는 FreeBSD 서버에서 동일한 문제가있었습니다. 재부팅이 도움이되었습니다.

+0

당신은 바로 그것을 재부팅이야. – Kalendae

3

기존 파일의 "맨 위에"파티션을 마운트하면 문제가되지는 않지만 다른 문제가 발생했습니다.

이렇게하면 마운트 된 파티션의 디렉토리 (마운트 포인트)에있는 기존 파일을 효과적으로 숨길 수 있습니다.

해결 방법 : 마운트 된 파티션에 열린 파일이있는 프로세스를 중지하고, 파티션을 마운트 해제하고, 마운트 지점 디렉토리에 나타나는 파일을 찾아 이동/제거하십시오.

관련 문제