안녕하세요 덩덩윤입니다.... 정말 오랜만에 글을 쓰게 되는것 같습니다.
그치만 아직 아무도 안보고 있으니까 상관 없지 않을까여? 어쨌뜬 가보겠씁니다. 레쯔고
때는 지난 달 초... 여느때처럼 서버 점검 리포트를 작성하기 위해 클라우드 콘솔에 들어갔는데 ...
WAS 서버 하나가 CPU 사용률이 98% ~ 100% 를 왔다갔다 하는 것을 발견했습니다.
오토 스케일링 적용된 다른 WAS 서버는 멀쩡한데 말이져.......
이게 어떻게 된일일까 하고 서버에 붙어 top 명령어를 때려 보았습니다.
역시나 95.7% 의 높은 사용률을 보여주고 있군요... 범인은 저 node 라는 녀석이네여.
혼자서 82퍼를 쓰다니 ... 못난놈같으니라고
이 놈의 정체가 대략 무엇인지 파악해보기 위해
요 서버를 개발하신 선배님(퇴사하고 안계심 ^^*)이 남겨 놓았을 alias를 살펴 보았습니다.
npm start로 nodejs 서비스를 올려주는 alias는 appstart 인것을 확인했는데요,
여기서 수행하는 forever라는 명령어는 저는 사실 처음보는 애라서 검색을 좀 해보았는데요 ...
얘가 nodejs 프로세스를 띄우는 명령어라고 하더라고요!
좀 더 자세히 설명드리자면, nodejs 로 올린 서버가 죽으면 자동으로 다시 실행을 시키는 녀석이라고 합니다!
또 이렇게 하나 배워가네요 ~~~~!
근데 이상한건 forever list 를 통해 forever 로 실행시킨 서버들의 목록이었습니다!
위 사진에서 그 부분만 다시 짤라볼게요 !
동일한 서버를 두 개씩 올리려고 하고 있꾸나. ..... 라는 것을 알아버린 것이었습니다.
포트가 겹치니까 당연히 안올라갈거구요...
그럼 정상적으로 수행되는 프로세스가 하나 있고... 이미 올라간 서버를 또 올리려고 하는 프로세스가 하나 또 있는거네요?
왜 forever 가 중복으로 수행되었는지는... 원인 파악을 좀 더 해보아야 할 것 같습니다.😂
쨌든 forever list의 가장 오른쪽에는 uptime, 이 프로세스가 수행되고 얼마나 시간이 됐는지를 보여주는 컬럼이 있습니다.
한 놈은 시간이 꽤 많이 흘렀고, 한 놈은 방금 시작됐네요? 이 방금 시작된 녀석을 죽여ㅂ... 아니 내려줍시다.
'forever stop 1' 명령어를 통해 [1]번, uid가 4ANf 인 녀석을 내려줍니다.(얘가 방금 시작된 애)
그러고나서 잠시 뒤 top 명령어를 수행했더니 !
오호... CPU 사용량이 평소대로 제대로 돌아온 것을 확인할 수 있었습니다!
이제 한시름 놓았네요...~~~
문제 해결을 이렇게 해놓아서 다행이기도 하지만,...
이 서버의 CPU 사용률이 100퍼센트에 육박한다는 사실을 리포트 작성하려고 콘솔을 들어가서야 인지했다는게 ...
반성을 해야할 요소라고 생각합니다.
임계치 설정 후 알림을 보내는 서비스를 구축해야할 필요성을 느끼게 된 경험이었습니다!
AWS를 예로 들면 cloud watch 같은 서비스가 될 수 있겠네요 !
그럼 오늘 글은 여기서 마치겠습니다 ~✋✋
참고한 사이트
'IT 공부 > ETC' 카테고리의 다른 글
[IntelliJ] IntelliJ Ultimate 버전 라이선스 갱신하기 ~! (0) | 2022.07.03 |
---|