다중 스레드 최적화
다중 스레드 최적화를 사용으로 설정하여 Contact Optimization의 성능을 향상시킬 수 있습니다. 다시 말해 Contact Optimization 세션을 실행하는 데 걸리는 시간을 단축할 수 있습니다.
다중 스레드 최적화를 설정하려면 EnableMultithreading 구성 특성을 true로 설정하십시오.
다중 스레드 최적화를 설정하면 Contact Optimization 성능이 상당히 향상될 수 있습니다. 성능 향상 정도는 다음과 같은 여러 요인에 따라 달라집니다.
- 사용하는 최적화 규칙 유형
- 해당 규칙과 데이터 간 상호작용
- 데이터베이스 I/O 속도
- 하드웨어 유형 및 구성
하지만 빌드 청크 시간에 유의하십시오. 빌드 청크 시간이 청크 프로세스 시간을 초과하면 청크 처리 스테이지의 멀티스레딩이 효율적이지 못할 수 있습니다.
달성할 수 있는 최대 병렬 처리 수준은 처리에서 병렬이 아닌 부분에 따라 조정되며 Contact Optimization 세션마다 다릅니다.
일반적으로 다음 가이드라인을 사용하십시오.
다중 스레드 최적화를 설정하면 최적화 스테이지의 성능만 향상시킬 수 있습니다.
최적화 세션 실행의 상당 부분에 다음 단계가 포함됩니다.
- 제안된 컨택 테이블(PCT)에서 데이터 읽기
- 최적화 규칙 표시
- 데이터베이스에서 데이터 준비 및 검색
- 청크 작성 및 무작위화
- 최적화된 컨택 테이블(OCT)에 쓰기
다중 스레드 최적화는 직렬로 실행되는 해당 프로세스에 영향을 주지 않습니다. PCT 읽기와 OCT 쓰기 성능을 개선하려면 데이터베이스 로드 유틸리티를 사용하여 데이터베이스 구성을 최적화하십시오.
Contact Optimization 세션에서 고객 간 규칙을 사용하지 않는 경우 다중 스레드 최적화의 성능 향상이 제한됩니다.
Contact Optimization에서는 고객 간 규칙을 구현하는 알고리즘을 처리할 때 다중 스레드 최적화를 가장 많이 사용합니다.
일반적으로 성능을 최대화하려면 사용 가능한 최대 스레드 수가 달성 가능한 최고 병렬 처리 수준보다 크거나 같아야 합니다. 그러나 기타 하드웨어 제한사항으로 인해 다중 스레드의 성능 영향력이 감소할 수 있습니다. 예를 들어, 사용 중인 스레드 수를 지원하기에 사용 가능한 RAM이 충분하지 않은 경우 최적화 세션을 실행할 수 없을 수도 있습니다. 하드웨어에 다중 코어(프로세서 대신)가 있으며 다중 하드웨어 스레드에서 동일한 캐시를 사용하는 경우 캐시 I/O에 따라 성능이 제한될 수 있습니다.
MaxCustomerSampleProcessingThreads 구성 특성을 사용하여 고객 간 규칙을 처리하는 스레드 수를 정의합니다. 사용 가능한 RAM과 하드웨어 성능 특성에 기반하여 이 설정의 최적값을 찾도록 시스템을 튜닝해야 합니다.
- CustomerSampleSize가 작은 경우 스레드당 RAM 사용량이 감소하므로 더 많은 스레드를 병렬로 실행할 수 있습니다. 그러나 이 값이 작아지면 청크를 처리하는 데 필요한 시간도 줄어듭니다. 이러한 구성은 청크 처리와 프로세싱 전 사이의 크기도 감소시켜 프로세싱 전에 병목 현상이 더 빨리 발생합니다.
고객 간 규칙을 처리하는 스레드 수를 최적화하는 경우 고객 샘플의 데이터를 읽는 데 사용되는 스레드 수 또는 스테이징 테이블에 최적화된 컨택을 기록하는 데 사용되는 스레드 수를 늘려 성능을 추가로 향상시킬 수 있습니다.
ProcessingThreadQueueSize 구성 특성을 사용하여 고객 샘플의 데이터를 읽는 스레드 수를 정의합니다. PostProcessingThreadQueueSize 구성 특성을 사용하여 스테이징 테이블에 데이터를 기록하는 스레드 수를 정의합니다.
특정 Contact Optimization 구현에 맞게 다중 스레드 최적화를 조정하는 작업에 대한 자세한 내용은 IBM 담당자에게 문의하십시오.