현상
설정된 최대 파일 디스크립터(fd: file descriptor) 수를 초과해 fd 생성 실패하여 aix 에서 _pollset_calc(cur=16383, max=17812) failed. 발생한 오류 현상입니다.
발생하는 오류 메세지는 다음과 같습니다.
[07-30T22:39:57.808733] [FRM-222] [I] _pollset_calc(cur=16383, max=16523) failed.
[07-30T22:39:57.808852] [FRM-222] [I] event addition failure - fd=16523, flags=5, return=-1, errno=0, evt=000000014f3bbda0
[07-31T15:35:58.459412] [FRM-222] [I] _pollset_calc(cur=16383, max=16524) failed.
[07-31T15:35:58.459457] [FRM-222] [I] event addition failure - fd=16524, flags=5, return=-1, errno=0, evt=000000014f3bd310
SQL
복사
원인
•
ulimit -n 값이 unlimited로 설정되어 있어도, 실제로는 내부 최대값(16383)으로 제한되어 있어 에러가 발생합니다.
•
세션 수가 많고 데이터 파일이 많은 환경에서, 생성되는 파일 디스크립터 수 (fd max)가 제한(cur=16383) 값을 초과하여 에러 발생합니다.
해결
1.
패치를 적용합니다. (적용 패치: 244094 메모리 커널 관련 최신 패치)
주의
티맥스티베로에서 제공하는기술지원을 통해 패치를 적용합니다.
2.
회피책을 설정하여 오류 해결을 시도할 수 있습니다.
참고
회피책으로서 ulimit -n 값을 unlimited가 아닌 명시적인 값으로 설정하여 오류를 해결합니다.
•
권장 계산식: (_WTHR_PER_PROC * (데이터 파일 수 + 15)) + (tbsvr 프로세스 수 + 5) + 100 또는 3,000,000 으로 설정 권장.