티스토리 뷰

 

 

정상인 상황

 

  • SSH로 서버에 직접 접속해서 Spring Boot 3.3.2 버전을 jar로 빌드하는 것은 정상
  • SSH로 서버에 직접 접속해서 배포 쉘 스크립트 실행하는 것도 정상
    (스프링 기동 죽이기 → 프로젝트 빌드 →  스프링 백그라운드로 기동) 

 

 

 

 

문제 상황

 

  • GitHub Action을 이용해서 파이프 라인을 구성하고 배포를 진행하는데 빌드가 안되어서 무한 로딩, 서버에 접근도 못하는 현상 발생
  • GitHub Action을 이용해서 배포 쉘 스크립트를 실행 시켰지만 빌드가 무한 로딩이 되며, 서버에 접근도 못하는 현상 발생

 

 

 

 

문제 해결 방법 스왑 메모리!

 

1. 스왑 파일 만들기

# 1
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# 2
sudo dd if=/dev/zero of=/swapfile bs=128M count=16

# 즉, 둘다 2GB 크기의 스왑파일을 /swapfile 경로에 생성한다는 명령어이다.
  • dd : 데이터를 특정 크기와 개수로 복사하는 명령어.
  • if : 입력 파일(어디서 읽을지)을 지정.
  • of : 출력 파일(어디에 쓸지)을 지정.
  • bs : 한 번에 처리할 데이터 덩어리 크기를 지정
  • count : 몇 개의 블록을 처리할지 지정

 

bs와 count가 다른데 뭐가 더 좋아요?

  1. bs=1M count=2024
    • 1MB 단위로 2048번 작업.
    • 블록 크가 작아서 처리 횟수가 많아짐 → 즉, 느려질 수 있다.
    • 세밀한 작업이 필요할 때 적합.
  2. bs=128M count=16
    • 128MB 단위로 16번 작업
    • 블록 크기가 커서 처리 횟수가 적음 → 즉, 상대적으로 빠르다.
    • 빠르게 파일 생성이 필요할 때 적합.
    • 평균적

 

 

 

2. 스왑파일 권한 설정

# 파일 권한 설정
sudo chmod 600 /swapfile
  • 첫 번째 숫자(6) : 파일 소유자(owner)의 권한
    • 6 = 읽기(4) + 쓰기(2) = 읽기/쓰기 권한
  • 두 번째 숫자(0) : 그룹(group)의 권한
    • 0 = 아무 권한 없음
  • 세 번째 숫자(0) : 기타 사용자(other users)의 권한
    • 0 = 아무 권한 없음

 

 

 

 

3. 스왑 파일을 스왑 공간으로 설정

# 스왑 파일을 스왑 영역으로 초기화
sudo mkswap /swapfile

 

 

 

 

 

4. 스왑 파일 활성화

# 스왑 파일 활성화
sudo swapon /swapfile

만약에 인스턴스 재기동 한 뒤에도 스왑 자동 활성화를 하고 싶다면?

  1. sudo nano /etc/fstab 파일을 열고
  2. /swapfile none swap sw 0 0 항목 추가

 

 

 

 

5. 스왑 설정 확인

free -h

# 상태 확인 예시
#             total        used        free      shared  buff/cache   available
# Mem:         2.0G        1.6G        0.4G      0.1G        0.2G        0.4G
# Swap:        2.0G        0.0G        2.0G

 

 

 

 

이렇게 하면 설정 끝

 

 

 

 

 

스왑 메모리가 꽉 차서 다시 사용하고 싶다면?

 

1. 스왑 해제

sudo swapoff /swapfile

 

2. 스왑 파일 삭제

sudo rm /swapfile

 

 

이후 생성하는 1번부터 다시 진행하면 됩니다.

 

 

 

 

감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함