SVCHOST / 워크 스테이션 서비스에서 Windows 2012 Core Extreme 메모리 사용


9

약 200 개의 서버 (Hyper V, File Cluster 및 IIS)가 모두 동일한 문제를 겪고 있습니다. 정상적인 사용을 통해 서버에서 이벤트가 발생하여 서버의 RAM을 최대한으로 또는 거의 최대한으로 사용합니다. 이 문제가 발생하면 SVCHOST / 워크 스테이션 서비스 (특히 워크 스테이션 서비스를 자체 SVCHOST에 격리하여 처리)는 핸들 / 스레드 릴리스를 중지하고 해당 서비스에서 사용하는 메모리는 절대 해제되지 않습니다. 극단적 인 경우에는 255GB 서버에서 최대 40GB의 램을 사용하는 워크 스테이션 서비스가 있습니다. 또한 경우에 따라 4 천만 개 이상의 핸들을 찾는 경우도 있습니다.

재부팅시 물론 문제는 사라지고 W3 프로세스 나 HyperV VM 등 모든 메모리가 사용될 때까지 워크 스테이션 서비스가 모든 RAM을 가져 오기 시작합니다. 프로세스는 매우 느리고 서버의 RAM 크기에 따라 몇 주 / 월이 걸릴 수 있습니다.

당사의 Hyper V 서버와 IIS 서버는 모두 작업 파일의 공유에 액세스합니다. 이러한 공유는 SSD 스토리지에 있으므로 성능이 뛰어납니다. 현재 모든 패치를 설치했지만 R2로 이동하지 않았습니다. 툴링이 많기 때문에 중요한 단계이며 R2에서 수정 될 것이라는 명확한 징후를 찾을 수 없습니다.

우리는 ProcMon 및 기타 도구를 실행했지만 가장 문제가 많은 서버에서는 해당 도구가 실행되지 않습니다. 다른 한편으로는 그들이 제공 한 결과는 그 과정에서 실제로 메모리 누수가있는 것으로 보입니다.

이 프로세스에서 메모리를 비우거나 버그를 함께 피할 수있는 방법이 있습니까? 다시 부팅 할 필요가 없으며 오류 상태가되면 프로세스를 다시 시작할 수 없습니다. 프로세스가 정지됩니다.

우리는이 문제를 '수정'하기 위해 정기적으로 재부팅하는 것을 피하려고 노력하므로 모든 답변을 부탁드립니다.


귀하의 질문은 무엇인가?
Andrew Schulman

실제로 우리는하지만 수천 개 / 수백만의 스레드가 열리는 것이 가장 애매합니다. 가장 문제가 많은 시스템에서는 이러한 도구를 실행할 수 없으며 서버를 손상시킵니다.
Craig

상자를 재부팅하는 것 이외의 문제를 해결하기위한 좋은 해결책을 찾고 싶습니다. 이 문제가 시작되면 서비스를 중지 할 수 없습니다.
Craig

KB 2811660이 설치 되었습니까? 이 시스템은 서버 관리자를 실행합니까? support.microsoft.com/kb/2793908

예,이 KB는 얼마 전에 설치되었습니다. 또한이 누수는 워크 스테이션 서비스에만 해당되며 KB는 WMI 서비스에 적용됩니다.
Craig

답변:


1

svchost가 서버 성능을 파괴하는 경우와 비슷한 문제가 발생했습니다.

해결책 : 이벤트 로그가 가득 찼습니다. 나는 그것을 지우고 아무 일도 일어나지 않은 것처럼 모든 것이 백업되고 실행되었습니다.

(또한 이벤트 로그의 크기를 기본값에서 변경하는 것이 좋습니다. 아래 참조)

Windows 인터페이스를 사용하여 최대 로그 크기를 설정하려면
-이벤트 뷰어를 시작하십시오.
-콘솔 트리에서 관리하려는 이벤트 로그로 이동하여 선택하십시오.
-동작 메뉴에서 속성을 클릭합니다.
-최대 로그 크기 (KB)에서 스피너 컨트롤을 사용하여 원하는 값을 설정하고 확인을 클릭합니다.

여기서 일어나고있는 것과 똑같이 들리지만, 정말 쉬운 해결책이되었습니다. 다시 시작하면 일시적으로 문제가 해결되지만 로그에 쓰려고 시도하는 즉시 모든 작업이 중단되고 리소스를 계속 사용하게됩니다.

도움이 되었기를 바랍니다!


-1
>Is there a way we can free up the memory from this process ?

할당 된 메모리를 외부에서 (적절하게) 해제하거나 문제가있는 앱을 종료하지 않고 리소스를 처리 할 수있는 방법이 없습니다.

>or avoid the bug all together? 

메모리 및 리소스 누수가 발생했습니다. 문제를 해결할 수있는 유일한 방법은 누수를 찾고 트리거를 피하거나 (가능한 경우) 소스 코드 수준에서 누수를 수정하는 것입니다. 마지막으로 패치를 생성하려면 Microsoft의 도움이 필요하지만 문제의 실제 위치를 "정확하게"알려줄 것으로 기대합니다.

예를 들어 MS Application Verifier를 사용하여 메모리 / 자원 누수를 정확히 찾아 범인을 찾으려고 시도 할 수 있습니다.


트리거는 파일 공유이므로 피할 수 없습니다.
Craig

트리거를 피할 수 없으면 "Application Verifier"로 누출을 찾아 해당 정보를 MS에 문의하십시오.
Pat

응용 프로그램은 여러 개이므로 모두 Microsoft입니다. 우리는 이미 연락을 해왔으며, 이것을 정리하는 데 몇 주 / 몇 달이 걸릴 수 있다고 말하면서 더 빠른 솔루션을 찾고 있습니다.
Craig

MS가 비 현재 OS에서 이러한 종류의 문제를 해결하기 위해 서두르지 않을 것이라고 생각하면 더 빠른 해결책을 찾지 못할 것이라고 생각합니다. 누설이있는 위치를 알려주는 경우도 다릅니다.
Pat

우리는 공개 케이스를 가지고 있으며 한 달 동안 그들과 함께 일해 왔습니다. 누수가 말 그대로 Workstation 서비스에 있습니다.
Craig

-1

RAM을 만드는 것은 쉽지만 해결책은 없습니다.

심층 조사를 위해 Sysinternals RAMMAP 또는 VMMAP을 제안합니다. 이 도구를 사용하면 어떻게되는지 더 잘 볼 수 있습니다. 종종 메타 파일 문제입니다.

Server 2008부터는 공유에서 응용 프로그램을 시작할 때 시간이 지남에 따라 메모리가 부족한 모든 터미널 서버에 메모리가 부족한 문제가 있습니다.

우리의 해결 방법은 해당 응용 프로그램을 별도의 터미널 서버에서 호스팅하고 메모리 소비를 자주 지우는 것입니다.


모든 프로세스에서 SeDebugPrivilege와 함께 SetProcessWorkingSetSize ()를 사용하여 자체 설계된 c ++ 명령 행 애플리케이션으로이를 수행 합니다.

이런 식으로하지 않는 것이 좋습니다.)


왜 공감해야합니까? 요청한 내용이 정확합니다! 여기서 도와 주려고 노력하는 것은 기쁨이 아닙니다 ...
Magnus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.