ibm was enablement about monitoring for bps

20
2011. 9. IBM SoftwareGroup WebSphere CTP 이정운 과장 (JungWoon Lee, [email protected]) © Copyright IBM Corporation 2011 SoftwareGroup, IBM Korea IBM WAS 의 Thread pool 과 Connection pool 소개 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Upload: jungwoon-lee

Post on 19-Jun-2015

400 views

Category:

Technology


5 download

DESCRIPTION

IBM WAS enablement about monitoring for BPs

TRANSCRIPT

Page 1: IBM WAS enablement about monitoring for BPs

1SoftwareGroup WebSphereConfidential - Do Not Distribute

2011. 9.

IBM SoftwareGroup WebSphere CTP 이정운 과장 (JungWoon Lee, [email protected])

© Copyright IBM Corporation 2011

SoftwareGroup, IBM Korea

IBM WAS 의Thread pool 과 Connection pool 소개

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 2: IBM WAS enablement about monitoring for BPs

2SoftwareGroup WebSphereConfidential - Do Not Distribute

1. 다양한 풀링 서비스

IBM WAS 는 객체 및 자원의 재사용을 위한 여러 가지 풀링 서비스를 제공하며, 이를 통해 자원 사용량을 최적화 하고, 성능을 향상 시킵니다.

하고자 하는 작업 제공되는 풀링 서비스

웹 어플리케이션, 웹서비스 어플리케이션실행 시

HTTP Connection Pool

Web Thread Pool

EJB 어플리케이션 실행시

EJB Object Pool

비동기적 메시징 사용시

JMS Connection/Session Pool

MQ Connection/Session Pool

SIB Thread Pool

데이터베이스 사용 시 JDBC Connection Pool

기타 EIS 사용 시 JCA Connection Pool

HTTP Connection

Pool

HTTP Connection

Pool

Web

Thread Pool

HTTP

Thread Pool

JMS Connection/Session Pool

SIB

Thread Pool

JDBC Connection

Pool

웹어플리케이션

요청

웹서비스

요청

비동기적 메시지

MQ Connection/Session Pool

EIS 요청

DB 요청

DB

WAS

IHS

EIS

JCA Connection

Pool

EJB

Object Pool

EJB 요청

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 3: IBM WAS enablement about monitoring for BPs

3SoftwareGroup WebSphereConfidential - Do Not Distribute

2. TCP Connection 관리

IBM WAS 는 HTTP Server와 WAS간의 TCP 커넥션 관리가 가능합니다. 이러한 관리는 각 서버 별로 별도로하는 것이 아니라, 관리콘솔을 통해서 통합관리를 하도록 제공합니다

Channel과 servlet/JSP container간의dispatching layer

HTTP protocol 지원

TCP Connection 관리

TCP Connection 관리를 위해 사용할 수있는 옵션 예제

TCP Connection 관리 구조

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 4: IBM WAS enablement about monitoring for BPs

4SoftwareGroup WebSphereConfidential - Do Not Distribute

3. 멀티 쓰레드 기능

IBM WAS 는 프로세스의 생성 소멸에 소요되는 부하를 줄이기 위해 멀티 쓰레드 기능을 제공할 뿐만 아니라, Asynchronous I/O 기반의 WebSphere Transport Channel Service 와 연동하여 구동되므로 적은 수의 쓰레드로도 대량의 요청을 고속으로 처리 하도록 제공합니다.

WebSphere 의 Transport Channel Service개별 채널의 생성과 라이프사이클을 관리하는 WebSphereApplication Server의 한 컴포넌트입니다.(멀티 쓰레드 기반)

WebSphere 의 많은 서비스가 Transport Channel Service를사용합니다.

웹 컨테이너, EJB 컨테이너

IBM Service Ingegration Technology(Messaging)

Distribution and Consistency Service(DCS)

Web Services SOAP/HTTP 클라이언트

웹 컨테이너의 안정성을 확대 할 수 있습니다.

Asynchronous I/O 기술을 사용하여 웹 컨테이너가 동시에제어할 수 있는 커넥션의 수를 증가시키고, 반대로 필요한스레드 수는 감소시킴.

할당 가능한 쓰레드 풀

각각의 TCP 채널은 쓰레드 풀에 할당될 수 있습니다.

쓰레드 풀은 여러 개의 서비스에 의해 공유될 수 있습니다.

애플리케이션 마다 쓰레드풀 할당이 가능 합니다.

사용자 요청

Platform Kernel Native AIO Driver (IOCP, /dev/poll, /dev/epoll, etc.)

IBM WebSphere Native AIO Library ( .so , .DLL)

TCP Channel

Web/EJB Thread Pool

TCP Device Drivers

OS

WebSphere Application Server

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 5: IBM WAS enablement about monitoring for BPs

