본문 바로가기

분류 전체보기46

Java VisualVM의 Sampler와 Profiler 사용법 / JVisualVM's Sampler and Profiler 자바 어플리케이션의 성능과 관련된 문제를 해결하거나 CPU와 메모리의 사용량과 관련된 모니터링을 위해서 가장 쉽게 접근할 수 있는 툴은 VisualVM일 것이다. 오늘은 Java VisualVM의 Sampler와 Profiler를 보는 법에 대해서 간략히 정리하고자 한다. Sampler와 Profiler 모두 자바 어플리케이션의 CPU와 메모리 사용량을 분석하는 툴이지만 그 동작 방식에서는 차이를 보인다. Sampling 샘플링은 주기적(20 ms ~ 10000 ms)으로 메소드 콜 정보(스레드 덤프 사용)와 메모리 사용 정보를 스냅샷하고 그 결과를 분석하여 메서드 별 혹은 스레드 별 CPU 실행 시간을 수집하는 것을 말한다. 그렇기 때문에 정확한 분석은 아니지만 분석 대상 어플리케이션의 성능에 큰 영향.. 2020. 6. 20.
JAVA 스레드 덤프와 VisualVM (1) / Thread Dump, VisualVM, Sampler/Profiler, FastThread.io 이 글은 자바로 작성된 프로그램(프로세스)에 대해서 아래의 질문에 대한 힌트를 찾기 위한 방법을 설명하고자 작성되었다. 프로그램이 잘 실행되고 있는 것인가? 왜 프로그램의 특정 기능이 응답이 없지? 왜 프로그램이 멈춰 있지? 왜 프로그램의 성능(응답)이 느리지? 왜 프로그램이 CPU를 많이 사용할까? 프로그램의 성능을 향상할 수 있는 방법이 있을까? 프로그램의 CPU 자원 사용량이 많은 코드를 찾을 수 있을까? 자바의 스레드와 관련된 이슈를 해결하거나 모니터링을 위해서는 자바 스레드의 동작 방식을 이해하고 다양한 분석 툴을 손쉽게 다룰 줄 알아야 한다. 스레드 모니터링을 위해서 알아야 할 스레드의 기본적인 개념들과 모니터링 툴을 사용하여 분석하는 방법에 대해서 공유하고자 한다. 자바 기본 스레드의 종류와.. 2020. 6. 17.
Spring Boot 어플리케이션 Java 6 호환 수정 Spring Boot 프로젝트를 Java 6 동작하도록 수정하기 위한 방법을 정리한 문서입니다. Spring Boot 어플리케이션을 Java 6와 호환되도록 변경하기 위해서는 Spring Boot와 관련된 몇몇 라이브러리의 버전을 다운 Tomcat의 버전 7.0.x 혹은 8.0 Jetty의 경우, 8.x 버전 사용 Spring Boot 관련 라이브러리의 버전을 1.5.x로 변경 spring-boot-starter-web spring-boot-starter-data-jpa spring-boot-starter-security ... 주의할 점은 Tomcat 7 버전과 Java 6에서 동작할 경우 WebSocket은 사용할 수 없다고 한다. Spring Boot 프로젝트를 Java 6와 호환되도록 하기 위해서.. 2020. 6. 16.
Spring Boot 어플리케이션 배포 / 내장 웹서버(Jetty, Undertow, Tomcat) 변경 및 빌드 Spring Boot로 어플리케이션을 개발하고 서비스를 할 때가 되면 해당 프로젝트를 배포하여 실행 가능한 파일로 만들어 주어야 한다. 본 글에서는 Spring Boot 어플리케이션을 JAR, WAR 파일로 배포하는 방법, 웹서버를 Tomcat, Jetty, Undertow를 사용하는 벙법에 대해서 설명한다. 전통적으로 웹서비스를 배포하기 위해서는 아래와 같은 방법으로 진행 하였었다. 프로젝트를 WAR 파일로 빌드 Web 서버(Tomcat, Weblogic, Apache) 설치 Web 서버에 WAR 파일 배포 하지만, Spring Boot를 사용할 경우 위의 과정은 아래와 같이 바뀐다. 프로젝트를 JAR 파일로 빌드 JAR 파일 실행 Spring Boot는 배포하는 과정이 간단한데, 이는 빌드된 JAR .. 2020. 6. 16.