피치 못할 사정이 있어 QA 서버에서 이것저것 테스트해 본 뒤 그 결과 반영해 소스를 고쳐서 QA 서버에 pull받으려고 해봤다.
뭐 말하자면 역수출 이라고나 할까.
근데 오류가 난다.
error: file write error (No space left on device)
fatal: unable to write sha1 file
fatal: unpack-objects failed
QA 서버가 하필 AWS EC2라서 별 삽질을 다해봤다. 근데 디스크 용량이 안 돌아온다. df -h
결과는 여전히 /dev/nvme0n1p1
디바이스의 100G
공간이 100% 풀차있다고 나온다. 아니 진짜로 인스턴스를 끄고 볼륨을 바꿔야 된단 말인가? 아무리 봐도 공간이 남는데???
이거 아무래도 AWS 문제가 아니다 싶어서 EC2 no space left on device 대신 linux no space left on device라고 구글에 쳤다.
그랬더니 웬걸.. 자동완성이 하나 뜬다.
리눅스 장치에 공간 없음 근데 공간 있음
😂 나만 이런 건 아니구나!!
거기서부터 파악한 상황 전말은 좀 싱거웠다. 결론을 말하자면 실제 존재하는 파일 문제가 아니고 메모리/임시파일 문제다. 예컨대 어떤 프로세스가 너무 큰 파일을 만들고 그 핸들을 들고 있을 경우 등이 여기에 속하고, 나의 경우가 딱 그랬다. PHP Notice가 엄청 터지는 테스트 스크립트를 그런 줄도 모르고 마구 돌리고 있었기 때문.
그렇다면 그 메모리만 해제해 주면 된다. 의심 가는 속시끄러웠던 서비스만 일단 재기동해 봐도 될 것이다.
sudo systemctl restart httpd.service
그 뒤 다시 확인해본 디스크 상황은... 용량이 무려 99%나 남아있는 상태였다고 한다. 🤣 후딱 pull 받고 끝냈다.
실무를 하다 보면 한 3년에 한 번 정도는 이 오류를 마주치는 것 같은데 번번이 당황한다. 다음에는 진짜로 서비스 재기동부터 할 수 있도록 해야지 그게 제일 안전한 작업이니깐..