리눅스 서버 오류

hello0U0·2022년 11월 20일
0

디스크 용량이 부족한 경우

시작은 coredump였다. 처음에는 모델의 배치를 너무 크게 잡아서 그런건가 했는데 아니었다.
여러 다른 코드들도 돌려보다가 mkdir에서 os error : No space left on device 에 주목하고 찾아봤다. 디스크에 용량이 부족할 수 있다고 한다.

터미널에 df 를 찍으면 다음과 같이 나온다.

Avail(사용가능)이 0인 것으로 보아 문제가 있는 것은 맞다.

du -sh *를 하면 현재 경로의 하위 파일(폴더)에 용량이 얼마나 되는지 알 수 있다.
용량이 많이 차지하는 폴더로 옮겨가며 계속 du -sh *을 찍은 결과 아래와 같이 뜬다.

이 폴더는 현재 내가 작업 중인 폴더다. step_saved_model이 유난히 용량이 많은 것을 볼 수 있다. checkpoint를 계속 쌓아서 그런 것 같다.(코드를 너무 많이 돌리고 지우지 않아서 그런가보다.)

안의 내용을 어느정도 지우고 나면 아래와 같이 용량이 줄어들어있다. (근데 roberta large checkpoint 3개만으로 23기가라니 미쳤다.

df du 용량차이

df -hdu -sh *을 했을 때 용량차이가 계속 있었다. 처음에는 별 문제 없겠지 했는데 체크포인트가 좀 생긴다 싶으면 바로 디스크용량이 꽉 차는 문제가 있어서 힘들었다. 그래서 df du 차이를 찾아보니. 실제로 파일을 지워도 df에서는 이것이 반영이 안되는 경우가 있다고 한다. 실제로는 지웠지만 디스크가 있다고 판단하는 듯 하다.

이럴 때는 lsof | grep deleted 명령어를 치면 된다.

그러면 아래와 같이 뜬다

2711588633 부분이 SIZE/OFF로 이것이 큰 프로세스의 ID 10468을 죽이면 된다.
kill 10468을 하면 df -h를 입력했을 때 용량이 줄어든 것을 확인할 수 있다.

참고자료 : https://syuda.tistory.com/47

profile
hello world

0개의 댓글