CoreDump란 무엇이며, 어떻게 생성하는가?

CoreDump란 무엇인가?

  • CoreDump1Linux 커널에서 문제가 발생했을 경우 발생했던 문제에 대한 정보를 찍어내는 정보 입니다.
  • CoreDump의 정보로 커널에 발생한 문제에 대해 분석이 가능하므로 시스템 엔지니어링에 대해 중요한 포인트라고 할 수 있을것 같습니다.
  • 그래서 저는 제가 공부를 한 개념을 토대로 CoreDump를 몇 가지 방법을 소개해 드리려고 합니다.

방법1. 명령어를 통한 일회성 CoreDump 생성

  1. ulimit -a 명령어를 통해 커널에 셋팅된 설정값들을 확인이 가능합니다, 저희는 core file size를 확인해야 합니다.
    아래 출력물을 보시면 core file size0으로 셋팅이 되어있는것을 보실 수 있는데요.
    이는 CoreDump 파일의 사이즈를 0으로 즉 찍지 않도록 설정이 되어있는것이지요.
    [root@JechBlog ~]# ulimit -a
    core file size          (blocks, -c) 0		## 이 부분!!
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
         ... 이하 생략 ...
    
  2. ulimit -c unlimited 명령어를 수행하면 아래와 같은 결과를 보실 수 있습니다.
    [root@JechBlog ~]# ulimit -c unlimited
    [root@JechBlog ~]# ulimit -a
    core file size          (blocks, -c) unlimited	## 이 부분!!
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
         ... 이하 생략 ...
    
    • 이 명령어는 커널의 core file size 셋팅값을 변경해주는 명령어 입니다.
    • 다만 이 명령어는 재부팅 후에는 다시 원복이 되기에 일회성이라고 보시면 될것같습니다.

방법2. 파일 수정을 통한 영구적 CoreDump 생성

  1. /etc/security/limits.conf 파일의 맨 마지막 하단에 라인을 추가 합니다.
    [root@JechBlog ~]# tail /etc/security/limits.conf
         ... 이하 생략 ...
    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
    *       -       core    unlimited		## 이 부분!! (작성 필요)
    
    • 이 방법을 사용하여 설정했을 때는 재부팅 후에도 영구적으로 적용이 가능합니다.
    • 보통 고객사에 나가게 되면 영구적으로 설정이 필요하여 방법2의 방법이 많이 쓰이지 않을까 싶습니다.

이 글을 마치며

  • 오늘은 CoreDump란 무엇인지 생성은 어떻게 하는지 간략하게 두 가지 방법으로 알아보았는데요.
    IT업계에서 현업으로 일하는 저로써는 조금 많이 유용하게 썼던것 같습니다.
  • 다음에 또 엔지니어링에 도움이 될 수 있는 자료를 공부해서 블로그에 올리도록 하겠습니다.
    부족하지만 제 긴글을 읽어주셔서 감사합니다!

참조 링크 및 각주

Address

대한민국(Republic of Korea, KOR), 경기도(Gyeonggi-do) 부천(bucheon)