오류발생
Ec2 서버에서 Jenkins를 사용해 ci/cd를 구축하던 도중에 다음과 같은 오류가 발생했다.
해당 오류의 내용은 마스터 노트에서 스케쥴링 및 빌드를 해주고 있는데 /tmp 디렉터리의 저장공간이 1.0 GiB 이상필요하지만 현재 626.12 MiB가 사용 중이기 때문에 마스터 노드가 사용할 수 없다고 오류가 발생하게 되면서 자동빌드를 할 수 없는 상항이 발생하게 되었습니다.
해결방법
해결 방법 1
노드의 알림 임계 값을 설정...
해당 필드의 값 들을 500Mib로 설정
하지만 당연히 실패 생각해보면 메모리가 부족하다고 경고가 뜬 거인데 메모리를 임계값을 설정해 봤자 당연히 오류가 뜨는 건 당연하다.. 왜 이 생각을 못했을까.......
실패..
해결 방법 2
도커를 통해서 젠킨스를 실행중이니 컨테이너에 실행된 Jenkins의 접속해 보고 그 후의 다음 명령어를 통해 용량을 확인해 봤다.
df -h
사진과 같이 /var/lib/docker/~~ 해당 디렉터리의 파일이 현재 93% 정도 저장공간을 차지하고 있는 것을 볼 수 있었다.
잘 생각해 보니 현재 컨테이너를 통해서 젠킨스를 실행 중이었다. 그래서 이미지를 삭제하고 컨테이너에 실행하고 하면서 쌓인 캐시들이 존재해 그 캐시가 나의 저장공간을 차지하고 있다고 생각이 들었다. 그래서 다음과 같은 명령어를 통해서 도커의 파일을 정리해 줬다.
docker container prune // 사용하지 않는 컨테이너 삭제
docker volume prune // 도커의 저장된 볼륨을 정리
볼륨삭제만 해도 무려 347MB 정도 삭제되는 것을 볼 수 있다.
docker image prune -a // 미사용 중인 이미지를 제거
//한 번에 삭제하는 명령어
docker system prune -a -f // 위에 과정을 무시하고 그냥 한 번에 처리하고 싶을 때 사용 (이미지, 캐시, 네트워크, 빌드 캐시, 컨테이너)
도커가 현재 사용하고 있지 않은 파일들을 삭제해 주는 것을 보있다. 무려 665MB를 삭제해 준 것을 볼 수 있다...
그 후 다시 df -h를 통해 용량을 확인해 보면
사용 가능한 공안이 무려 2.0G까지 확보된 것을 볼 수 있다..
EC2의 프리티어를 사용하는 인스턴스라면 귀찮더라고 충분히... 가격적인 면을 고려한다면 감수해야 하는 부분이라고 생각하다...
열심히.. 삽질하면서 해결하니 기분은 뿌듯하다.. 역시 오류 해결만큼 재미있는 것은 없는 것 같다..ㅎ
참고
'오류관련' 카테고리의 다른 글
[오류] @RequiredArgsConstructor과 @Qualifier 이슈 (0) | 2024.06.18 |
---|---|
[Spring Security] 스프링 시큐리티를 사용한 Controller 단위테스트시 SecurityConfig 오류 해결 (0) | 2024.03.22 |
bulid시에 warning: @Builder will ignore the initializing expression entirely. 경고 발생 해결방법 (0) | 2024.01.27 |
JPA에서 RESTFul API 스택오버플로우 오류 해결(참조 순환) (0) | 2024.01.22 |
[MySQL] MyISAM" via JDBC Statement 오류 (0) | 2023.12.06 |