본문 바로가기
프로젝트/GCP+Python | 성결대학교 공지사항 알리미 앱

[성결대학교 공지사항 알리미 디스코드 채널 만들기] #6. 메모리 오류 해결

by 카랑현석 2024. 5. 27.

문제 상황

- driver는 정상적으로 생성되었는데 driver.get(site명) 에서 사이트를 열지 못하는 문제가 발생했습니다.

 

 

문제 파악

- 로컬 컴퓨터에서도 동일 코드로 실행해봤는데, 로컬 컴퓨터에서는 정상적으로 잘 작동 되었습니다.

=> 코드 문제는 아닐 가능성이 높다고 판단

 

원인 파악을 위해 GCP의 Cloud Monitoring으로 VM 인스턴스 로그를 수집할 환경을 구축하였습니다.

1) 웹 서버 설치

sudo apt-get update
sudo apt-get install apache2 php7.0

 

 

2) Monitoring agent 패키지 저장소 추가

curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh && \
sudo bash add-monitoring-agent-repo.sh && \
sudo apt-get update

 

 

3) Monitoring agent 설치

- 사용 가능한 버전 확인

sudo apt-cache madison stackdriver-agent

 

- 원하는 agent 버전 설치

sudo apt-get install -y 'stackdriver-agent=6.*'

 

- agent 동작 확인

sudo service stackdriver-agent status

 

4) Logging agent 설치

 

- Logging agent 패키지 저장소 추가

curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh && \
sudo bash add-logging-agent-repo.sh && \
sudo apt-get update

 

- Logging agent 사용 가능 버전 확인

sudo apt-cache madison google-fluentd

 

- Logging agent 원하는 버전 설치

sudo apt-get install -y google-fluentd

 

- Logging agent 동작 확인

sudo service google-fluentd status

 

5) uptime check 만들기 (업타임 체크 만들기)

https://cloud.google.com/monitoring?hl=ko

 

1) 우상단 업타임 체크 만들기 클릭

 

2) '대상'에서 리소스 유형은 'Instance'로 선택
3) '응답 확인' 에서 위 그림과 동일하게 설정
4) 알림 설정, 'MANAGE NOTIFICATION CHANNELS' 버튼 클릭

 

5) 인스턴스 이상상황 발생 시 알림을 보내줄 연락처 입력

 

6) 대시보드 생성

1) 좌측 대시보드 클릭 2) 'CREATE DASSHBOARD' 버튼 클릭
3) 위젯 추가를 누른다.
4) 원하는 위젯 형태를 선택한다.
5) 측정항목을 선택합니다. / 측정항목들 중 모니터링(확인) 하고 싶은 것을 선택합니다. (보통 VM instance 에서 인기 측정항목에 있는 것을 모니터링 합니다.)

메모리를 보고 싶으면, VM Instance > Memory > Memory utilization 을 선택. 

 

6) Monitoring 정상 작동 테스트 

 

1) VM 인스턴스 > 중지 (인스턴스 중지) / 2) 메일( '5) 업타임 체크에서 입력한 연락처') 확인

 

문제 해결 (해결 완료)

확인해보니 코드 실행 시 메모리가 높아졌습니다.

그래서 메모리 초과로 인해 크롬 사이트가 열리지 않아 driver.get() 이 먹히지 않았던 것입니다.

 

크롬을 계속 키고 driver.quit() 을 하지 않아 메모리에 할당되고나서 없어지지 않아 계속 메모리 점유를 하고 있는 문제로 분석하고 driver.quit()을 사용하고 인스턴스의 메모리를 늘려줍니다.


<인스턴스의 메모리를 늘리기 - 머신구성 스펙업>

1) VM 인스턴스 > 자신의 인스턴스 선택

 

2,3 ) 인스턴스 중단
4) 머신 유형 변경