IPC 질문, 세마포어 생성시 no space left on device
$ uname -a
HP-UX xxxxxx B.11.11 U 9000/800 1627309396 unlimited-user license
새벽 3시에 실행되는 배치프로그램이 있습니다.
배치프로그램은 공유메모리를 세마포어로 제어합니다.(세마포어한개,공유메모리 한개밖에 안씁니다.)
배치프로그램 초기화작업중..
세마포어를 생성하면서(semget()함수) no space left on device 라는 에러가 발생하고 종료했습니다.
man을 실행해보면 아래와 같이 나옵니다.
$ man semget
[ENOSPC] A semaphore identifier is to be created, but the
system-imposed limit on the maximum number of
allowed semaphore identifiers system wide would be
exceeded.
세마포어의 id가 시스템 전역적인 최대개수를 초과했다는 의미인 것 같습니다.
장애가 발생한 서버의 semmns 값은 5844 인데요
평상시에는 120개정도의 세마포어가 사용중입니다.
semmns의 max값을 늘리면 되겠다 생각했는데..
부장님이 뭐 때문에 부족한건지 자료를 만들라고 합니다.
원인 규명을 논리적으로 하라는 것이죠. ㅠㅠ
그래서..
새벽3시에 동작하는 배치 프로그램목록을 뽑아봤는데
간단한 배치프로그램 몇 개와 DB백업이 새벽3시에 동작하더군요.
(오라클 DBMS와 배치프로세스가 같은 머신에서 동작한다는... ㅜ.-)
그래서 DB백업때문에 IPC자원부족이라는 문제가 생겼을 것으로 잠재적인 결론을 내렸습니다.
그래서 질문을 이렇게 드리게 되었습니다.
1. DB백업(아마 아카이브 백업이겠죠?)시에 세마포어를 많이 사용하는지요?
DB백업이 너무 많은 세마포어를 생성해서 (5844개 이상) 문제가 발생할 가능성이 있는지요?
2. 공유메모리 생성시에도 no space left on device 오류가 발생하는데
세마포어개수가 max값을 초과하면 공유메모리 생성도 실패하는지
또는 공유메모리의 개수가 max개수를 초과하면 세마포어생성이 실패할 수 있는지요?
3. 혹시 전날 DB백업을 수행 후 IPC자원의 clear가 제대로 안될 수도 있을까요?
그래서 처음에는 문제없다가 리소스 해제의 실패가 누적되어서 에러를 발생할 수 있는가?
4. 오라클 로그를 보고 싶은데... 금융권 운영서버라 권한을 안줍니다.
만약 봐야 한다면.. 어떤 파일, 어떤 부분을 체크해야 할까요?
====================================
설정관련 조금 더 적어드립니다.
nproc 8020
## 세마포어
semmap 2924
semmni 2922
semmns 5844
semmnu 1457
semume 64
semvmx 65534
## 공유메모리
shmmax 2147483648
shmmni 512
## 메시지큐
msgmap 1463
msgmnb 65535
msgseg 8192
msgssz 128
msgtpl 1461
허접한 답변이라도 주시면 감사
=====================
허접한 답변이라도 주시면 감사
=====================
댓글 달기