본문 바로가기

LiveKD

Livekd와 Windows Debugging tool을 이용한 Page pool 확인 방법 최근 C게임의 게임 서버에서 게임 서버 프로세스가 얘기치 않게 종료되는 장애가 발생하여 담당자의 요청으로 해당 서버를 살펴 보니 시스템이 시작 된지 얼마 되지 않았음에도 paged pool의 사용률이 매우 높았습니다. 담당자에게 물어보니 게임서버 프로세스가 종료 된 시점이 주말, 사용자가 그나마 가장 많은 시점이었고 물리 메모리가 90%이상 사용중이었으며 리소스 부족으로 게임 프로세스가 얘기치 않게 종료 되었다고 하여 아무래도 Paged pool이 2G이상의 물리 메모리를 사용하고 있어서 게임프로세스에 추가로 할당 할 메모리기 부족했었던 것 같아서 먼저 paged pool의 사이즈가 2G이상인 원인을 찾아보기로 했습니다.인터넷이 안되는 서버라 Windows Debugging tool과 Sysinterna.. 더보기
인터넷이 안되는 환경의 서버에서 Livekd를 이용한 Full dump 수집 방법 인터넷이 안되는 환경의 서버에서 Livekd를 이용한 Full dump 수집 방법 인터넷이 안되는 환경의 서버에서 간혹 LiveKD를 이용해서 메모리 덤프 수집을 해야 하는 경우가 간혹 있는데 예전에는 해당 머신과 동일 빌드 버전의 OS를 인터넷 환경에 설치하거나 인터넷이 연결 된 동일 환경 OS에서 Windbg 설치 후 LiveKD를 이용하여 심볼을 다운 받고 그 심볼을 인터넷이 안되는 환경에 복사 후 Livekd를 이용하여 Full dump를 수집 하였습니다. 그런데 인터넷이 안되는 환경과 인터넷이 되는 환경의 같은 OS도 빌드 버전이 보안 업데이트 설치 여부에 따라 달라지는 경우가 많아 같은 OS의 심볼을 받아도 LiveKD가 실행 되지 않는 경우가 다반사 였습니다.최근 서버에서 online 중에 .. 더보기
커널 메모리(Nonpaged pool, Paged pool) 사용량 모니터링 방법 Event 2019, 2020은 Nonpaged pool이나 Paged pool이 부족 할 경우 발생한다고 여러차례 설명을 하였습니다. Nonpaged pool과 pagde pool를 합쳐서 pool memory(풀 메모리)라고 합니다. http://ryuchan.kr/entry/Nonpaged-pool비페이징-풀-Paged-pool페이징-풀 이 풀 메모리에는 시스템 관련 드라이버나 커널 객체들이 로드 되는데 풀 메모리 부족 현상이 발생하는 주요 이유는 풀 메모리에 로드 되는 드라이버들의 메모리 누수(Leak) 때문입니다. 풀 메모리의 부족으로 Event 2019혹은 2020이 발생 한다면 아래와 같은 4가지 방법으로 시스템의 풀 메모리를 가장 많이 사용하는 Pool tag를 확인 할 수 있습니다. 문제.. 더보기
Dynamic Kernel Addressing Windows Server 2003 운영체제에서는 시스템 시작 시 커널 리소스(paged pool, Nonpaged pool)가 서버의 환경(PAE, 3GB 옵션등)에 따라 135M~ 470M까지 할당 되었습니다. http://ryuchan.kr/16 Nonpaged pool과 Paged pool의 할당 값이 고정 됨으로써 유연하지 못하게 커널 리소스가 할당 되고 비 효율적으로 리소스가 운영 되어 Windows Server 2008 에서는 Limit을 제거하고 동적으로 메모리 공간을 조절할 수 있도록 하였습니다. 그래서 Windows server 2008 x86에서 최대 각 각 1.5G(Nonpaged pool) 의 2G(paged pool) 커널 리소스를 사용 할 수 있습니다. 해당 기능은 Defaul.. 더보기
LiveKD.exe를 이용하여 운영중인 시스템에서 Full Memory Dump 수집하는 방법 LiveKD.exe를 이용하여 운영중인 시스템에서 Full Memory Dump 수집하는 방법 참고 아래 방법은 현재 운영중인 시스템에 Crash 등 어떠한 영향도 주지 않습니다. 단지 File I/O 가 많이 발생하여, Dump를 수집하는 동안 성능에 약간의 문제가 있을 수 있습니다. 참조하십시오. 준비사항 1. 아래 링크에서 Debugging 툴인 windbg (Debugging Tools for Windows)를 다운로드하여 설치를 합니다. http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx C:\Program Files\Debugging Tools for Windows (x86) 폴더가 생성 됩니다. 참고 위 링크는 32Bit 용 w.. 더보기