centos 7.0을 실행하는 EC2 인스턴스의 하드 디스크 공간은 느리게 소모되며 다시 시작한 후 새로 고쳐집니다.
내용: 기본 OS, Cloudwatch 에이전트, CodeDeploy 에이전트, nginx, 안티 바이러스 MacFee, Java 애플리케이션(로그 파일 제어).
재부팅 전 스크린샷 1: 사용된 디스크 공간75%
이 스크린샷을 바탕으로 가장 공간을 많이 차지하는 파일 10개를 찾았습니다. 맨 위에는 /proc가 있습니다.
스크린샷 2 재부팅 후: 사용된 디스크 공간9%
사용 중인 파일이 새로 고쳐졌는데 문제가 애플리케이션에 의해 발생했는지 아니면 다른 구성 요소에 의해 발생했는지 확인할 수 없었습니다.
답변1
출력을 잘못 읽었습니다. 문제의 줄은 사용하도록 요청된 일부 파일을 읽을 수 없기 /proc
때문에 오류 메시지입니다 . 이는 해당 파일이 시스템에서 가장 큰 10개의 파일 중 하나임을 나타내지 않습니다. 아무튼 다음과 같이du
find
/proc
스티브언급한 바와 같이 /proc
자체 가상 파일 시스템이며 드라이브의 공간을 차지하지 않습니다.
관련 없는 파일을 나열하지 않으려면 find
이 옵션을 사용하여 파일 시스템 경계를 넘지 않도록 지시 할 수 있습니다 -xdev
.
문제를 일으키는 것으로 보이는 파일은 다음 /var/log/awslogs.log
과 같습니다 /var/log/awslogs.1
. 첫 번째 명령은 해당 파일을 시스템에서 가장 큰 두 개의 파일로 나열하고 두 번째 명령의 출력에는 표시되지 않습니다(또는 오히려 더 작습니다. awslogs.log.1
더 자세히 이해합니다). 목록).
답변2
이는 stdout을 파이프하고 stderr을 억제하지 않을 때 발생하는 현상입니다.
작업을 완료하기 전에 전체 입력 버퍼를 가져야 하기 때문에(분명히) sort
검색이 완료될 때까지 실제로 출력이 전달되기 시작하지 않습니다.head
find
그러나 stderr를 억제하지 않기 때문에 파일 du
을 보고 시작하는 사이에 존재하지 않는 파일에 대해 오류가 보고되고 이러한 오류 메시지는 파일이 발생할 때 보고됩니다(stderr은 버퍼링되지 않기 때문입니다).find
du
정렬 및 헤더 파이프 없이 find 명령을 실행하면 어떤 일이 발생하는지 확인할 수 있습니다.