5SoftwareGroup WebSphereConfidential - Do Not Distribute

4. Thread pool IBM WAS 는 관리콘솔의 메뉴 설정만으로 Thread pool 을 구성할 수 있습니다. Thread pool 을 사용하면 서

버의 컴포넌트가 스레드를 다시 사용하므로 런타임에서 새 스레드를 작성할 필요가 없습니다. 이를 통하여 자원 최적화 및 성능 최적화가 가능합니다.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 6: IBM WAS enablement about monitoring for BPs

6SoftwareGroup WebSphereConfidential - Do Not Distribute

그럼, pool 은 과연좋은 것 일까요?

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 7: IBM WAS enablement about monitoring for BPs

7SoftwareGroup WebSphereConfidential - Do Not Distribute

5. Request 무한대기 방지

IBM WAS 는 Request 무한대기 방지를 위해서 Thread Kill 기능을 별도로 제공하지는 않지만(강제적인Thread Kill 기능은 정합성 이슈가 발생할 수 있으므로 대부분의 WAS 에서는 권고하지 않습니다.) Request 무한대기 방지를 위하여 무한대기 하는 Thread 에 대한 경고 로깅 및 Stack trace 출력 기능을 제공하며, 필요한경우 강제로 좀더 자세한 Javacore 를 생성하게 설정하도록 제공합니다.

Thread Monitor

Thread

Thread

ThreadThread

Thread Thread

Thread

IBM WebSphere Application Server

1. Thread Monitor 가 설정된 주기별로 관리되는 Thread 를 체크2. Thread Monitor 가 해당 Thread 가 얼마동안살아있었는지 체크3. 해당 Thread 가 지정된 시간이상 살아있었다는 것을감지(무한 대기 예상)4. 적절한 경고를 출력하며, 이때 손쉬운 분석을 위한Stack trace 도 같이 출력-> 이를 이용하여 무한대기 문제가 발생되었을 경우 해당program 을 손쉽게 파악할 수 있으며 조치 가능

Thread

Thread

Thread

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 8: IBM WAS enablement about monitoring for BPs

8SoftwareGroup WebSphereConfidential - Do Not Distribute

JDBC Connection Pool

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 9: IBM WAS enablement about monitoring for BPs

9SoftwareGroup WebSphereConfidential - Do Not Distribute

6. JDBC Connection IBM WAS 는 EIS(Enterprise Information System) 에 대한 Connection 관리 아키텍처는 Java EE 표준의 JCA 표준을 통해서 이루

어집니다. Connection 관리자(CM) 는 JCA 표준에서 정의된 자원어뎁터(Resource Adapter) 나 특정 벤더의 DB와 JDBC 연결을제공하는 드라이버 구현 클래스를 제공하는 JDBC 프로바이더와 조합되는 Data source 를 통해서 얻어진 Connection 을 관리할수 있습니다.

JDBC Connection 관리 구조 EJB 에서 호출하는 경우

1. EJB 가 data source, connection factory 에 대해서JNDI 룩업(lookup) 을 수행하고 getConnection() 을요청을 발행합니다.

2. Connection factory 는 요청을 Connection Manager(CM) 에게 위임합니다.

3. CM 은 WAS 내의 Connection pool 인스턴스(instance) 를 찾습니다. 만약 Connection pool 이 가용하지 않다면 CM은 ManagedConnectionFactory를 사용하여 물리적이며 풀링 되지 않은 connection 을 생성합니다.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 10: IBM WAS enablement about monitoring for BPs

10SoftwareGroup WebSphereConfidential - Do Not Distribute

7. JDBC Connection pool IBM WAS 는 JCA Connection Manager와 Relational resource adapter에 의해서 DB Connection Pooling을 제공하며 관리 콘솔

을 이용해서 쉽게 관리하도록 도와줍니다. 또한, 연결 유효성 검증을 통해 커넥션 자동 재시도 기능을 제공하여 안정적인 DB 연결을 지원합니다.

JCA Connection Manager는 connection pooling과 local transaction, 보안을 제공합니다.

Relational resource Adapter는 DB의 JDBC 드라이버에액세스 하기 위한 BMP, JDBC call, CMP를 사용하는응용프로그램의 JDBC wrappers와 JCA CCI 구현을 제공합니다.

기존에 사용하는 개발 소스의 JDBC 부분은 수정 없이그대로 사용 하도록 제공합니다.

이러한 설정들은 모두 관리 콘솔에서 통합 제어 가능합니다.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 11: IBM WAS enablement about monitoring for BPs

11SoftwareGroup WebSphereConfidential - Do Not Distribute

8. JDBC Connection handle IBM WAS 에서 Connection 을 가져와서 사용한다는 의미는 실제로는 만들어진 Connection 객체를 받아오는

