기술 정보
home
채널 소개
home

Core 증설 후 DB 기동 실패

문서 유형
장애 해결
분야
관리/환경설정
키워드
Core증설
_DB_BLOCK_LRU_LATCHES
적용 제품 버전
6FS06
6FS07
7FS01
1 more property

현상

AIX 환경에서 CPU Core를 12개에서 40개로 증설한 이후, DB 기동 시 아래와 같은 오류가 발생하였습니다.
sql Value of parameter '_DB_BLOCK_LRU_LATCHES' is invalid (condition check failed: '_DB_BLOCK_LRU_LATCHES must be between %d and %d') Internal Error with condition 'jmpbuf != NULL'
SQL
복사
이는 CPU Core 수에 SMT(Simultaneous Multi Threading) thread 수를 곱한 결과가 256을 초과하는 경우, 파라미터 자동계산 오류로 인한 DB 기동에 실패합니다.

원인

_DB_BLOCK_LRU_LATCHES [ (CPU Socket * CPU Core) * 4 ] 파라미터의 최대값이 1024로 제한되어 있어 발생한 문제입니다.
CPU Core * SMT thread 수가 256을 초과할 경우, Value of parameter '_DB_BLOCK_LRU_LATCHES' is invalid 오류 메시지와 함께 DB 기동이 실패합니다.
DBWR_CNT = ( CPU Socket * CPU Core ) / 4
_DB_BLOCK_LRU_LATCHES = ( CPU Socket * CPU Core ) * 4
예를 들어, CPU Socket = 8, CPU Core = 32인 서버에서는 아래와 같이 계산됩니다.
DBWR_CNT = (8 * 32) / 4 = 64
_DB_BLOCK_LRU_LATCHES = (8 * 40) * 4 = 1024
CPU Socket * CPU Core 값이 256을 초과할 경우, _DB_BLOCK_LRU_LATCHES 자동 계산 결과가 최대값을 초과하게 되어 문제가 발생합니다.

해결

1. 패치 적용 _DB_BLOCK_LRU_LATCHES 파라미터의 최대값 제한을 제거한 273632d 패치를 적용함으로써 해당 문제를 근본적으로 해결할 수 있습니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
2. 회피책
CPU Socket * CPU Core 값이 256을 초과하는 서버에서는 아래 파라미터를 수동으로 설정한 후 DB를 기동합니다.
_DB_BLOCK_LRU_LATCHES=1024
DBWR_CNT=64
참고
SMT (Simultaneous Multithreading)
SMT는 하나의 물리적 CPU 코어가 여러 개의 논리적 쓰레드(logical threads)를 동시에 실행할 수 있도록 지원하는 기술입니다.
_DB_BLOCK_LRU_LATCHES
Buffer Cache의 LRU(Lowest Recently Used) 리스트와 관련된 래치(latch) 개수를 설정하는 파라미터입니다.
DBWR_CNT
Database Writer(DBWR) 프로세스의 개수를 설정하는 파라미터입니다.