서버를 관리하다 보면 non paged pool이 부족하다는 메시지(event log 2019, 2020)과 함께 서비스가 다운되는 경우를 볼 수 있다. 이런 경우 대부분 app 관련한 프로그램이 과다하게 non paged pool을 사용하여(memory leak, virus...) 해당 서버에 non paged pool 메모리가 부족하여 메시지를 발생시키는 경우이며 현상으로는 서비스가 메모리를 할당받지 못하고 비정상적으로 종료가 되어진다. 이런 경우 다음과 같이 메모리 덤프 디버깅이 필요하다. 1. 메모리 사용량 확인 !vm 명령어를 사용하여 다음과 같이 메모리 사용량을 확인한다. 7: kd> !vm *** Virtual Memory Usage *** Physical Memory: 1572623 ( 6..
오늘 볼 내용은 windbg라는 debugging툴을 사용한 메모리 덤프 분석이다. 내컴퓨터 -> 등록정보 -> 고급 -> 시작 및 복구 항목의 설정을 선택하면 다음 그림을 확인할 수 있다. 위와 같이 디버깅 정보 쓰기에서 덤프 설정을 할 수 있다. 메모리 덤프는 서버가 오류로 인해 다운되었을 때 메모리에서 어떤 내용이 있었는지에 대해 파일로 떨어뜨리게 된다. 현재 서버의 메모리 양에 따라 일반적으로 덤프 종류를 설정하게 되는데 일반적으로 4GB미만일 경우 커널메모리 덤프를 설정하고 그 이상의 경우 Internal Disk 크기에 따라 설정하게 된다. %SystemRoot%는 C:\Windows 폴더이며 해당 폴더 밑에 Memory.dmp 파일로 생성이 된다., 서버의 오토 리부팅이 된 경우 원인 분석을..
Windows 2008에는 역할이라는 개념이 있습니다. 역할이란 기존 Windows에서 Windows 추가 요소라고 생각하시면 됩니다. 역할은 서버관리자에서 선택할 수 있다. 서버관리자의 왼쪽 Tab의 역할을 클릭하면 다음과 같은 화면이 나옵니다. 역할을 누르면 설치된 역할과 각각의 역할의 상세내역을 확인할 수 있다. 역할 요약에서 역할 추가를 누르면 새로운 역할을 추가할 수 있다. 역할 추가를 누르면 아래 화면이 뜹니다. 해당 내용을 확인한 후 다음 버튼을 누릅니다. 해당 서비스 중 원하는 서비스를 선택합니다. 여기서는 파일 서비스를 예로 깔아보겠습니다. 각각의 서비스는 서비스 종류에 따라 리부팅이 필요한 경우와 필요없는 경우로 나뉩니다. 파일 서버의 상세 내용이 나옵니다. 원하는 기능을 선택한 후 다..
Windows 2008을 깔아본 후 가장 먼저 궁금한 점은 백업이 어떻게 변경되었나입니다. Windows 초창기엔 플로피 디스크를 이용해 부팅이 가능할 수 있도록 백업이 지원되었으며 가장 최근의 Windows 2003의 경우 파일 백업 및 상태 백업이 지원되었습니다. Windows 2008 출시와 함께 제일 먼저 들은 소식은 자체 백업이 지원된다는 사실이었습니다. 기존에 3rd Party 제품을 사용하면서 비용이 발생했었기 때문에 그 비용을 줄일 수 있을 만한 기능을 지원하는지가 궁금했습니다. 우선 백업 설정하는 방법에 대해 알아보도록 하겠습니다. 아시다시피 Windows 2008의 대부분의 기능은 서버관리자에서 이루어지고 있습니다. 위와 같이 서버 관리자에 다양한 기능이 있으며 백업은 저장소의 Wind..
윈도우에서 라이센스 초기화 시작 -> 실행 -> regedit HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing\Store\LICENSE00 해당 내용 폴더의 내용을 삭제하면 라이센스가 삭제되어지며 서버에 재접속 시 터미널 서버에서 라이센스를 할당해 줍니다. 그러므로 서버에 접속이 안되는 경우 해당 라이센스를 삭제하면 라이센스 문제가 해결될 수 있습니다.
윈도우시스템에서 쓰이는 시스템 서비스 포트번호 리스트(출처 : http://support.microsoft.com/default.aspx?scid=kb;ko;832017)포트프로토콜 응용프로그램 프로토콜시스템 서비스 이름n/aGREGRE(IP 프로토콜 47)라우팅 및 원격 액세스n/aESPIPsec ESP(IP 프로토콜 50)라우팅 및 원격 액세스n/aAHIPsec AH(IP 프로토콜 51)라우팅 및 원격 액세스7TCPEcho단순 TCP/IP 서비스7UDPEcho단순 TCP/IP 서비스9TCPDiscard단순 TCP/IP 서비스9UDPDiscard단순 TCP/IP 서비스13TCPDaytime단순 TCP/IP 서비스13UDPDaytime단순 TCP/IP 서비스17TCPQuotd단순 TCP/IP 서비스17U..
간단하게 Windows에서 현재 떠있는 프로세스 명과 프로세스 ID 를 보여주는 소스 입니다. dim processID Set WshShell = CreateObject("WScript.Shell") Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process") For Each objItem In colItems processID = objItem.ProcessID WScript.Echo processID & " " & objItem.Caption Next 잠깐 확인할게 있어서 만든거라 기능은 전혀없으며..-_- 향후 unix의 ps와 같은 ..
예외 예외는 여러분이 생각하는 자바의 예외 C#의 예외처리의 내용과 동일합니다. 예외는 두가지로 구분됩니다. - 처리가능한 예외 - 처리 불가능한 예외 두가지에 대해 살펴 보도록 하겠습니다. 1. 처리가능한 예외 말 그대로 윈도우 자체에서 처리가능한 예외이다 . 대표적인 예로 자바의 예외처리에서 나오는 0으로 나눈 경우이다. 이런 경우 윈도우는 해당 예외처리 루틴을 발견하여 0으로 나눈 경우 처리해야하는 루틴을 실행한다. 인사이드에서는 서브 시스템의 디버거 포트에서 처리를 시도한다고 나와있다. 즉 디버거 포트가 처리가능한지를 알아보는 개념이라는 것을 알 수 있으며 해당 내역을 처리 가능한 경우 처리를 할 수 있는 예외 핸들러를 찾게 된다. 여기서 예외 핸들러를 찾는 경우 해당 예외 핸들러를 수행하여 예외..