것이 아니라 Connection handle 을 받아오는 것입니다.

JDBC Connection handleHandle 은 J2EE 어플리케이션에 사용되며 뒷(back) 단의 자원 관리자(예: DB) 와 물리적인 connection 을 의미하는 것이 아니라 물리적인 connection 의 proxy

물리적인 connection 이 JDBC driver 에 의해서 반환 받은 connection 객체라면, connection 핸들은 물리적인connection 의 랩퍼(wrapper) 객체를 의미

내부 적으로 들여다 봐도 getConnecion() 메소드를 호출하면 connection 핸들을 반환 받게 되고 물리적 connection 은 CM 에 의해 별도 관리됩니다.

실제적으로는 CM 에 의해서 Connection 은 관리되고 CM 에 의해 관리되는 Connection 객체의 핸들만을 받아와서 실제 프로그램에서 사용하는 것입니다.(중요한 점은 관리와 사용이 분리된다는 것 입니다.)

모드별 Connection handle (Unshareable, Shareable)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 12: IBM WAS enablement about monitoring for BPs

12SoftwareGroup WebSphereConfidential - Do Not Distribute

9. 대체 JDBC Connection IBM WAS 는 만약 DB 장애가 발생을 해도 해당 DB 시스템이 자체적인 이중화 방안을 제공하고 있다면 재접속에 의해 서비스

는 즉시 정상화 되며, 해당 DB 시스템이 자체적인 이중화 방안을 제공하고 있지 않다면 WAS 에서 대체 JCA Connection 을 사전에 설정하여 다른 대체 DB 로 failover 하여 서비스를 정상화 시킬 수 있습니다. 뿐만 아니라, 이전 DB 서버의 장애가 복구되면 failback 도 가능합니다.

대체 JCA Connection 지정

DB 에 연결되는 Connection 을 지정할 때 해당 DB 에대한 작업을 수행하는 것에 추가하여 별도로 대체Connection 을 미리 지정할 수 있는 기능

기 연결된 DB 부분에 문제가 있을 때 어플리케이션코딩 없이 자동으로 원래의 Connection 이 아니라 기지정된 대체 Connection 활용

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 13: IBM WAS enablement about monitoring for BPs

13SoftwareGroup WebSphereConfidential - Do Not Distribute

TPV - Monitoring

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 14: IBM WAS enablement about monitoring for BPs

14SoftwareGroup WebSphereConfidential - Do Not Distribute

10. 실시간 모니터링

IBM WAS 는 관리콘솔에 내장된 Tivoli Performance Viewer를 이용하여 서버내의 여러 자원 및 객체들의 사용상황을 실시간으로 모니터링 할 수 있는 기능을 제공 합니다.

모니터링 가능 대상

시스템 자원들- JDBC Connection Pool, Thread Pool, Session, Dynamic Cache 등- Heap memory, Garbage Collcation, 자바 객체의 동향 등- CPU 사용량 등

분산 객체들- EJB, Servlet, JSP등의 호출건수, 평균응답시간

분산 서버들- 클러스터 및 서버들의 운영 상황

Servlet 과 EJB 요청에 대한 Summary report 제공

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 15: IBM WAS enablement about monitoring for BPs

15SoftwareGroup WebSphereConfidential - Do Not Distribute

10. 실시간 모니터링

Summary Report

Servlet & EJB

Servlet 및 EJB 응용프로그램 평균 응답시간 및 호출 횟수 요약

기준 시간은 instance 시작 이후부터 누적된다.

※고려사항

평균응답시간은 해당 thread 시작부터 종료되는 시간을 기준으로

하며, 내부적인 구간 (Container, Connection)별 시간은 제공되지않는다.

또한 위에 언급했듯이 해당 application server가 시작된 이후의 전체평균 응답시간으로만 제공된다.

Thread pool 및 Connection Pool 사용량 요약

Thread별 사용량 및 J2C Provider를 기준으로 Pool 사용량을 그래프로제공한다.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 16: IBM WAS enablement about monitoring for BPs

16SoftwareGroup WebSphereConfidential - Do Not Distribute

10. 실시간 모니터링

JVM Heap 사용량해당 Application Server의 JVM Heap Memory 사용량을 run time

으로 확인할 수 있다. 그러나 GC 간격이나 GC 진행 시간에 대해서는표시되지 않는다.

JDBC Connection Pool 사용량WAS에 구성된 JDBC Connection pool에 대해 run time 사용량을

확인할 수 있다.

Session countApplication Server에서 사용되고 있는 session 수를 run time 으로

볼 수 있다

Thread PoolApplication Server에 구성된 thread pool에 대한 run time 사용량

을 볼 수 있다. Tree menu에 ‘스레드 풀’을 확장하면 pool 종류별로선택하여 해당 모듈을 볼 수 있다.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 17: IBM WAS enablement about monitoring for BPs

