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

  • 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

자세한 설명은 생략한다

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

Kubernetes, DevSecOps, Golang, 지속적인 통합 등 다양한 주제에 관심이 많다.
follow me
  • 데이터가 과학이 아니라 환상에 불과할 때가 더 많다. 특히 그래프는 여러 변수를 종합하지 않고 하나의 메트릭을 단순하게 해석하는 경향을 강화하는 면이 있다. 지표를 볼 때 내가 뭘 빼먹었나 곱씹어보는 버릇을… https://t.co/IzhrDBR7bF
    1 day ago
  • 대체로 동의한다 https://t.co/55tzHF1jmV
    2 days ago
  • eBPF – Rethinking the Linux Kernel – Google Slides https://t.co/lx8ksB70WR
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, Golang, 지속적인 통합 등 다양한 주제에 관심이 많다.
Latest Posts