예전글을 보면 docker image로 인해 똑같은 에러로 서버가 터진것을 확인 할 수 있었다.
사실 예전에 글을 작성하고 몇달뒤 같은 에러로 서버가 터지고 얼굴형분석 API가 작동하지 않았었다...
용량이 부족하기에 API에서 필요한 이미지 파일 쓰기작업을 할 수 없었고 당시 처리해야할 일이 너무나 많았기에 서버의 용량을 확장하는걸로 급한 불을 해결했다. 😓
당시에는 해야할 일이 많았지만 현재는 여유로워졌기에 모든 가능성을 염두해보고 문제가 발생한 원인을 파악해보려한다.
df -h
20G중 12G를 사용하는 중이고 56%의 용량을 사용하고있는 것을 확인 할 수 있다.
공간이 많이 남았다 생각할 수 있지만 해당 서버는 이전한지 한달도 되지않은 서버이고 이전보다 빠르게 용량이 차고있었다..
다행히 저번처럼 Docker image가 가득차 발생하는 에러는 아니였지만 다시 문제를 찾아야한다.
삽질 경험...
집에서 API테스트를 하던 중 저런 Exception을 발견했다.. Cannot delete 이미지.tmp....
솔직히 이게 문제다 싶었다. 이미지 파일을 삭제 못하면 당연히 디스크 용량이 가득차지!! 라고 생각하며 tmp파일이 저장되는 경로를 확인해 보았다... 근데 웬걸 아무 문제 없다. 모든걸 정상적으로 처리하고있었다..
https://www.inflearn.com/questions/756534/%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%A4%91-%EC%97%90%EB%9F%AC-%EB%B0%9C%EC%83%9D
알고보니 spring버전과 window에서 발생하는 에러였던것.... 어쩐지 dev, prod 환경에서 보지 못한 에러였다 싶었다. 😥
우선 어디에서 디스크가 꽉 차는건지 파악해보기로 했다.
파일의 경로를 따라가며 크기를 보던 중
docker log가 5기가인걸 확인할 수 있다...ㅎㅎ
docker의 loggin driver는 기본적으로 json-file의 경우 max-size는 -1로 설정되어있다. max-size가 -1은 무제한이라는 의미이다..ㅎㅎ
docker run --log-driver json-file --log-opt max-size=10m .....
위와같이 docker를 실행시킬때 사이즈를 결정하여 문제를 해결했다...