안녕하세요. 명월입니다.
이 글은 Linux환경에서 디스크 용량 체크와 버그, 해결법에 대한 설명입니다.
로컬에서 윈도우를 사용하다 보면 OS 하드디스크가 부족하면 부족하다고 알림 메시지가 뜨거나 내 컴퓨터로 보면 쉽게 알 수 있는데, 리눅스는 메시지가 따로 뜨는 것도 없고 보통 터미널로 콘솔 운영이다보니 쉽게 알기가 힘듭니다.
저같은 경우는 몇 일전에 갑자기 서버에 있는 모든 프로그램들의 업로드 기능이 멈춰서 무슨 문제인가 봤더니 하드디스크가 꽉 찼더라고요.. 서버 pc다 보니 여러 어플리케이션을 기동시켜서 로그가 이래저래 많이 쌓이네요.. 자주 확인해야 하겠습니다.
그 때 제가 확인한 방법이 「df -h」 명령어였습니다. 루트에서 「du -hs *」로 확인하는 방법도 있습니다.
뭐 아주 간단합니다. 그런데 실제로 서버 환경에서 실행해 보시면 알겠지만 「df -h」가 처리 속도가 매우 빠릅니다.
근데 이게 버그 「df -h」의 경우는 버그가 있습니다.
위 이미지는 제 톰켓서버에 로그가 어마어마 쌓여있습니다. 거의 36기가 파일 두개가 떡하니 있네요.. 로그로...ㅎㅎㅎ
사실 이게 제가 톰켓을 설정을 잘못해서 생긴 현상인데 어쨋든 이유를 확인했으니 로그를 지웠습니다.
그리고 다시 「df -h」와 「du -hs *」를 확인하니....「du -hs *」로 볼 때는 확실하게 60기가 정도가 줄었습니다. 그런데 「df -h」는 그대로네요..
분명히 제가 삭제를 했으니 「du -hs *」가 맞을 것입니다. 그럼 「df -h」 문제라는 건데...
링크 - http://www.freethink.co.kr/?p=278
링크 - https://greenfinger.tistory.com/180
위 두 링크를 참조해 보니 아마 IO 라이브러리와 관계가 있는 것같습니다. 커넥션에 따라 문제가 생긴다는 것인데.. 요번에는 제가 100%까지 안가서 스샷을 남길 수는 없지만, 이전에 이 로그문제 때문에 하드 용량 사용률이 100%까지 간적이 있습니다. 역시 그때도 로그를 다 지웠습니다. 문제는 실제로 파일이 지워졌는데도 디스크가 꽉찼다고 에러가 났습니다.
이게 아마 「df -h」와 관계가 있는 듯 싶습니다. 제 결론은 「du」 명령어는 확실히 물리적으로 데이터를 확인하기 때문에 정확하나 실제 IO의 write, read 함수는 「df」명령어와 관계가 있다.
즉, 실제는 데이터가 비워져도 「df -h」상으로 데이터가 꽉 차있으면 더이상 파일 쓰기가 되지 않는다는 것입니다.
그래서 lsof로 정리할 수 있다고 해서 설치했습니다.
그리고 lsof 명령어를 치니 아래와 같은 결과가 나왔습니다.
확실히 5388이라는 프로그램에서 deleted파일을 잡고 있는 모습이 보입니다. 위 링크를 보면 프로세스를 「kill -9」로 죽이라고 하는데 이건 의미가 없습니다.
저는 이 5388이라는 프로그램이 무엇인지 확실하게 아니 재 기동을 시켰습니다.(tomcat입니다.)
이번에는 「df -h」 명령어로도 용량이 되돌아 왔습니다.
아마 용량으로 디스크에 쓰기가 막히신 분들은 아마도 「df -h」 명령어로 봤을때 용량이 다시 돌아오면 이 문제도 해결될 것입니다.
여기까지 Linux환경에서 디스크 용량 체크와 버그, 해결법에 대해 설명이었습니다.
궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.
'Development note > Linux' 카테고리의 다른 글
[Ubuntu] Python 3.x을 설치하는 방법 (0) | 2020.02.09 |
---|---|
[Ubuntu] PHP를 설치하는 방법과 Composer를 설치하는 방법 (0) | 2019.10.15 |
[Ubuntu] 테마(Arc)를 바꾸는 방법(tweak) (0) | 2019.10.14 |
[Linux] Tomcat에서 캐쉬 메모리 부족 현상 (0) | 2019.07.07 |
[CentOS] 톰캣 설정 - server.xml(Host별 설정, 포트별 설정) (0) | 2019.06.22 |
[CentOS] Java 설치하기 (3) | 2019.06.03 |
[CentOS] tomcat 설치하기 (3) | 2019.06.03 |
[CentOS] mariaDB 설치 (3) | 2019.06.03 |