현상
노멀부팅이 된 상태에서 tbsql로 접속이 안 되고 slog에 에러가 상시로 찍히는 현상을 설명합니다.
slog에 기록되는 에러코드는 다음과 같습니다.
network_recv_fd: Invalid fd info from listener
SQL
복사
원인
티베로 부팅 시, 현재 프로세스에서 열 수 있는 최대 fd 개수와 티베로가 사용할 fd수를 비교하는 절차가 수행됩니다.
이때 프로세스의 최대로 오픈할 수 있는 fd 개수가 티베로에서 필요한 fd 개수보다 적었기 때문에 이를 경고하는 메시지가 slog에 출력되었습니다.
해결
limits.conf 파일에 nofile을 사용자에 맞게 설정합니다.
1. nofile 조회
[tibero@centro1 ~]$ ulimit -aH
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14770
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 65536
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[tibero@centro1 ~]$ ulimit -aS
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14770
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 16384
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
SQL
복사
2. limits.conf 설정 (root 권한)
tibero soft nproc 16384
tibero hard nproc 65536
tibero soft nofile 16384
tibero hard nofile 65536
SQL
복사
hard limit이 충분하다면 root권한 없이 해당 유저로 soft limit을 늘려줄 수도 있습니다.
다만 이는 해당 세션에서만 적용되는 fd 개수이므로 위의 limits.conf 파일을 반드시 늘려주어야 합니다.
ulimit -Sn [원하는값]
SQL
복사