※ 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 |