[z/OS]

HTTP 요청 WLM 균등 분배

z/OS® 워크로드 관리(WLM) 컴포넌트는 하위(servant) 사이에서 라운드 로빙 방식으로 하위 선호도 없이 수신되는 HTTP 요청을 분배할 수 있도록 지원합니다. 이 기능은 Stateless 세션 EJB(Enterprise JavaBeans)와 Stateful 세션 엔터프라이즈 Bean의 create 메소드에 사용됩니다(메모리에 보관되어 장기적으로 지속되는 HTTP 세션 오브젝트에 제한되지 않음). 제품이 이 기능을 사용하여 동일한 작업 큐에 인바운드 요청으로 현재 바인드되어 있는 활성 하위(servant) 사이에 HTTP 요청을 분산시키도록 구성할 수 있습니다.

다음 다이어그램은 하나의 클러스터된 서버 인스턴스를 나타냅니다. azsr01 클러스터는 azsr01a 애플리케이션 서버 인스턴스를 포함합니다. 애플리케이션 서버 인스턴스는 애플리케이션이 실행되는 하위(servant) 영역, 제어기 및 워크로드 관리자(WLM) 큐입니다. 제어기는 HTTP 및 IIOP 종료 지점입니다. WLM 큐는 제어기에서 하위 영역 중 하나로의 작업 흐름를 제어합니다. 하위 영역 각각에는 WLM 큐에서 작업을 선택하는 작업자 스레드가 있습니다.

그림 1. 하나의 클러스터된 서버 인스턴스의 컨텐츠

수신되는 요청은 워크로드 관리자
대기열을 통해 제어 영역으로 이동하여 특정 하위(servant) 영역의 작업자 스레드에
지정됩니다.

이전 다이어그램에서는 최소 및 최대 하위 영역 수가 3이 되도록 애플리케이션 서버를 구성했습니다.

이 클러스터에는 애플리케이션 서버의 WLM 정의가 있습니다. azsr01 클러스터에 있는 애플리케이션 서버 인스턴스에 대한 모든 요청은 동일한 서비스 클래스에 지정됩니다. WLM 분류 규칙은 azsr01a 애플리케이션 서버에서 실행 중인 모든 엔클레이브를 AZAMS1 서비스 클래스에 지정합니다. WLM 서비스 클래스 정의 및 분류 규칙의 예제는 다음 다이어그램을 참조하십시오.
그림 2. WLM 서비스 클래스 정의
   Service-Class  Xref  Notes  Options  Help
 --------------------------------------------------------------------------     
                           Modify a Service Class               Row 1 to 2 of 2
 Command ===> ______________________________________________________________
                                                                                
 Service Class Name . . . . . : AZAMS1
 Description  . . . . . . . . . WAS Enclave Work
 Workload Name  . . . . . . . . ONL_WKL   (name or ?)
 Base Resource Group  . . . . . ________  (name or ?)
 Cpu Critical . . . . . . . . . NO        (YES or NO)
                                                                                
 Specify BASE GOAL information.  Action Codes: I=Insert new period,
 E=Edit period, D=Delete period.
                                                                                
         ---Period---  ---------------------Goal---------------------
 Action  #  Duration   Imp.  Description
   __
   __    1              1    Execution velocity of 50
 ******************************* Bottom of data ********************************
그림 3. WLM CB 서브시스템 분류 규칙
   Subsystem-Type  Xref  Notes  Options  Help
 --------------------------------------------------------------------------
                  Modify Rules for the Subsystem Type    Row 11 to 20 of 20
 Command ===> ____________________________________________ SCROLL ===> CSR
                                                                           
 Subsystem Type . : CB          Fold qualifier names?   Y  (Y or N)
 Description  . . . Component Broker requests
                                                                           
 Action codes:   A=After     C=Copy        M=Move     I=Insert rule
                 B=Before    D=Delete row  R=Repeat   IS=Insert Sub-rule
                                                              More ===>
           --------Qualifier--------               -------Class--------
 Action    Type       Name     Start                Service     Report
                                          DEFAULTS: AZAMS1      RBBDEFLT
  ____  1  CN         AZSR01   ___                  AZAMS1      RAZAMS1
  ____  1  CN         AZSR02   ___                  AZAMS2      RAZAMS2
  ____  1  CN         AZSR03   ___                  AZAMS3      RAZAMS3
****************************** BOTTOM OF DATA *****************************

이 제품은 하위(servant)가 여러 개인 애플리케이션 서버의 메모리에서 HTTP 세션 오브젝트를 사용하도록 지원하는데 이를 hot 하위 계획이라고 합니다. 다음 다이어그램에서 두 명의 사용자가 azsr01a 애플리케이션 서버 인스턴스의 애플리케이션에 액세스했습니다. 사용자 1은 하위 영역 3에서 HTTP 세션 오브젝트를 설정하고 사용자 2는 하위 영역 2에서 HTTP 세션 오브젝트를 설정했습니다.

그림 4. 사용자가 HTTP 세션 오브젝트를 설정함

사용자 1은 하위 영역 3에서 HTTP 세션 오브젝트를 설정하고 사용자 2는 하위 영역 2에서 HTTP 세션 오브젝트를 설정합니다.

설정된 HTTP 세션 오브젝트 없이 하위 영역에 액세스할 경우 하위 영역 선호도는 없습니다. 그러므로 사용 가능한 하위로 요청을 디스패치할 수 있습니다. WLM은 다음의 모든 조건이 존재할 경우 새 하위 영역을 시작할 수 있습니다.
  • 구성은 새로운 하위(servant)를 작성할 수 있습니다.
  • 워크로드 관리자 로직은 시스템이 추가 하위 영역을 유지할 수 있는지 판별합니다.
  • 다른 하위 영역을 추가하면 큐 지연이 감소하여 지정된 목표 내에 엔클레이브가 완료될 수 있습니다.

