문제

나는 이것이 아마도 정식 "의존 ..."질문 일 것임을 알고 있지만, 나는 어디에서 시작 해야하는지에 대한 포인터에 감사드립니다.

이더넷을 통해 클라이언트/서버 앱이 있습니다. 한 컴퓨터에서는 서버와 클라이언트를 실행하고 다른 컴퓨터에서 클라이언트를 실행합니다. 하나는 Vista를 실행하고 하나는 XP를 실행합니다. 약 3 주간의 가동 시간 후에 전체 컴퓨터가 얼어 붙지 않고 키보드가 아니라 마우스가 아닌 작동하지 않습니다. 10 초마다 서버가 핑 메시지를 보내서 클라이언트가 살아 있는지 확인합니다.

나는 그것이 내가 원인인지 다른 것을 찾으려고 노력하고 있습니다. 나는 세션을 시작했고 며칠 후에는 기억 사용이 이상한 증가를 확인할 것이라고 생각했지만 그 외에는 아이디어가 거의 없다고 생각했습니다.

도움이 되었습니까?

해결책

고려해야 할 몇 가지 생각 :

  1. 컴퓨터가 응답하지 않는다는 것을 알고 있지만 그것이 매달린 것을 의미하지는 않습니다. 핑에 반응합니까?
  2. 어쩌면 디스크 활동 조명이 항상 있을까요?
  3. "키보드 없음"이라고 말합니다 - 캡 잠금 장치 나 NUM 잠금 조명이 없습니까?
  4. .NET 애플리케이션이 당시 실행중인 유일한 .NET 애플리케이션 일 수 있지만, 이것이 문제의 원인이라는 것을 의미하지는 않습니다. 일부 배경 작업이 그렇게 할 수 있습니다.

예를 들어, 스냅 샷을 생성 할 때 Retrospect 백업이 전체 시스템을 10-15 분 동안 얼립니다. 내 말은, 캡 잠금 장치가없고, 작업 막대의 클럭이 업데이트되지 않으며, Ctrl-Alt-Del이 없으며 "답변"텍스트 상자에 입력 할 수 없습니다. 당시 내가하고 있던 일과는 아무런 관련이 없었으며, 이에 대한 질문에 대답했습니다.

그것이 돌아온 후에, 그래서 내가 인간인지 물었다. 내 감정은 다쳤다. ;-)

다른 팁

커널 디버거를 OS에 연결할 수 있습니다. 이렇게하면 OS가 완전히 응답하지 않더라도 OS 상태와 프로세스를 검사 할 수 있어야합니다. (불행히도, 그것은 단지 "break"를 치는 것보다 훨씬 어렵습니다. vs. 나는 그것을 시도하기 전에 John Robbin의 ".NET 및 Windows에 대한 디버깅 응용 프로그램"을 읽는 것이 좋습니다.)

정기적으로 응용 프로그램의 메모리 덤프를 만들 수도 있습니다. 그래도 약간의 스크립팅을해야 할 수도 있습니다. (일반적으로 userdump 또는 adplus와 같은 도구를 사용하여 Keystroke가있는 덤프를 생성하지만 OS가 KeyStrokes에 응답하지 않으면 작동하지 않을 것입니다.) 그렇게하지 않습니다. 또는 교수형 직전에. 이 페이지: http://blogs.msdn.com/debuggingtoolbox/default.aspx WindBG를 스크립팅하기위한 좋은 출발점입니다. (메모리 덤프로 무엇을 해야할지 모르겠다면 다시 존 로빈의 훌륭한 책을 디버깅에 관한 책을 제안합니다!)

그 외에는 표준 디버깅 트릭 만 생각할 수 있습니다. 모든 PC에서 문제가 발생합니까? 클라이언트 요청이없는 경우 발생합니까? 더 많은 클라이언트 요청이 있으면 더 빨리 발생합니까? 물리적 메모리가 적은 경우 더 빨리 발생합니까? 응용 프로그램의 일부를 제거하고 (테스트를 위해 별도의 서버에서) 문제가 여전히 발생하는지 확인하십시오. VM에서 실행하여 "Hangs"동안 CPU, 하드 디스크 또는 네트워크를 사용하는지 확인할 수 있습니다.

이것은 그렇지 않을 것입니다 그만큼 답변이지만 OS 이벤트 로그를 확인하고 메모리, CPU 사용량 등을 추적하기 위해 Perfmon을 실행하여 시작하는 것이 좋습니다.

어떤 컴퓨터, 서버 또는 클라이언트가 정지됩니까? 그리고 그들은 각각 어떤 OS를 실행하고 있습니까?

Daniel L이 지적했듯이 단단한 투표 루프는 CPU를 실제로 죽일 수 있습니다. 가능하면 코드를 변경하여 이벤트 처리기를 사용하면 훨씬 더 강력한 솔루션입니다.

마지막으로, 동결 컴퓨터에 하드웨어 문제가 없다고 확신하십니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top