가상메모리에 대한 질문을 드립니다.
靑鶴
조회 :
4776 ,
2008/09/10 13:28 |
|
|
|
XP에서는 스왑파일이라고 해야 하는것이 옳을 것 같습니다만.
암튼 이 가상메모리를 사용하지 않게 하는 문제인데요.
아예 사용을 안 하는 것이 아니고 물리적인 메모리가 부족할 시에만- 물리적인 메모리를 다 사용한 다음에- 가상메모리를 사용하게 할 수 있다는 것(레지스트리편집)을 타 사이트의 답글에서 잠시 본 적이 있습니다.
답글 작성자와의 연락이 안되서 궁금했지만 어떻게 하는지 답변을 못 들었거든요.
그래서 이문제를 알고 계신다면 도움을 받고자 합니다.
요지는 레지스트리를 편집해서
물리적인 메모리를 다 사용한 상태에서만 가상메모리를 사용하도록 하는 것을 알고 싶습니다.
물리적인 메모리가 남아 있는데 가상메모리를 읽어대는 일이 없어야.....
읽어 주셔서 감사 드립니다. ^^ |
|
|
|
|
|
| |
글쎄요. 레지스트리를 수정해서 가상메모리를 물리적인 메모리가 부족할 시에만 사용하게 한다는 것은 저는 들어본 적이 없습니다.
별도로 레지스트리 설정을 하지 않아도, 가상메모리에 사용되는 페이지파일의 크기를 어느 정도 자동적으로 조절할 수는 잇습니다.
[시스템 등록정보]에서 [고급]텝을 누른 후 [성능] 옆에 있는 [설정]버튼을 누르면 [성능옵션]창이 뜹니다. 여기서 [고급]텝을 클릭한 후 [가상메모리] 옆에 있는 [변경]을 클릭하면 [가상메모리]창이 나오는데, 여기서 사용자 지정 크기를 선택하시고 최소값과 최대값을 지정하시면 원하시는 것과 비슷한 효과를 얻으실 수 있으실 듯 합니다.
최소값에 0이 들어갈 수 있는지는 모르겠습니다만, 최소값을 최소한으로 잡고 최대값을 할당된 메모리의 최대값보다 1.5~2배 정도 한 값을 정해주시면 될 것 같네요.
그리고, 시스템의 메모리를 모두 쓰고난 후에 가상메모리를 사용한다는 것은 불가능해 보이네요.
운영체제가 모든 메모리를 실시간으로 계속 감시하고 있지 않으면 실제 메모리가 가득 찼다는 것 자체를 판단할 수 없기 때문입니다.
가상메모리를 생성시킬 타이밍을 알기 위해서 메모리를 실시간으로 감시하고 있는다는 것은 오히려 가상메모리를 사용하는 것보다 훨씬 큰 성능의 저하를 가지게 될 것 같네요.
레지스트리를 수정해서 페이징 파일(가상메모리)을 없앤다는 것은 아마도 ClearPageFileAtShutdown 을 얘기하는 것이 아닐까 싶네요. 레지스트리에서 이 부분을 1로 설정하면 페이지파일을 0으로 채운 후 종료됩니다. 이부분은 성능의 문제라기 보다는 보안의 문제입니다. 페이지파일을 통해 정보가 유출될 것을 방지하는 차원인 거죠. 컴퓨터를 종료할때 페이지파일을 0으로 채우므로 그만큼 종료가 늦어지게 되니 성능에는 오히려 마이너스가 됩니다.
혹시 필요하실 지도 몰라서... 적용 방법은 레지스트리 에디터를 열어서
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SessionManager/Memory Management]로 이동한 뒤,오른쪽 창에 있는 ClearPageFileAtShutdown 을 더블클릭해서 연 다음 값을 1로 바꿔 주시면 됩니다. 기본값은 0입니다.
이것 외에 제가 알고 있는 페이지 파일 관련 레지스트리라면... DisablePagingExecutive 가 있겠네요. 이것은 비활성 커널모드 드라이버들과 시스템 코드들을 관리하는 방식을 정하는 것인데, 메모리가 여유가 있는 경우(512메가 이상) 1로 설정해서 커널모드 드라이버와 시스템코드를 메모리나 페이징 파일에서 계속 가지고 있도록 하는 쪽이 여러번 읽고 쓰는 과정을 줄여주기 때문에 성능의 향상을 얻을 수 있습니다. 반대로 메모리가 적은 경우에는 0으로 설정하는 쪽이 유리합니다.
다만, 이 설정 역시 페이징 파일 자체를 사용하지 않게 하는 것과는 거리가 있는 방법이지요.
제가 알고 있는 페이징파일 관련 레지스트리는 이정도입니다만... 참고가 되셨을지 모르겠네요. |
|
|