coredump

2024. 12. 10. 11:08·Linux/Trouble shooting
반응형

coredump는 시스템 비정상적인 종료가 발생하는 경우 커널에서 해당 프로세스와 관련 된 메모리를 덤프시키는 파일. 해당 파일을 가지고 디버깅하여 문제에 대한 원인을 찾을 수 있다.

 

기본적으로 대부분의 서버에서는 coredump를 남기지 않도록하는게 기본 설정이다. 예를들어 java에서 1GB의 메모리를 사용하면 coredump는 수십GB의 달하는 파일을 생성하기 때문.

 

1. coredump 활성화 (임시적용)

#ulimit -a

core file size (blocks, -c) 0

이처럼 가장끝의 있는 값이 0이면 coredump는 남지 않기 때문에 값 수정

 

#ulimit -c 1048675 (1GB로 제한)

 

#umlit -a

core file size (blocks, -c) 1048675

 

 

2. coredump 활성화 (영구적용)

#vi /etc/security/limits.conf

* soft core 1048675

 

 

3. coredump 설정확인

#sysctl -a | grep core

kernel.core_pattern = core

kernel.core_uses_pid = 1

 

#cat /proc/sys/kernel/core_pattern

core

 

#cat /proc/sys/kernel/core_uses_pid

1 (0일 경우 pid를 출력하지 않음)

 

 

4. coredump 분석

리눅스에서는 file 명령을 통해 코어파일에 대한 정보를 얻을 수 있다.

프로그램이 죽으면 실행파일이 있는 경로에 core.xxxx 라는 파일이 생성될 것이다. gdb를 이용하여 디버깅할 수 있다.

 

예를들어, core.12345라는 코어파일이 있고, 이 파일을 생성한 프로그램명을 알고 싶다면

#file core.12345

/proc/sys/kernel/core_pattern 에서 정의된 형태로 생성되며 “uyfuyfuy”이 코어파일을 생성한 프로그램 이름이라는것을 알 수 있다.

 

#gdb uyfuyfuy core.12345

bt(back trace) : core 발생 직전의 call stack 확인

bt full : 전체 call stack 확인

f[스택프레임 번호] : 특정 stack 확인

list : stack의 code 보기

info local : stack의 수행 당시 변수 값 확인

info arg : stack의 argument 확인

where : 간략화

quit : 종료

반응형

'Linux > Trouble shooting' 카테고리의 다른 글

서버 성능 모니터링  (0) 2024.09.30
메모리 사용률이 급증한 경우  (1) 2024.09.30
리눅스 NTP 연동이 되고 있음에도 시간이 안맞는 경우  (0) 2024.09.30
리눅스에서 cpu,mem 사용률 증가원인 분석방법  (0) 2024.09.30
리눅스에서 NFS를 통한 NAS 마운트 시 디렉토리 소유자 정상출력방법  (0) 2024.09.30
'Linux/Trouble shooting' 카테고리의 다른 글
  • 서버 성능 모니터링
  • 메모리 사용률이 급증한 경우
  • 리눅스 NTP 연동이 되고 있음에도 시간이 안맞는 경우
  • 리눅스에서 cpu,mem 사용률 증가원인 분석방법
Lee seongwoo
Lee seongwoo
1st System Engineer
  • Lee seongwoo
    시스템/클라우드 관리 및 기술 공부하는 블로그입니다.
    Lee seongwoo
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Linux
        • Note
        • Trouble shooting
        • build
        • Work
        • Service
        • Start
        • Shell Script
        • APM
      • Docker
        • Configure
        • Command
        • Container 관리
        • Docker image 생성
        • 다양한 볼륨 활용
        • Network
      • Kubernetes
        • Chapter 1
      • Network
        • 스위치
        • 라우터
      • Windows
        • 인증서
        • 원격 접속
        • 암호 변경
        • 실행 Command
        • 사용자명 변경
        • Windows 점검
        • 방화벽
        • DB 절체(장애조치 클러스터)
      • Security
        • 보안 운영장비
        • 작업
        • 실무
      • Cloud
        • AWS
        • Azure
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Lee seongwoo
coredump
상단으로

티스토리툴바