2010-12-28 6 views
2

약 100 명의 사용자가 로그인 한 상태에서 웹 응용 프로그램을 실행하고 있으며 모든 클라이언트가 websync를 사용하여 서버에 연결되어 있습니다. 나는 세션이 항상 살아 있도록하기위한 요구 사항을 가지고 있었기 때문에 세션이 만료 될 때 세션을 다시 생성하고 있습니다.웹 응용 프로그램이 잠겨 있고 CPU 사용량이 100 %에 도달했습니다.

하지만 3 일 또는 4 일 후에 CPU가 100 %에 도달했고 응용 프로그램이 잠긴 것으로 확인되면 서버를 다시 시작해야 작동합니다.

미리 솔루션을 제공해 주셔서 감사합니다.

감사

+0

라이센스를 구입 한 경우 (10 명 이상의 동시 사용자를 지원해야 함) 해당 지원 팀에 문의하십시오 :) – Anton

답변

2

왜 그냥 재생의 매우 긴 대신 세션 지속 시간으로 확장하지?

100 % cpu에 도달하면 서버에 대해 프로파일 러를 실행 했습니까? 이것은 얼마나 많은 스레드에서 실행중인 메소드/클래스를 효과적으로 알려야합니다. 이 정보를 통해 응용 프로그램이 많은 스레드라는 것을 추측 할 수있는 방식으로 해당 메소드/클래스를 실행하는 이유를 알 수 있습니다.

+0

이 문제를 일으키는 절차를 찾기 위해 서버에 대해 CPU를 테스트하는 방법. –

+0

좋은 .Net 프로파일 러를 보려면이 스레드를 참조하십시오. http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers –

1

이전에 다루었 듯이 Windows 업데이트가 100 % CPU 일 가능성이 있습니다.

2

우리는 수만 개의 동시 연결로 WebSync를 사용하는 고객이 많습니다. 또한 On-Demand 클러스터는 매일 수천 명의 사용자가 동시에 대기하고 있기 때문에 CPU 잠김 현상이 발생하는 경우, 아마도 코드에서 스레딩 문제가 발생했을 가능성이 높습니다 (아마 WebSync 코드와 관련 있다고 가정 할 때).

WebSync 이벤트가 모두 정적 인 것을 잊지 마십시오. 공유 리소스를 사용하는 경우 적절하게 관리해야합니다 (예 : 멀티 스레드로 간주해야 함).). 모든 WebSync 메서드 자체는 스레드 안전합니다. 그러나 자신의 이벤트에 물건이있는 경우 직접 관리해야합니다.

@Anton이 제안한대로 우리와 직접 대화를 나누실 수 있습니다!

관련 문제