DataStage에 대한 워크로드 관리 정책 구성
구성 파일을 편집하여 DataStage 에 대한 워크로드 관리 정책을 구성하거나 프로젝트에서 DataStage 인스턴스 설정을 편집하여 구성할 수 있습니다.
정책
다음 시스템 정책에 대한 임계값을 설정할 수 있습니다.
- 작업 수
- 시스템에서 허용되는 동시 실행 작업의 최대 수를 지정하십시오. 기본값은 20개의 동시 실행 작업입니다. 각 런타임 인스턴스에 가장 적합한 값은 사용 가능한 리소스, 파티션 수 및 SLA에 따라 다릅니다.참고: 작업 수에는 파이프라인에서 실행되는 작업은 제외됩니다.
- 대기열별 작업 수
- 각 우선순위(낮음, 중간, 높음)에 대해 최대 동시 실행 작업 수를 지정합니다.
- 작업 시작
- 지정된 시간(초) 동안에 시작할 수 있는 최대 작업 수를 지정하십시오. 기본값은 10초에 100개의 작업입니다.
- CPU 사용량
- 시스템에서 허용하는 최대 CPU 사용량을 지정하십시오. 현재 CPU 사용량이 이 값을 초과하면 작업을 시작할 수 없습니다. 기본값은 80퍼센트의 CPU 사용량입니다. 소규모 작업이 많은 경우 대기열에 작업이 쌓이는 것을 방지하기 위해 더 높은 값을 고려할 수 있습니다.
- 메모리 사용량
- 시스템에서 허용하는 최대 메모리 사용량을 지정하십시오. 메모리 사용량이 이 값을 초과하면 작업을 시작할 수 없습니다. 기본값은 80퍼센트의 메모리 사용량입니다. 소규모 작업이 많은 경우 대기열에 작업이 쌓이는 것을 방지하기 위해 더 높은 값을 고려할 수 있습니다.
구성 파일 편집
구성 파일 wlm.config.xml을(를) 편집하여 정책을 구성하려면 다음 단계를 완료하십시오.
- Red Hat®
OpenShift® 클러스터에 인스턴스 관리자로 로그인하십시오.
oc login -u kubeadmin -p xxxxx-xxxx-xxxx - 업데이트할 런타임 인스턴스를 찾으십시오. 예를 들어, 기본 인스턴스를 업데이트하려면 다음을 수행하십시오.
oc get pods | grep ds-px-default-ibm-datastage-px-runtime - 런타임 팟에서 쉘 열기:
oc rsh ds-px-default-ibm-datastage-px-runtime-7b5b7975b8-jnzbg - 디렉토리를 워크로드 관리 홈 디렉토리로 변경하십시오. 예를 들어, 다음과 같습니다.
sh-4.4$ cd /opt/ibm/PXService/Server/DSWLM - 워크로드 관리 중지:
sh-4.4$ ./stopwlm.sh - 구성 파일을 편집하십시오.
bash-4.4$ nano /px-storage/config/wlm/wlm.config.xml - 설정하려는 정책에 따라 구성 파일에 다음 정보를 추가하십시오.
- 작업 계수 및 작업 시작
- 참고: 작업 수에는 파이프라인에서 실행되는 작업은 제외됩니다.
<!-- Declare a list of computing resources --> <Resources> <Resource name="JobCount" value="5" /> <Resource name="StartJob" value="5" timeFrame="4" /> </Resources>
- CPU 사용량 및 메모리 사용량
<!-- parameter to indicate CPU cap (in percent) --> <Parameter name="CPUCap" value="95" /> <!-- parameter to indicate memory cap (in percent) --> <Parameter name="MemoryCap" value="80" />
- 대기 중인 최대 작업 수
- '
MaxQueuedJobs' 파라미터의 기본값은 '1000입니다. 값이 '0'로 설정된 경우 'MaxQueuedJobs' 확인은 건너뜁니다.<!-- parameter to configure maximum number of queued jobs --> <Parameter name="MaxQueuedJobs" value="1000" />
- 워크로드 관리를 시작하십시오.
sh-4.4$ nohup ./startwlm.sh & [1] 16034 sh-4.4$ nohup: ignoring input and appending output to 'nohup.out' - 워크로드 관리가 실행 중인지 확인하십시오.
sh-4.4$ ps -ef | grep WLM | grep -v grep 1000630+ 16034 15905 3 15:02 pts/0 00:00:00 ./../../jdk/bin/java -Xmx2048m -classpath ./dist/lib/commons-lang-2.6.jar:./dist/lib/commons-codec-1.15.jar:./../../ASBNode/lib/java/jsr311-api-1.1.1.jar:./../../ASBNode/lib/java/slf4j-api-1.6.1.jar:./../../ASBNode/lib/java/wink-1.2.1-incubating.jar:./../../ASBNode/lib/java/wink-client-1.2.1-incubating.jar:./../../ASBNode/lib/java/wink-common-1.2.1-incubating.jar:./../../ASBNode/lib/java/wink-server-1.2.1-incubating.jar:./dist/lib/wlm.jar:./dist/lib/wlmstart.jar com.ibm.iis.common.wlm.service.server.ds.DSWLMServer sh-4.4$
메트릭
워크로드 관리가 메트릭을 읽는 방법에 영향을 주도록 READ_COMPUTE_METRICS_FROM을 설정할 수 있습니다. px-runtime 배치 파일을 편집하여 메트릭 읽기 및 재시도 동작을 구성할 수 있습니다.
private static final String _readMetricsFrom = System.getenv("READ_COMPUTE_METRICS_FROM");
// Set this to "socket" to use socket calls to compute pod and get the metrics
// By default the metrics are read from disk file
// Disk metrics reads that fail to be read or are stale will be retried
// with socket call unless "no_retry" is set
// Disk metrics reads can also be retried from disk by setting "disk_retry"
static
{
_readMetricsFromSocket = "socket".equalsIgnoreCase(_readMetricsFrom);
_retryMetricsFromDisk = "disk_retry".equalsIgnoreCase(_readMetricsFrom);
_retryMetricsNone = "no_retry".equalsIgnoreCase(_readMetricsFrom);
}