Out of Memory 질문입니다.
64비트로 리눅스를 설치하고 서비스 하는 도중에 발견된 문제 입니다.
/var/log/message 에
kernel : Out of Memory
라고 메세지가 올라오고 프로세스가 죽어버렸습니다.
서버 사양은 제온 e5500 2CPU 메모리 8기가 이며 해당 로그 시점에 메모리는 사용은 약 4기가 정도 였습니다.
개발 언어는 C 이며 컴파일은 gcc로 하였으며
클라이언트에서 Socket 접속이 안되는 현상입니다. 기존에 소켓에 접속되어있는것도 끊어진 현상입니다.
방화벽은 사용되지 않는 상황이었습니다.
sysctl.conf 를 참고하여 올리겠습니다.
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 262144
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.core.netdev_max_backlog = 2500
net.ipv4.netfilter.ip_conntrack_max = 1000000
sar 정보등의 성능정보 수집현황을 보세요
sar 정보등의 성능정보 수집현황을 보세요 일단은..기록없으면 그냥 "아 어디서 메모리가 샜구나.." ...
p.s
다른 질문글 보니까 oom과 oosm이 섞여 있으신 것 같은데;; 에헴;;
/proc 아래 메모리 관련부분과 tcp/udp 및 기타 네트워크 관련 파라미터들을 지속적으로 모니터링하셔서 정확하게 어느 항목이 모자른지 확인해보셔야 할 것 같습니다.
댓글 달기