http://hamsong.tistory.com/38

http://cooltime.tistory.com/191

최근 램디스크와 가상메모리 관련하여 많은 삽질을 거듭하며 나름대로의 결론을 얻었기에 간단히 공유하고자 합니다. 아는 분은 다 아시는 내용이겠지만, 모르시는 분도 계실테고 이쪽 관련 내용은 이제 지겹다고 하시는 분도 일단 끝까지 읽어보셔도 좋을 거라고 과감히 자추(?)해 봅니다.

 

문제의 발단은, 얼마전 특별히 램이 부족하지도 않은 주제에 램을 3G로 증설하면서 남아도는 램을 어떻게 써먹을까 고민하다 램디스크를 설정하여 가상메모리 페이지 파일과 웹브라우져 임시파일을 램디스크에 저장하게 하도록 결정했습니다. 뭐 여기까지는 너무나 흔한 스토리일 것이고, 실제로 그렇게 쓰는 분들이 매우 많으시겠지요.

 

관련자료를 검색하여 수퍼스피드 램디스크를 구하여 설치(+알파)하고 일단 1G를 램디스크에 할당하였습니다. (램디스크 기본 개념 및 설치에 대해서는 여기서 따로 언급하지 않겠습니다. 검색하시면 많이 나올 것입니다)

 

그리고 HDD에 설정되어 있는 가상메모리 페이지 파일은 전부 '없음'으로 하고 램디스크 1G를 잡은 후 그곳에 900M짜리 페이지 파일을 설정하고, 나머지 공간을 윈XP 환경변수 및 인터넷 익스플로러 임시파일 저장공간으로 활용하기로 하였죠.

 

이 결정은 가상메모리 관련하여 이전에 습득한 아래의 몇가지 경험에 근거한 것입니다.

 

 1) 램디스크는 속도도 속도지만 하드 억세스를 경감시키고 단편화를 줄이는 데 더 큰 의미가 있다.

 

 2) 물리 램이 아무리 풍부해도, 어플리케이션에 따라 가상메모리를 우선 사용하는 경우가 있으며 이 경우 가상메모리

     가 없거나 매우 작으면 에러를 내뿜는다.

 

 3) 특히 익스플로러 자체 파일 전송시 가상메모리 페이징 파일 크기보다 큰 파일은 전송하지 못한다. 따라서 램디스

     크에 설정할 가상메모리 페이징 파일은 CD 1장 용량보다는 조금 크게 하는 것이 여러 용도에서 적절하고 안전하

     다. (그렇게 큰 파일 다운로드할 일이 흔치는 않지만 없으리란 법도 없는데 가상메모리가 부족해서 날아가면 땅을

     치며 후회!)

 

 4) 환경변수 및 익스플로러 임시파일 용량이 클 필요는 없다. 어차피 전원 내리면 램디스크에 저장된 임시파일들은

     죄다 삭제될 것이며, 전원 내릴때 HDD에 이를 백업하는 방법도 있지만 그렇게까지 해야 할 필요는 없다고 본다.

     (Shut-down시 상당한 백업시간이 걸리므로...)

 

그런데, 가상메모리 페이징 파일이라는 넘이 생각보다 만만치가 않는 상대더군요. 다들 아시다시피 XP에서 가상메모리 설정은 시스템 등록정보 - 고급 - 성능 설정 - 고급 - 가상메모리 변경 들어가서 할 수 있는데요. 이게 그렇게 마음먹은 대로 설정이 되질 않습니다. 일반적으로 널리 알려진 설정 원칙은

 

 1) 페이징 파일은 가능한 부팅 하드와는 물리적으로 다른 하드에 설정 (하드가 2개 이상일 때)

 

 2) 자동설정은 상황에 따라 용량이 변경되면서 하드 억세스가 많아질 수 있으므로 가능한 최소-최대를 동일하게 하여

     페이징 파일 자체를 고정시키는 것이 좋음

 

 3) 일반적으로 물리적 메모리의 2배 정도의 용량으로 설정 (이건 요즘 2G이상의 램 사용이 일반화되어 거의 의미가

     없죠)

 

