창 최소화시 워킹셋을 유지하기

  • Post author:
  • Post category:
  • Post last modified:February 8, 2020

워킹셋(Workingset)이란 간단히 말해 응용프로그램, 하나의 프로세스가 사용 중인 물리 메모리를 이야기한다. 그런데 윈도우 폼 응용프로그램은 창 최소화시 물리 메모리를 스왑하게 된다. 응용프로그램을 당분간 사용하지 않을 거라서 창을 최소화했다고 보기 때문에 물리 메모리를 반환하는 것이다.

워킹셋의 개념은 다음 사례를 보면 잘 이해가 될 것이다. 얼핏 메모리 사용량이 줄어든 것 같아도 스왑되었을 뿐 총 가상메모리 사용량은 동일하다.

그런데, 이 창을 Minimize(최소화)하게 되면 어떻게 될까요?

최소화 창을 클릭하게 되면, 재미있는 현상이 발생합니다.

출처: .Net Application and Working Set

어쨌거나 이러한 워킹셋 자동 줄이기는 항상 최적의 성능을 발휘해야 하는 서버 응용프로그램에는 좋지 않다. 스왑이 일어나는 만큼 게임 사용자가 소위 말하는 랙을 겪게 되기 때문이다. 그래서 서버 프로그램은 보통 워킹셋 자동 줄이기 기능을 끈다.

이 기능을 끄는 방법은 마이크로소프트 고객지원 사이트에 자세히 적혀 있다. The working set of an application is trimmed when its top-level window is minimized

자세한 설명은 생략한다

주의! 이 글은 미니라이프 서버 아키텍처를 정리한 글 중 크게 중요하지 않고 알만한 사람은 다 아는 내용이라 공개해도 된다고 판단하여 공개함

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.