과도하게 많은 파일 캐시?

Too Much Cache?

https://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx

 

위의 포스트에서는 파일 시스템 캐시에 대해서 이야기 하고 있습니다.

파일 시스템 캐시는 파일을 읽고 쓰는 패턴에 따라서 매핑 되었다가 언매핑 됩니다. 마치 프로세스의 워킹셋과 같이 동작하며 성능모니터의 Memory\System Cache Resident Bytes 를 통해서 모니터링 할 수 있습니다.

Cache 를 많이 사용하는 것은 문제가 되는 것이 아니고 다음 두 가지 경우를 생각해 보아야 합니다.

 

과도한 캐시 쓰기 요청

과도하게 많은 쓰기 요청이 발생하면 메모리 상에 있는 데이터 들이 디스크로 쓰여지기 시작할 것 입니다. 만약 비 정상적인 애플리케이션이 과도하게 쓰기를 요청 한다면 시스템의 성능에 영향을 줄 것 입니다. 레지스트리의 SystemCacheDirtyPageThreshold 값을 조절하여 디스크로 쓰여지는 시점을 조작할 수 있습니다.

과도한 캐시 읽기 요청

SystemCacheDirtyPageThreshold 값은 쓰기에만 영향을 주고 읽기에는 영향을 주지 않습니다. 만약 애플리케이션이나 드라이버가 과도하게 많은 읽기 요청을 한다면 시스템에 영향을 줄 것 입니다. 32Bit 시스템에서는 파일 시스템 캐시 워킹셋은 1GB로 제한 됩니다. 이 경우 가장 좋은 방법은 64Bit 시스템을 사용하는 것 입니다. (이 부분에 대해서는 2009년에 새로 포스트가 쓰여져 있습니다. 1GB 제한때문에 working set 에서 제거 되더라도 stanby list 에 존재할 것이므로 성능에 큰 영향을 주지는 않을 것 입니다.)

  https://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx

감사합니다.