구독자 여러분은 새해 목표 세우셨나요? 저는 개인적으로 다시 찐 살을 빼기 위해 생활 습관을 교정하는 것, 작년에 취득하지 못한 자격증에 다시 도전하는 것입니다. 매년 새해 목표를 세우고 돌아보면 달성하지 못한 목표들이 있는데요. 생각해보면 목표를 세운 다음에는 구체적인 실행 방법에 대해 깊이 생각해본 적이 적은 것 같습니다.
사람들 생각하는 게 비슷한 것일까요? 생성 AI에게 새해 목표와 구체적인 실행 계획을 소개하는 흥미로운 기사를 발견했습니다. AI가 목표와 구체적인 실행 계획을 제시해도 이를 실천하는 건 각자의 의지가 아닐까 생각합니다. 2024년 첫번째 3픽레터에서는 모니터링을 하는 목표와 올바른 접근 방법, 그리고 문제가 발생했을 때 어떻게 해결하는지 예시를 소개할 예정입니다. IT 성능 관리에 고민하는 분이라면 이번 3픽레터를 놓치지 말고 끝까지 읽어주세요!
#1 모니터링픽. 모니터링을 하는 이유와 올바른 접근 방법은?
첫 번째 픽에서는 모니터링을 하는 이유와 모니터링을 하는 올바른 접근 방법을 소개합니다.
저는 평소 모니터링이라는 단어는 많이 듣고 사용하지만, 막상 정의할 기회가 많지 않았습니다. 그러던 중에 이번에 소개할 모니터링 픽의 콘텐츠에서 확인할 수 있었습니다. 모니터링의 사전적 정의는 특정한 것을 발견하기 위해 상황을 주의 깊게 관찰하고 확인하는 행위입니다. IT 서비스를 대상으로 하는 모니터링에서는 장애와 오류를 발견하기 위해 IT 서비스 요소를 관찰하고 확인하는 행위로 정의하는데요.
그렇다면 IT 서비스 모니터링에서의 장애는 무엇일까요? 단순히 안정적인 서비스, 불안정한 서비스는 어떤 기준으로 구분해야 할까요? 그렇지 않습니다. 일반 웹 서비스의 경우 사용자 요청에 3초 이내로 정상 응답하는 비율이 월 99.5% 이상이어야 하고, 고가용 서비스는 1초 이내로 월 99.95% 이상 되어야 하는 범용 기준을 제시합니다.
장애와 안정성을 관리하고 싶다면 앞서 언급한 대로 장애와 안정성을 올바르게 정의해야 합니다. IT 서비스에 맞춰 장애와 안정성에 대한 정의를 하지 않는다면, 안전하지 못한 상황에 대한 기준이 없고 이를 관리하기 어려워집니다. 장애와 안정성을 정의하는 방법, 그리고 모니터링 해야하는 것은 무엇인지 첫 번째 픽에서 확인하실 수 있습니다!
모니터링 사용 전 모니터링, 장애, 안정성에 대한 정의가 끝났다면 이제 모니터링을 도입하게 됩니다. 하지만 모니터링 대시보드에서 보이는 지표는 정말 많고, 이 많은 지표 중에 어떤 것을 봐야할 지 헷갈립니다. 그래서 애플리케이션 모니터링, 서버 모니터링에서 필수로 확인할 지표를 소개하겠습니다.
애플리케이션 모니터링에서는 Heap 메모리 지표와 GC 지표입니다.
JVM(자바 가상머신)은 프로그램을 실행하기 위해 메모리에 데이터 저장 공간을 할당합니다. 메모리 공간은 크게 3가지 영역으로 분류됩니다. Static, Stack, Heap 영역입니다. 객체(인스턴스), 배열 등 주요 데이터는 Heap 영역에 저장됩니다.
GC (Garbage Collection)란 JVM(자바 가상머신)이 더 이상 필요하지 않은 객체를 Heap 영역에서 해제하는 동작입니다. 덕분에 자바에서는 개발자가 메모리를 코드로 명시적으로 해제하지 않아도 됩니다.
애플리케이션에는 이상이 없더라도 운영체제 등의 이슈로 인해 서버가 느려지는 현상이 발생할 수 있습니다. 이때 1차로 주목해야 하는 지표는 CPU Usage 입니다. CPU Usage를 확인할 수 있는 대표적인 세부 지표를 소개합니다.
Disk I/O 또는 메모리 부족: 메모리 부족 또는 과도한 Disk I/O 가 발생하는 경우 CPU 사용량이 급등할 때 확인해야 합니다.
높은 CPU Steal 수치: 클라우드 환경의 경우 CPU Steal 지표를 유심히 확인해야 합니다.
OutOfMemory(OOM) 에러는 설정된 메모리보다 요청된 메모리가 많아서 JVM에서 발생하는 에러로 설정 오류, 사용량 초과 등 기본적인 예측 용량 산정이 잘못된 경우 발생합니다. OOM은 일반적으로 설정에 의한 문제점이 있습니다. 먼저 용량에 맞게 애플리케이션을 설정해야 합니다. 그 이후, 순간적으로 OOM을 일으키는 애플리케이션이 나타나거나 메모리 릭에 의해서 OOM이 발생할 수 있습니다.
갑작스러운 OOM Error를 어떻게 확인해야 할까요? 블로그와 영상에도 확인할 수 있습니다!