동일 서비스 클래스에 여러 개의 하위 영역이 바인드되면 WLM은 새 요청을 긴급 하위 영역에 디스패치하려고 합니다. 긴급 하위 영역에는 디스패치된 최근 요청이 있으며 사용 가능한 스레드가 있습니다. hot 하위(servant)에 작업 백로그가 있으면 WLM은 해당 작업을 다른 하위로 디스패치합니다.

일반적으로 이 hot 하위 계획을 실행하는 것이 좋습니다. 그 이유는 hot 서버의 모든 필요한 페이지가 기억장치에 있고 JIT(just-in-time) 컴파일된 애플리케이션 메소드가 저장되며 빠른 데이터 검색을 위해 전체 데이터를 캐시하기 때문입니다. 그러나 다음과 같은 경우에는 이 계획에 문제가 있습니다.

마지막 상황에서는 HTTP 세션 오브젝트의 분배가 일정하지 않게 됩니다. 다음 다이어그램에서 대부분의 HTTP 세션 오브젝트가 하위 영역 1에 지정되었습니다.
그림 5. 핫 하위(servant) 영역에 지정된 HTTP 세션 오브젝트

HTTP 세션 오브젝트는 핫 하위(servant)인 하위(servant) 1에 지정되었습니다.

대부분의 경우 여러 하위로 작업을 디스패치하기에는 WLM 큐에 있는 요청이 충분하지 않으므로 비율이 높은 HTTP 세션 오브젝트는 하나 또는 두 개의 하위에 상주합니다. 이 동작으로 다음과 같은 원하지 않은 결과가 발생할 수 있습니다.
  • 애플리케이션이 단일 하위 영역에서 많은 오브젝트를 작성하면 가비지 콜렉션 시간이 길어질 수 있습니다.
  • 모든 HTTP 세션 오브젝트가 하나의 하위 영역에 바인드되면 WLM이 작업을 관리할 수 없기 때문에 어떤 하위 영역에서도 디스패치될 수 없어서 요청이 큐에 보유되는 시간이 길어질 수 있습니다.
  • 모든 HTTP 세션 오브젝트가 하나 또는 두 개의 하위에 상주하는 경우 단일 하위 영역의 제한시간은 HTTP 세션 오브젝트가 여러 하위에 똑같이 분배되는 경우보다 더 많은 사용자에게 영향을 미칠 수 있습니다.

위에서 설명한 hot 하위 계획 문제가 발생되는 상황 중 하나가 구성 경험에서 발생할 경우, 하위 선호도 없이 수신 HTTP 요청을 하위에 분배하도록 애플리케이션 서버를 구성할 수 있습니다. 이 기능을 사용하는 경우 애플리케이션 서버는 HTTP 요청을 라운드 로빙 방식으로 하위에 분배합니다.

다음 예제에서는 애플리케이션 서버가 하위 영역 사이에 HTTP 요청의 라운드 로빙 분배를 사용하도록 구성되어 있고 여러 하위 영역이 동일한 서비스 클래스가 지정된 작업 큐 요청에 대해 시작되었다고 가정하십시오.

선호도 없는 새 HTTP 요청이 작업 큐에 도달하면 WLM은 해당 작업을 기다리고 있는 최소 하나의 작업자 스레드가 있는 하위 영역이 있는지 확인합니다. 어떤 하위 영역에도 사용 가능한 작업자 스레드가 없으면 WLM은 하위 영역에 있는 작업자 스레드가 사용 가능할 때까지 요청을 큐에 넣습니다. 사용 가능한 작업자 스레드가 있으면 WLM은 선호도가 가장 적은 하위 영역을 찾습니다. 선호도 개수가 같은 하위 영역이 있으면 WLM은 사용 중인 서버 스레드 수가 더 적은 하위 영역에 작업을 디스패치합니다.

이 알고리즘의 목적은 상황이 변화하는 것을 고려하면서 WLM이 대기 중인 하위에서 하위 선호도 없는 수신 요청의 균형을 조절하는 것입니다. 이 알고리즘은 요청을 라운드 로빙 방식으로 서버에 무조건 지당하지 않습니다. 다음 다이어그램은 하위 영역 사이에 균형있게 분배된 HTTP 세션 오브젝트를 보여줍니다.

그림 6. 선호도 없는 하위(servant) 영역에 지정된 HTTP 세션 오브젝트

각각의 하위 영역은 대략 같은 개수의 HTTP 세션 오브젝트를 수신합니다.

이 분배 메커니즘은 선호도 없는 모든 인바운드 요청에 작동합니다. HTTP 세션 오브젝트가 작성되면 모든 클라이언트 요청은 HTTP 세션 오브젝트가 제거될 때까지 하위로 지정됩니다.

하위 영역 선호도가 없는 수신되는 HTTP 요청의 분배가 가능하도록 결정하면 분류 맵핑 파일을 일부 변경해야 할 수도 있습니다. 제품에서 제공하는 관리 라운드 로빙 지원용 맵핑 규칙에 둘 이상의 트랜잭션 클래스를 지정하도록 분류 맵핑 파일을 설정한 경우 분류 맵핑 파일에서 이 섹션을 제거해야 합니다.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=crun_wlm_sessionplacement
파일 이름:crun_wlm_sessionplacement.html