17SoftwareGroup WebSphereConfidential - Do Not Distribute

11. 다양한 로그 제공

IBM WAS 는 다음과 같은 다양한 로그들을 제공합니다. 이를 통해 서비스 상황을 추적하고, 장애 시 신속하고정확하게 원인을 파악 할 수 있습니다. 로그에 기록 될 정보의 레벨은 관리 툴을 통해 조정합니다.

다양한 로그 제공

HTTP 를 이용하여 접근한 사용자 및 요청에 관한 내용을 포함access_log웹서버 장애 분석, 사용자 분석

다이나믹 캐시의 사용 상황 관한 내용 포함cache.log웹서버 장애 분석

웹서버 플러그인의 동작중 발생한 행위와 Error 메시지 등이 기록plugin.log웹서버와 WAS 간 통신 장애 분석

용도 로그 파일 명 로그 내용

WAS의 동작 중에 문제가 발생 SystemOut.logWAS 자체의 동작 메시지, 애플리케이션의 Console Out, Exception 및 Error 메시지 등이기록

WAS의 장애 SystemErr.log Exception 및 Error 내역만 기록

JVM 레벨의 동작 및 장애 native_out.log WAS 운영 중 O/S가 던진 Output 들이 기록

JVM 레벨의 장애 native_err.log WAS 운영 중 O/S가 던진 Error 메시지 들이 기록

2Phase commit 트랜잭션부분에서의 장애

tranlog WAS 자신이 자동 트랜잭션 복구를 위해 사용하는 바이너리 로그

WAS의 메모리 관련 장애 heap dump JVM 내 객체의 사용 상황을 기록한 덤프 로그

WAS의 Hang 및 서비스 지연관련 장애

thread dump JVM 내 스레드의 동작 상황을 기록한 덤프 로그

기타, WAS 엔진의 장애FFDC 및trace.log

First Failure Data Captuer - 장애시의 WAS의 설정 및 환경, 운용 상황 등을 수집하여 만든로그 파일들의 모음, trace.log - WAS 엔진의 운용에 필요한 모든 컴포넌트들의 운영상황이 메소드 스텝 레벨까지 출력됨

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 18: IBM WAS enablement about monitoring for BPs

18SoftwareGroup WebSphereConfidential - Do Not Distribute

12. 다양한 문제 분석 도구

IBM WAS 의 관리 서버 및 관리 도구들은 로그 및 추적 기능이외에도 클래스 로더 표시기, 구성 유효성 검증, 런타임 메시지 등을 통해, 서버에 직접 접속하지 않고도 관리 도구를 통해서 문제에 대한 원인을 파악하고 조치할 수 있는 환경을 제공합니다.

다양한 문제 분석 도구

툴 이름 역할

클래스 로더 표시기클 래 스 버 전 충 돌 , ClassNotFound 등클래스 관련문제 해결에 유용

설정 유효성 검증기설정상의 문제가 있을 때 실시간으로 오류, 경고, 정보로 구분하여 알려주는 기능

런타임 오류 메시지서버 런타임 중 문제가 되는 부분에 대해오류, 경고, 정보로 구분하여 실시간으로알려주는 기능

JVM collectors in the WAS add-on

특정 이벤트 발생 시 스레드 덤프, 힙덤프, 시스템 덤프 등을 Triggering 시켜주는 기능

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 19: IBM WAS enablement about monitoring for BPs

19SoftwareGroup WebSphereConfidential - Do Not Distribute

13. 통합 문제 분석 도구

IBM WAS 는 IBM Support Assistant 라는 통합 문제 분석 도구를 무료로 제공하고 있으며 이를 통하여 그동안 산재되어 있던 문제 분석 도구를 통합적으로 관리하고 빠르고 편리하게 문제를 분석할 수 있는 GUI 기반의 도구를 제공하고 있습니다.

통합 문제 분석 도구

Memory leak 이나 과다한 Memory 소비를 분석할 수 있는 빠른 자바힙분석기

Memory Analyzer

통합할 수 있는 도구 역할

Dump Analyzer

다양한 특수 분석기를 실행하여코어파일에서 정보를 추출하여분 석 , Memory leak 관 련 문 제해결에 유용

Garbage Collection and Memory

Visualizer

GC 데이터를 그래프로 시각화하여보여주며 분석 리포트도 제공, OutOfMemory 관련문제 해결에유용

Health Center최소한의 overhead 로 동작중인IBM Virtual Machine 을 모니터 할수 있는 가벼운 도구

etc …

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 20: IBM WAS enablement about monitoring for BPs

20SoftwareGroup WebSphereConfidential - Do Not Distribute

End of The Document.End of The Document.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)