본문 바로가기

jvm에 해당하는 글들

4 Articles matched
목록이 없습니다.
Java 힙덤프 분석 (Out of memory현상이 아닌 수동분석) 어..? 메모리 부족..? 서버 운영 중에 간헐적으로 접속 장애가 발생했다. 우리 서버에는 scouter로 모니터링 시스템을 구축해놓았었고 이상 증상이 있으면 사내 slack에 특정 채널로 알림이 오게 해두었다. 며칠 전부터 서버의 메모리가 부족하다는 알림이 오기 시작했다. 하지만 다른 업무들이 밀려 있어서 신경쓰지 못했다. 상황 발생!! 비상!! 그런데 어제부터 특정 사이트에 접속이 간헐적으로 안된다는 문의가 들어왔다. 확인을 안할 수 없는 상황이 되었다. 우리는 아파치 웹서버를 앞에 두고 로드밸런서처럼 사용하고 있었다. 그 뒤에는 Tomcat WAS를 이중화해놓았고 이 중에 한 서버에서만 메모리가 부족해져 있었다. 물론 나머지 한 서버도 메모리가 많이 올라와있기는 마찬가지였다. 우선 tomcat을 ..
[Java] jmap 사용하여 JVM 상태 확인 Java 어플리케이션을 배포하고 서버 유지를 하는 경우에 JVM의 상태를 확인해야하는 상황이 종종 발생한다. 이 때 다른 프로그램이나 패키지 설치 없이 바로 사용할 수 있는 간단한 방법이 바로 jmap을 활용하여 확인하는 방법이다. 방법은 아래와 같이 간단하다. (Java 버전별로 조금 다를 수 있다) java 11 이전 버전 $ jmap --heap java 11 포함 이후 버전 $ jhsdb jmap --heap --pid * jhsdb 관련 문서는 오라클 문서 참조: https://docs.oracle.com/javase/9/tools/jhsdb.htm#JSWOR-GUID-0345CAEB-71CE-4D71-97FE-AA53A4AB028E 실행 결과 (jdk 11 버전 기준) $ jhsdb jmap ..
[JAVA] 메서드(Method) 목차 1. 선언 위치에 따른 변수의 종류 2. 자바 메서드 2-1. 메서드 구성요소 2-2. 메서드 흐름 2-3. 매개변수 유효성 검사 선언 위치에 따른 변수의 종류 자바에서는 클래스 안에 변수와 메서드가 존재하는데 이 안에서도 어느 영역에 선언을 해주느냐에 따라 종류가 달라지고 생성시기가 다르다. 12345678910Class Variables{ int iv; // 인스턴스 변수 static in cv; // 클래스 변수 (static 변수, 공유 변수) void method() { int lv = 0; // 지역변수 }}Colored by Color Scriptercs 위의 코드처럼 클래스를 생성해준 경우 각 변수들의 차이는 다음 표와 같다 변수의 종류 선언 위치 생성시기 클래스 변수 클래스영역 클래..
[JAVA] JVM 동작원리 및 기본개념 JAVA라는 언어를 통해 코딩을 하고 있는 사람으로서 JAVA의 간단한 탄생배경 그리고 JAVA의 시작과 끝이라고 할 수 있는 JVM을 한 번 짚고넘어가려고 해요 우선 JAVA의 탄생배경을 좀 알고가면 이해하기 더 좋을 듯 싶어서 먼저 정리해 봅니다 목차는 다음과 같습니다 1. JAVA 탄생 배경 2. 자바 코드(JAVA Code) 실행 과정 3. JVM 동작원리 및 기본개념 3-1. 클래스 로더 (Class Loader) 3-2. 런타임 데이터 영역(Runtime Data Area) 3-3. 실행 엔진(Execution Engine) JAVA 탄생배경 JAVA는 썬 마이크로시스템즈의 제임스 고슬링이라는 사람과 다른 연구원들이 개발한 프로그래밍 언어에요 1991년 그린 프로젝트(Green Project)..