Windows 2008 R2에서 실행되는 사용자 지정 서버 응용 프로그램이 있습니다. 많은 사용자 지정 터미널을 지원하는 .Net으로 작성된 자체 개발 Windows 서비스입니다. 라이브 서버와 비슷한 사양의 테스트 시스템이 있고 실제 시스템의 합리적인 근사값을 생성하는 데 사용할 수있는 클라이언트 시뮬레이터 세트가 있습니다. 12,000 개를 지원할 수 있어야하며 현재 서버에 메모리가 부족합니다 (페이징이 지붕을 통과 함).
내 계획은 시뮬레이터 100 개만 시작하고 메모리 사용량을 측정 한 다음 100 개 이상의 측정 메모리를 다시 시작하고 페이징이 시작될 때까지 반복합니다 (실제로 3 개 이상의 데이터 포인트가 필요합니다). 100 개의 시뮬레이터에 필요한 추가 메모리 양과 필요한 메모리 양을 투영 할 수 있습니다. 서버가 취할 2Tb ($ 150,000 상당)의 전체 구매를 피하기 위해 대략 +/- 30Gb 만 필요합니다. 내 질문은 이것이 합리적인 방법인지, 그렇다면 실제로 사용되는 메모리 양을 제공하기 위해 어떤 성능 카운터를 모니터링 할 것입니까?
나는 특히 Working Set, Private Bytes, Committed, Shared, Virtual과 다른 모든 메모리 용어의 차이점으로 인해 혼란에 빠진 메모리에 대해 이야기하고 있습니다. CPU, IO 및 네트워킹을 스스로 모니터링 할 수 있다고 생각합니다. 내가 주목 한 또 다른 점은 .Net Cache가 사용 가능한 항목에 따라 메모리 사용량을 조정하여 추세를 파악하기 어렵다는 것입니다.