이 정도인데요. 앞에서 정한 대로 하드에 설정되어 있는 페이징 파일을 전부 '페이징 파일 없음'으로 변경하고 '설정'도 꾹꾹 눌러주었습니다. 그리고 램디스크에 페이징 파일을 최소최대 공히 1000M로 설정했죠. 당연히 재부팅도 했습니다. 그런데 어찌된 영문인지, 재부팅을 해도 하드에 설정되어 있던 페이징 파일들은 그대로 남아 있습니다. 다시 가상메모리 변경탭으로 가보면 아까 한 설정들은 그대로 분명 적용되어 있는데 '모든 드라이브의 총 페이징 파일 크기'를 보면 하드에 설정되어 있던 페이징 파일들은 그대로 남아있더군요. 실제로 하드에 있던 pagefile.sys는 그대로 남아 있고, 삭제도 안됩니다. 사용하고 있는 거죠.

 

즉, 가상메모리 변경탭에서 각 드라이브별로 잡혀있는 설정과는 별도로 XP가 판단해서 물리적 하드에 가상메모리가 없거나 충분치 않다고 판단되면 임의의 페이징 파일을 생성해 버린다는 결론이 나오더군요. 주로 부팅하드인 C:에 잡히게 되고, XP는 당근 C:에 있는 페이징 파일을 램디스크에 있는 페이징 파일보다 우선해서 사용합니다. 결국 아까운 램만 램디스크로 날릴 뿐, 실제로 페이징 파일을 램디스크로 옮겨서 얻는 이점은 전혀 얻을 수가 없었습니다. (램디스크에 페이징 파일 생성해서 잘 활용하고 있다고 생각하는 분들께서도 혹시 지금 이런 상태가 아닌지 한 번 확인해 보시기 바랍니다)

 

이후 온갖 생쇼를 하며 수백번의 재부팅과 재설정을 통해 내린 결론은 다음과 같습니다.

 

 1) XP의 시스템 등록정보 가상메모리 변경탭은 믿을 만한 것이 못된다. 설정하고 재부팅했다고 해서 설정한 대로 다

     적용되었다고 믿어선 안된다. 반드시 '모든 드라이브의 총 페이징 파일 크기'를 확인하고, 실제로 하드에

     pagefile.sys가 있는지, 그 파일이 삭제가 되는지 확인하여 삭제가 안되면 여전히 물리적 하드 가상메모리는 사용

     중인 것이다.

 

 2) 여기서 pagefile.sys는 시스템 속성의 숨김파일이므로 그냥 탐색기로 보고 없으니까 없다고 믿으면 안된다. 폴더

     옵션-보기에서 숨김파일 및 시스템 폴더/파일을 전부 표시하도록 설정하고 보던지 숨김/시스템 폴더 및 파일을

     표시해주는 별도의 쉘로 확인해야 한다.

 

 3) XP는 스스로 판단해서 사용자가 설정한 가상메모리 설정이 미덥지 못하면(?) 멋대로 부팅 하드(C:)에 가상메모리

     를 자동 설정하는 경향이 있다. 이렇게 설정된 페이징 파일은 가상메모리 변경탭에는 안나타나지만 '모든 드라이

     브의 총 페이징 파일 크기'에는 합산하여 나온다. 이를 방지하기 위해 C:에 16M정도의 작은 페이징 파일을 일부러

     만드는 방법도 있는데, 이 경우도 일단은 그렇게 되다가 어느 순간 (XP가 판단해서 가상메모리가 부족하다고 느낄

     때) 에러를 내거나 혹은 에러 없이 멋대로 대용량의 페이징 파일을 생성한다.

 

 4) 단, 페이징 파일과는 별개로 윈도우즈 환경변수 및 익스플로러 임시파일을 램디스크에 저장하는 것은 실제로 상당

     한 인터넷 체감속도 향상과 하드 억세스 감소에 기여한다.

 

이렇게 당하고 보니(?) 여러 고수분들이 램디스크에 페이징 파일 생성은 문제가 많으니 비추천한다고 하신 것이 이해가 가더군요. 그래서 절망하고 있다가... 또 어찌어찌하여 관련내용을 검색하다가 아래 사실을 알게 되었습니다.

 

 1) 레지스트리를 건드려서 XP의 가상메모리 페이징 파일의 강제 자동설정을 끌 수 있는  방법이 있다.

 

    시작 - 실행 - regedit 입력 (레지스트리 편집기) - HKEY_LOCAL_MACHINE - SYSTEM

    - CurrentControlSet - Control - Session Manager - Memory Management의 Disable

    PagingExecutive 더블클릭 - 값 데이터 1 입력하고 확인 - 재부팅으로 설정 적용

 

 2) 이 방법을 이용하면 언제나 물리적 램을 우선적으로 사용한다. 따라서 2G 이상의 물리적 램을 이용할 경우, 가상

     메모리가 없어 에러를 낼 확률은 거의 없다.

 

