在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警:<br>
서버에 로그인하고 df -Hl을 통해 확인하세요
알람 정보와 일치합니다. 그러면 디스크 공간이 가득 차게 되는 디렉터리나 파일을 찾아야 합니다.
비교적 어리석은 방법은 루트 디렉터리에서 du -hs 명령을 사용하여 각 디렉터리가 차지하는 공간을 나열하는 것입니다
그런 다음 동일한 방법을 사용하여 해당 디렉토리에서 계속 검색하세요
상대적으로 더 효율적인 방법은 du의 -d 매개변수 또는 -max-length를 통해 쿼리의 디렉터리 깊이를 설정하는 것입니다. 디렉터리 깊이가 증가할수록 쿼리된 디렉터리가 많이 표시됩니다. grep을 통해 필터링할 수 있습니다.
으아악이런 방법으로 디스크 공간을 차지하는 큰 디렉토리를 G 또는 T 단위로 검색하여 정렬할 수 있습니다
또는 find를 통해 쿼리할 수도 있습니다
으아악효율성 측면에서 find는 du보다 빠르고 유연합니다.
이 두 가지 방법을 사용하면 디스크 공간을 차지하는 원인을 빠르게 찾을 수 있습니다.
그렇게 간단하다고 생각하시나요? find나 du를 통해 오랜 시간 동안 검색을 하게 되면 위의 두 그림처럼 전체 점유 공간이 df가 점유하는 디스크 공간과 매우 다르다는 것을 여러 번 발견하게 될 것입니다.
df로 보면 디스크 사용량이 37G인데, 루트 디렉터리에서 du -hs로 보면 총 합이 거의 10G에 가깝고, 숨겨진 디렉터리도 없는데, 그 공간을 누가 먹고 있는 걸까요?
분명히 삭제된 파일이 차지하는 공간이 있습니다. 파일은 삭제되지만 리소스는 해제되지 않습니다.
전에 아주 유용한 명령어를 소개했는데, lsof, 다음 명령어로 확인할 수 있어요
으아악약 28G 정도의 대용량 로그 파일이 있다는 것을 결과를 보면 알 수 있는데, 삭제되었으나 공간이 공개되지 않는 경우가 많습니다.
해당 해결 방법은 Tomcat 애플리케이션을 다시 시작하여 공간을 확보하는 것입니다
사람들이 자주 물어보는 또 다른 질문이 있는데 바로 df를 통해 본 디스크
사이즈에 비해 중고와 사용 가능의 합이 부족하고 일부가 이유 없이 먹히는 것을 발견하게 될 것입니다
사실 이는 Linux 파일 시스템의 보안 정책으로, 기본적으로 루트 사용자를 위해 디스크 공간의 5%를 비상용으로 예약합니다. 이렇게 하면 하드 디스크가 가득 찼을 때 일부 주요 응용 프로그램(예: 데이터베이스)에 약간의 여유가 있어 즉시 충돌이 발생하지 않습니다
tun2fs를 통해 예약된 공간의 비율을 수정할 수 있습니다
으아악아래 사진에서 전후 비교를 보실 수 있습니다
먹어버린 공간이 공개됩니다!
위 내용은 리눅스 디스크 공간이 비정상적으로 꽉 찼는데 어떻게 확인하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!