잘 돌던 프로그램이 죽었다!!
그래서 뒤져본 로그에서는 Out of Momory?? or Not enough Memory??
이거 정말 메모리 문제인지??? 평소엔 30%밖에 사용안하던 메모리가 왜 갑자기 다 썻다는건데??
이런적 있으신가요?
정말 메모리가 부족한건지? 어떤 녀석이 메모리를 많이 사용한건지 궁금할때 있습니다.
그럴때 인터넷 검색해서 잘 모르는 프로그램 깔아서 모니터링하기... 깨름찍 합니다~~
그래서 간단한 윈도우 명령어 몇가지로 배치파일 만들어서 모니터링 하는 방법 알려드립니다~
TaskList
잘 모르시겠지만 윈도우 명령어중에 TaskList라는 녀석이 있습니다.
지금 바로 실행해보시면 아래와 같은 결과가 나옵니다.
그래서 뒤져본 로그에서는 Out of Momory?? or Not enough Memory??
이거 정말 메모리 문제인지??? 평소엔 30%밖에 사용안하던 메모리가 왜 갑자기 다 썻다는건데??
이런적 있으신가요?
정말 메모리가 부족한건지? 어떤 녀석이 메모리를 많이 사용한건지 궁금할때 있습니다.
그럴때 인터넷 검색해서 잘 모르는 프로그램 깔아서 모니터링하기... 깨름찍 합니다~~
그래서 간단한 윈도우 명령어 몇가지로 배치파일 만들어서 모니터링 하는 방법 알려드립니다~
TaskList
잘 모르시겠지만 윈도우 명령어중에 TaskList라는 녀석이 있습니다.
지금 바로 실행해보시면 아래와 같은 결과가 나옵니다.
tasklist 이미지 이름 PID 세션 이름 세션# 메모리 사용 ========================= ====== ================ ======== ============ System Idle Process 0 Console 0 28 K SYSTEM 4 Console 0 300 K smss.exe 780 Console 0 424 K csrss.exe 828 Console 0 10,780 K winlogon.exe 852 Console 0 4,468 K
위에서 볼 수 있듯이 TaskList라는 명령은 현재 동작중인 프로세스와 프로세스의 간단한 정보를 보여줍니다.TaskList /? 를 실행해서 도움말을 참고하시면 더욱 다양한 옵션이 있습니다.
특정 프로세스의 메모리 사용량 조사하기
tasklist /FI "IMAGENAME eq chrome.exe" 이미지 이름 PID 세션 이름 세션# 메모리 사용 ========================= ====== ================ ======== ============ chrome.exe 2512 Console 0 82,164 K chrome.exe 3336 Console 0 21,644 K chrome.exe 3316 Console 0 25,668 K chrome.exe 4036 Console 0 76,036 K chrome.exe 1972 Console 0 36,696 K chrome.exe 2992 Console 0 59,912 K chrome.exe 344 Console 0 116,540 K chrome.exe 3104 Console 0 54,856 K chrome.exe 3160 Console 0 40,700 K
/FI 옵션으로 필터를 걸어서 IMAGENAME으로 필터링하면 됩니다.
하지만 필터의 옵션이 eq (Equal) 혹은 ne(Not Equal)만 존재하기 때문에 패턴으로 필터링하기는 부족하구요 이경우 아래와 같이 find 명령어와 같이 조합해줍니다.
(find 명령어는 Unix의 grep과 비슷한 기능을 제공하는 유용한 명령어입니다. 자세한 내용은 http://blog.naver.com/icary/140047642511를 참고)
tasklist | find "sv" nvsvc32.exe 1092 Console 0 4,692 K svchost.exe 1128 Console 0 5,256 K svchost.exe 1172 Console 0 4,556 K svchost.exe 1524 Console 0 28,032 K svchost.exe 1580 Console 0 4,172 K spoolsv.exe 2040 Console 0 5,640 K npkcmsvc.exe 2892 Console 0 2,924 K
메모리 사용량을 기준으로 조사하기
메모리를 많이 사용하는 녀석들이 궁금하다면 아래와 같이 메모리 사용량으로 필터링 하면 됩니다.
다행이 이 경우는 비교 옵션이 다양하네요. eq(Equal), ne(Not Equal), gt(Greater Than), lt(Less Than), ge(Greater or Equal), le(Less or Equal)
tasklist /FI "MEMUSAGE gt 51200" 이미지 이름 PID 세션 이름 세션# 메모리 사용 ========================= ====== ================ ======== ============ chrome.exe 2512 Console 0 81,772 K chrome.exe 4036 Console 0 76,540 K chrome.exe 2992 Console 0 60,020 K chrome.exe 344 Console 0 128,468 K chrome.exe 3104 Console 0 54,520 K
예제하나!!
이렇게 TaskList를 활용해서 필요한 명령을 만든다음에 윈도우 Scheduler에 등록해서 결과를 파일로 쌓아주시면 간단하게 메모리 사용량을 모니터링할 수 있습니다.
아래 예제 배치파일을 참고하세요.
SET LOGFILE=D:\MEM_USAGE\MEM.log echo **********************************%today%%time%********************************** >> %LOGFILE% tasklist | find "oracle" >> %LOGFILE% tasklist /FI "MEMUSAGE gt 51200" >> %LOGFILE% echo ********************************************************************************* >> %LOGFILE%