이 방법을 알아내어 적용해 본 결과 모든 고민이 눈녹듯 사라지더군요. 허망하기까지했습니다. 괜히 물리적 램을 뭉텅 잘라내어 램디스크로 만들고 거기다 페이징 파일을 설정하려고 애쓸 필요가 없었던 것입니다.

 

위 방법으로 XP양이 가상메모리 페이징 파일을 가지고 놀지 못하게 해 준 다음, 다시 가상메모리 변경 탭에서 모든 디스크의 가상메모리를 '페이징 파일 없음'으로 설정해 줍니다.(순서에 주의) 다시 재부팅하여 '모든 드라이브의 총 페이징 파일 크기'가 0MB로 잡혀있으면 제대로 된 것입니다. 이 상태에서는 물리적 램만 충분하다면 가상메모리가 없어도 다운로드 파일 크기에 관계없이 다운로드 가능하고요. 이전에 가상메모리가 부족다고 에러를 내던 어플리케이션에서도 전혀 에러 없이 구동이 가능했습니다.

 

당연히 XP가 멋대로 가상메모리를 생성하는 일도 없고, 실제로 하드 억세스도 크게 줄었습니다. 이제야 제대로 램을 부려먹고(?) 있다는 느낌이 듭니다.

 

그럼 램디스크는 안쓰느냐? 그건 아닙니다. 램디스크는 60~70M 정도로 조금만 잡아준 다음 윈도우즈 환경변수와 인터넷 임시파일 폴더를 아래와 같이 램디스크에 잡아줍니다. (이 부분은 파코즈에서 본 팁 같은데, 정확한 출처는 지금 못찾겠네요. 죄송합니다)

 

 1) 시스템 등록정보 - 고급 - 환경변수 들어가서 사용자변수의 TEMP와 TMP 값을 램디스크로 잡아줍니다.

 

 2) 같은 요령으로 아래 시스템 변수의 TEMP와 TMP 값도 램디스크로 잡아줍니다.

 

 3) 웹브라우져 - 인터넷 익스플로러 기준 임시파일 설정은

   

    도구 - 인터넷 옵션 - 임시인터넷 파일 설정 - 임시인터넷 파일 폴더 폴더 이동

    들어가서 램디스크로 설정, 확인하고 사용할 디스크 공간은 램디스크 용량의

    절반 정도로 설정 (16~32M  추천)

 

 4) 취향에 따라 램디스크 프로그램이 하드스왑 백업을 지원할 경우 설정해 줘도 좋습니다. 60~70M면 어차피 얼마 안

     되는 용량이니까요. 저는 개인적으로 이 기능은 사용치 않고 있습니다.

 

짧게 요약하자면, 'XP에서 2G이상의 램(공유메모리 제외한 물리 메모리)를 사용'시

 

 - 레지스트리를 수정하여 XP가 페이징 파일을 사용하거나 강제설정하지 못하게 못박은 다음 페이징 파일을 전부 삭제하여 물리적 램만 사용토록 강제하고, 램디스크는 소량만 잡아서 환경변수 및 인터넷 임시파일만 저장케 하는 것 -

 

이상이 현재까지 제가 찾은 최적의 솔루션입니다.

 

이미 이렇게 사용하고 계신 분도 있겠지만, 램디스크 활용법을 모르시거나 사용하면서도 실제로는 램디스크를 제대로 활용하지 못하고 가상 메모리가 돌아가고 있는 경우도 있을 것으로 사료되어, 이분들을 위한 장문의 팁을 적어보았습니다.

 

수정 및 보완할 부분, 또 더 좋은 방법을 알고 계시는 분께서는 지도편달하여 주시면 감사하겠습니다.

 

'Study > SoftWare' 카테고리의 다른 글

Window 7 정품인증 받기  (1) 2013.06.07
winMerge 소스비교하기  (0) 2013.05.24
원하는 시간에 컴퓨터 자동종료 설정하기  (0) 2011.11.14
울트라서프 10.17  (3) 2011.11.14
키노트 vs 파워포인트 비교  (0) 2011.11.08
Posted by 코딩하는 야구쟁이
,