YUMSERV
Published 2019. 6. 29. 21:43
Coredump 생성 LINUX/BASIC
반응형

※ CentOS 7 , Apache 2.4 에서 테스트 진행


기본적으로 linux 서버에서는 coredump가 생성되지 않습니다.


1. 해당 설정 보는 방법

# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 7166

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

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) 7166

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited


2. coredump 파일 사이즈 변경

# ulimit -c unlimited

# ulimit -a

core file size          (blocks, -c) unlimited

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 7166

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

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) 7166

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

파일 사이즈 변경하는 설정은 해당 user만 변경되어 적용되며, reboot 후에는 다시 설정해야 합니다.

reboot 후에도 유지되게 설정하려면 아래 파일을 수정해야 합니다. 

/etc/security/limits.conf


core 파일 생성시, 패턴 확인

# sysctl -a |grep core

kernel.core_pattern = core

kernel.core_pipe_limit = 0

kernel.core_uses_pid = 1



3. apache conf 파일 수정

Apache 프로세스의 Coredump 파일 생성을 위해, 설정해주었습니다.

# vi /usr/local/apache/conf/httpd.conf

CoreDumpDirectory /tmp/apache_dump


# mkdir /tmp/apache_dump

# /etc/init.d/apachectl restart


4. Coredump 테스트

덤프 파일 생성되는지 확인을 위해, 실행중이던 아파치 프로세스 다운

# ps -ef |grep httpd

root     27086     1  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon   27087 27086  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon   27088 27086  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon   27089 27086  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start


# kill -SIGFPE 27086

# ps -ef |grep httpd

daemon   27088     1  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon   27089     1  0 21:22 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon   27216     1  0 21:23 ?        00:00:00 /usr/local/apache/bin/httpd -k start

root     27273 25903  0 21:23 pts/0    00:00:00 grep --color=auto httpd

# ll /tmp/apache_dump/

합계 8108

-rw------- 1 root root 8302592  6월 29 21:23 core.27086

coredump 파일명이 core.프로세스 명으로 생성되었습니다.


coredump는 gdb로 분석이 가능하며, 설치가 기본적으로 안되어있으므로, 설치 진행 후 분석합니다.

# yum -y install gdb


gdb로 coredump 확인하는 방법은

# gdb [coredump파일명]

# gdb /tmp/apache_dump/core.27086 


반응형

'LINUX > BASIC' 카테고리의 다른 글

Telegram 설치  (0) 2019.07.24
FTP 접속 에러  (0) 2019.07.17
python3 소스설치  (0) 2019.06.04
Git 설치 및 설정  (0) 2019.06.03
nmon 설치  (0) 2019.06.03
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!