본문 바로가기

IT 공부/ETC

[문제해결] CPU를 100% 사용하는 서버가 있다 ...? forever 중복 실행 해결

안녕하세요 덩덩윤입니다.... 정말 오랜만에 글을 쓰게 되는것 같습니다.

 

그치만 아직 아무도 안보고 있으니까 상관 없지 않을까여? 어쨌뜬 가보겠씁니다. 레쯔고

 


때는 지난 달 초... 여느때처럼 서버 점검 리포트를 작성하기 위해 클라우드 콘솔에 들어갔는데 ...

 

WAS 서버 하나가 CPU 사용률이 98% ~ 100% 를 왔다갔다 하는 것을 발견했습니다.

 

 

.......................?

 

오토 스케일링 적용된 다른 WAS 서버는 멀쩡한데 말이져.......

이게 어떻게 된일일까 하고 서버에 붙어 top 명령어를 때려 보았습니다.

 

..................? 2

역시나 95.7% 의 높은 사용률을 보여주고 있군요... 범인은 저 node 라는 녀석이네여.

혼자서 82퍼를 쓰다니 ... 못난놈같으니라고

 

이 놈의 정체가 대략 무엇인지 파악해보기 위해

요 서버를 개발하신 선배님(퇴사하고 안계심 ^^*)이 남겨 놓았을 alias를 살펴 보았습니다.

 

forever...?

 

npm start로 nodejs 서비스를 올려주는 alias는 appstart 인것을 확인했는데요, 

 

여기서 수행하는 forever라는 명령어는 저는 사실 처음보는 애라서 검색을 좀 해보았는데요 ...

 

얘가 nodejs 프로세스를 띄우는 명령어라고 하더라고요!

 

좀 더 자세히 설명드리자면, nodejs 로 올린 서버가 죽으면 자동으로 다시 실행을 시키는 녀석이라고 합니다!

 

 

또 이렇게 하나 배워가네요 ~~~~!

 

근데 이상한건 forever list 를 통해 forever 로 실행시킨 서버들의 목록이었습니다!

 

위 사진에서 그 부분만 다시 짤라볼게요 !

 

ㅙ.... forever가 두 개?

 

동일한 서버를 두 개씩 올리려고 하고 있꾸나. ..... 라는 것을 알아버린 것이었습니다.

 

포트가 겹치니까 당연히 안올라갈거구요...

 

그럼 정상적으로 수행되는 프로세스가 하나 있고... 이미 올라간 서버를 또 올리려고 하는 프로세스가 하나 또 있는거네요?

 

왜 forever 가 중복으로 수행되었는지는... 원인 파악을 좀 더 해보아야 할 것 같습니다.😂

 

쨌든 forever list의 가장 오른쪽에는 uptime, 이 프로세스가 수행되고 얼마나 시간이 됐는지를 보여주는 컬럼이 있습니다.

 

한 놈은 시간이 꽤 많이 흘렀고, 한 놈은 방금 시작됐네요? 이 방금 시작된 녀석을 죽여ㅂ... 아니 내려줍시다.

 

'forever stop 1' 명령어를 통해 [1]번, uid가 4ANf 인 녀석을 내려줍니다.(얘가 방금 시작된 애)

 

그러고나서 잠시 뒤 top 명령어를 수행했더니 !

 

 

 

오호... CPU 사용량이 평소대로 제대로 돌아온 것을 확인할 수 있었습니다!

 

이제 한시름 놓았네요...~~~

 

 

 

 

 

문제 해결을 이렇게 해놓아서 다행이기도 하지만,...

 

이 서버의 CPU 사용률이 100퍼센트에 육박한다는 사실을 리포트 작성하려고 콘솔을 들어가서야 인지했다는게 ...

 

반성을 해야할 요소라고 생각합니다.

 

임계치 설정 후 알림을 보내는 서비스를 구축해야할 필요성을 느끼게 된 경험이었습니다!

 

AWS를 예로 들면 cloud watch 같은 서비스가 될 수 있겠네요 !

 

 

그럼 오늘 글은 여기서 마치겠습니다 ~✋✋

 

 


 

참고한 사이트

 

https://kingle1024.tistory.com/159

'IT 공부 > ETC' 카테고리의 다른 글

[IntelliJ] IntelliJ Ultimate 버전 라이선스 갱신하기 ~!  (0) 2022.07.03