재학습/오류

[AWS EC2] 프로세스 실행 중 행(Hang)현상 원인파악

재삉 2023. 1. 1. 19:56
반응형

개요

무료계정으로 제공되는 EC2 프리티어에 도커라이징처리가 된 두 개의 어플리케이션을 띄우고 있다.

그런데 실행절차마다 행이걸림.

 

행 현상

하드웨어결함, 스레드문제, 메모리부족, 리소스경합, 데드락

EC2 대시보드 결과 1/2개 검사통과, 즉 상태이상 확인

상세페이지 확인결과, 인스턴스 상태 검사 - 연결성 검사 실패

 

인스턴스 상태확인

  • 운영체제 부팅 실패
  • 올바른 볼륨 탑재 실패
  • CPU 및 메모리 소진
  • 커널 패닉
  • 네트워크 이상

행 진입시 상태를 고려해보면,

네트워크이상, 운영체제부팅실패, 올바른볼륨탑재실패 는 제외해도 될 것 같다.

그렇다면

CPU 및 메모리 소진, 커널 패닉 중 하나일 것

 

커널패닉

커널패닉?

작동중에 커널이 치명적인 내부오류를 감지하면 커널패닉 오류가 발생

운영체제 부팅 중 오류가 발생하면 커널을 제대로 읽어들이지 못할 수 있다.

이로인해 운영체제 부팅오류가 발생할 수 있다.

하단의 오류로그를 확인 가능

Linux version
2.6.16-xenU (builder@xenbat.amazonsa) (gcc version 4.0.1 20050727 (Red Hat4.0.1-5)) #1 SMP Mon May 28 03:41:49 SAST 2007
Kernel command
line:  root=/dev/sda1 ro 4
Registering block device major 8
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

별도의 오류로그가 확인되지 않았고,

부팅오류가 발생하지도 않았다.

그러므로 커널패닉이 원인은 아닐 것

 

CPU 및 메모리 소진

CPU

  • CPUUtilization 지표가 100%거나 100%에 가까운 경우
  • CPU크레딧이 0이거나 0에 가까운 경우
    • CPU크레딧이 0인경우 CPUUtilization지표에서 포화도 상태가 기준성능으로 표시됨. (인스턴스 유형에 따라 20%,40%, ..)
  • 블록 디바이스 오류, 소프트웨어 버그, 커널 패닉 으로 인해 CPU사용량 스파이크 발생 가능성도 존재

=> 재부팅 필요

 

메모리

  • 메모리 부족
    • 메모리 및 디스크지표는 지표확인이 불가능 ( 모니터링 하기위해 CloudWatch에 추가지표 전송가능)
[115879.769795] Out of memory: kill process 20273 (httpd) score 1285879 or a child
[115879.769795] Killed process 1917 (php-cgi) vsz:467184kB, anon-rss:101196kB, file-rss:204kB

=> 더 큰 인스턴스 유형으로 업그레이드

=> 또는 스왑스토리지를 추가하여 메모리부담 완화

 

CPU크레딧

T2인스턴스는 기본적으로 사양이 크레딧사양이 Standard

=> 정해진 수량만큼 CPU버스트가 진행된다.

 

T3인스턴스는 크레딧사양이 Unlimited

=> 크레딧 수 사양 관계없이 버스트가 가능

=> 요금 청구

반응형

중간결론

결국에 프리티어의 기본제공 인스턴스 유형인 T2의 경우에는

CPU버스트가 가능한 횟수(=크레딧)이 정해져있고

이를 초과사용할 시 행이 걸리는 것 같다.

그럼 T3로 변경하거나 크레딧유형이 Unlimited로 바뀌어야겠다.

반응형