본문 바로가기
DBMS/ORACLE

[oracle] ORA-27300 에러 발생 status: 105

by 드바 2024. 7. 26.

에러

ORA-00603 에러와 함께 ORA-27300, ORA-27301 등등 에러 발생

status: 번호에 따라 원인이 다릅니다.

2022-08-13T19:47:55.064852+09:00
Errors in file /oracle/app/diag/rdbms/ifis/IVE/trace/IVE_ora_148122.trc (incident=2162789):
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 105
ORA-27301: OS failure message: No buffer space available
ORA-27302: failure occurred at: sskgxpsnd2

 

 

분석

MTU값이 높은 NIC의 경우 Network Buffer의 단편화(Fragmentation) 을 유발할 수 있고, 이러한 단편화(Fragmentation)로 연속된 충분한 buffer size를 할당받지 못하면 에러가 발생하게 됩니다.

 

Network buffer

OS의 Memory 일부를 network buffer 로 활용합니다.

lo MTU 조정이 가이드 되는 이유는 network 사용량이 많아 fragmentation이 진행되는 상황에서

이러한 큰 segment size (64k) 의 경우 network buffer 연속된 free 영역 할당을 못 받을 가능성이 높아지기 때문에 그렇습니다.

 

network buffer의 경우 kernel parameter 설정값에 따라 fix된 영역(vm.min_free_kbytes)을 사용하기에 TOP 과 같은 memory 사용률을 확인하여도 이에 대한 명확한 사용량을 확인하기 어렵습니다.

(Linux 기준 /proc/net/sockstat 등을 참조해야함.)

거기에 network buffer 내부의 fragmentation 현황은 더욱 어려움

 

영향도

해당 Process가 에러로 종료되지만 중요 Background Process가 해당 에러로 종료되는경우 instance crash 발생 가능

(보통 Background Process는 Instance 기동 시점에 생성되므로 가능성 적음)

 

조치 가이드

crs 재기동 필요하며 RAC 환경에서 롤링으로 작업 가능, 모든 노드에 동일값으로 설정

crs stop -> 값 설정 -> crs start

- loopback NIC MTU 사이즈 16436 으로 설정
- vm.min_free_kbyte = 서버 전체 물리적 메모리의 0.4%

댓글