RAM이 많은 경우 스왑 파일을 비활성화해야합니까, 아니면 가상 RAM 드라이브로 이동해야합니까?


97

많은 양의 RAM이 있다고 상상해보십시오. 64GB를 가정 해 봅시다. 그것은 심지어 게임용 PC에도 많은 영향을 미칩니다. 이제 Windows에서 페이지 파일의 기본 위치는 기본 OS 드라이브에 있습니다. HDD 또는 SSD는 일반적으로 빠르지 만 여전히 RAM만큼 빠르지 않습니다.

하드 드라이브에서 페이지 파일을 비활성화하거나 가상 RAM 드라이브를 만들고 페이지 파일을 그대로두면 Windows가 모든 가상 메모리를 RAM으로 옮길 수 있으므로 시스템 성능을 향상시킬 수는 있지만 지역이 아니므로 전혀 사실이 아닐 수도 있습니다.

나는 두 가지를 모두 시도했지만 기억에 관한 지식 수준으로 확실한 결론에 도달하기 위해 결과를 분석 할 수 없었습니다.

이게 효과가 있을까요? 그렇지 않다면 왜?


57
RAM 디스크에 페이징 파일을 가지고 있으면 아무것도 달성되지 않습니다. 사용 가능한 특정 양의 메모리를 제거하고 특정 양의 가상 메모리를 추가하십시오. 널섬. 페이징 파일이 없습니다.
usr

14
스왑 파일을 호스팅하는 램 디스크가 실제로 압축 된 경우 Linux에서이 작업을 수행하는 것이 의미가 있습니다. en.wikipedia.org/wiki/Zram을 참조하십시오 . 그러나 나는 Windows가 그러한 기능을 사용할 수 있다고 생각하지 않습니다.
Matt H

2
대답은 그렇습니다. 그러나 많은 불신자가 있습니다.
Mehrdad

14
@ user367257 페이지 파일을 저장할 램 디스크를 만드는 것은 친구에게 10 파운드를 빌려 주어 10 파운드를 빌릴 수있는 충분한 돈이 있습니다. 기술적으로 가능할 수도 있지만 달성 한 모든 것은 불필요하게 어디로도 여행을 복잡하게 만드는 것입니다.
Rob Moir

2
6GB로 쓰기가 너무 많기 때문에 (현재는 많지만) SSD의 경우에만 SSD를 끄고 싶습니다. 잘 작동한다.
Ry-

답변:


134

RAM 용량에 관계없이 시스템에서 효율적으로 사용할 수 있기를 원합니다. 페이징 파일이 없으면 운영 체제가 두 가지 이유로 RAM을 비효율적으로 사용하게됩니다. 첫째, 페이지에 오랫동안 액세스하거나 수정하지 않은 경우에도 페이지를 버릴 수 없어 디스크 캐시가 더 작아집니다. 둘째, 물리적 RAM을 예약 할 필요가 거의없는 할당을 백업해야합니다 (예 : 수정 가능한 개인 파일 매핑 등) 초과 커밋을 피하십시오.

예를 들어, 프로그램이 4GB 파일의 쓰기 가능한 개인 메모리 맵핑을 작성하는 경우를 고려하십시오. OS는이 매핑을 위해 4GB의 RAM을 예약해야합니다. 프로그램은 모든 바이트를 수정하는 것이 가능하고 RAM 외에는 저장할 공간이 없기 때문입니다. 따라서 즉시 4GB의 RAM이 낭비됩니다 (클린 디스크 페이지를 캐시하는 데 사용할 수 있지만 그 정도입니다).

사용하지 않더라도 RAM을 최대한 활용하려면 페이지 파일이 있어야합니다. 이 정책은 운영 체제가 RAM을 실제로 사용할 수 있도록 허용하는 보험 정책의 역할을하며, 가능성이 거의없는 가능성을 위해 예약하지 않아도됩니다.

운영 체제의 동작을 디자인 한 사람들은 바보가 아닙니다. 페이징 파일이 있으면 운영 체제에 더 많은 선택권이 부여되며 나쁜 선택은 아닙니다.

페이징 파일을 RAM에 넣는 것은 아무 의미가 없습니다. 그리고 RAM이 많은 경우 페이징 파일을 사용하지 않을 가능성이 높기 때문에 (그냥 있어야만 함) 장치의 속도가 중요하지는 않습니다.


9
나는 downvote를 모순했다. 그러나 마지막 의견 : 나는 스왑없이 두 개의 다른 컴퓨터를 실행합니다. 기계의 사용법을 정확히 알고 있으면 완벽하게 괜찮습니다.
spudone

6
램 드라이브의 페이지 파일이 페이지 파일이없는 것을 감지하면 일부 소프트웨어가 시작을 거부한다는 사실 때문에화물 컬트 "해결 방법"으로 시작된 것으로 보입니다. (I는 어도비의 그래픽 / 비디오 툴이 작업을 수행 들었다.)
댄 닐리

8
@DavidSchwartz 귀하가 제공 한 정보는 기술적으로 올 바르며 알아두면 좋은 정보입니다. 그러나 당신이 가지고 있다는 결론은 당신이 가지고있는 RAM의 양에 관계없이 항상 페이지 파일을 가져야한다는 것입니다. 나는 이것이 받아 들일만한 대답이 아니라는 나의 주장에 견딜 수 있습니다.
Jason Wheeler

5
나는 많은 일반적인 상황에서 당신 이 그것들을 끌 있고 안전하게 성능 향상을 볼 있다는 것을 알 때 "페이지 파일이 마술이므로 그것을 끄지 마십시오. 또는 미안하게 될 것입니다"라는 말을 좋아하지 않습니다. MMS가 무언가를 원할 때마다 더 이상 디스크 I / O를 100 % 이상 증가시키지 않습니다. 이 토론의 반대편에있는 사람들의 의견을 듣고 싶은 것은 "예, 사용자가 전원을 끄고 디스크 I / O를 줄여서 스 래싱을 일으킬 수있는 상황"입니다. 나는 페이지 파일이 항상 나쁘다는 것을 말하는 것이 아닙니다. 아마도 항상 필요하지 않다고 말할 수 있습니다.
Fred Hamilton

5
나는이 모든 것에 대해 나를 괴롭히는 것은 한쪽이 "페이지 파일은 아무것도하지 않는 것"이라고 말하고 다른 쪽은 "페이지 파일은 끔찍하다"고 사람들이 한쪽 또는 다른쪽에 갇혀 있다는 것을 깨달았습니다. "진실"은 경우에 따라 매우 유용하고 충돌 방지 기능이 있으며 다른 경우에는 필요하지 않으며 실제로 성능이 저하 될 수 있다는 것입니다. 나는 최종 진술로 그것을 좋아합니다. @David Schwartz, 오래 살고 번영합니다.
프레드 해밀턴

32

당신은 전적으로 당신의 가정에 맞습니다.

메모리 관리 알고리즘은 매우 복잡하며 어떤 방법으로도 완벽하지 않습니다. 여분의 RAM이 충분한 경우에도 스와핑이 발생합니다. 와 같은 일부 시스템에서는 교환 불가능을 Linux제어 할 수 있고 다른 시스템에서는 교환 할 수 없습니다. 여전히 많은 양의 RAM이있을 때 데이터를 교체함으로써 시스템 자체의 방식으로 RAM이 부족한 상황에 대비합니다.

따라서 스와핑 기능을 비활성화하면 이미 말한 것보다 더 빠른 RAM 만 사용하므로 성능이 향상 될 수 있습니다.

고려해야 할 한 가지 (그리고 이미 언급했듯이)- 실행중인 모든 프로그램을 수용 하기에 충분한 RAM 이 있어야합니다 . 그렇지 않으면 메모리가 부족 할 위험이 있습니다 . 이 경우 성능이 저하되고 일부 프로세스가 OS에 의해 종료 될 수 있으며 시스템 충돌 / 동결이 발생할 수 있습니다. (자세한 내용은 여기를 참조 하십시오 )

일부 시스템, 특히 SSD가 아닌 HDD에 스왑 파일을 유지하는 시스템에서는 스와핑 비활성화로 인한 영향이 매우 두드러집니다. 다른 사람들에게는 그렇게 분명하지 않습니다. 그러나 눈에 띄게 개선되지 않더라도 다른 방법으로 생각하십시오. 스와핑을 비활성화하면 SSD의 디스크 공간이 절약됩니다.

스와핑을 비활성화하면 메모리 알고리즘이 불필요한 작업 (예 : RAM에서 스왑으로 또는 그 반대로 데이터 이동)을 수행하지 못하게되며 SSD의 경우 과도한 마모를 방지 할 수 있습니다. 어쨌든 불필요한 작업을 제거하여 성능을 향상시킵니다.

또한 다음을 읽으십시오.


2
@ChrisH 또한 RAM에서 완전히 실행되기 때문에 SQL 데이터베이스를 워드 프로세서로로드하지 못할 수도 있습니다
TylerH

9
이 답변은 정확하지 않으며 많은 잘못된 정보가 포함되어 있습니다. 그러나 왜 이것이 잘못된 지 알 수있는 간단한 방법은 운영 체제의 메모리 동작을 설계 한 사람들이 아마도 세상에서 가장 똑똑한 사람들 일 것입니다. 더 많은 옵션을 제공하는 시스템을 설계하는 이유는 무엇입니까 (가장 좋은 경우에만 스왑하는 옵션) 성능이 저하 될까요? 바보 만이 그런 시스템을 설계 할 것입니다.
David Schwartz

17
@DavidSchwartz, 메모리 관리 알고리즘을 개발 한 사람들이 똑똑하다는 것이 원래의 주제와 어떻게 다른지 알 수 없습니다. OP는 스와핑을 비활성화하면 성능을 향상시킬 수 있는지 여부를 물었고 특정 조건에서 다른 조건에서 문제를 일으킬 수 있다고 설명했습니다. 왜 (?)에 대한 귀하의 질문에 대답-알고리즘이 완벽하지 않고 사용자가 알고리즘을 미세 조정할 수 있기 때문에 말할 수 있습니다. 이것이 Linux에 swappiness 매개 변수가있는 이유이며, 이것이 스와핑을 비활성화하는 것이 가능한 이유입니다.
Art Gertner

11
@smc OP의 사용 사례에는 특별한 것이 없습니다. 운영 체제가 늪지 표준 사용 사례에 맞게 올바르게 조정되지 않았다는 개념 은 완전 하지 않습니다 . (이것을 원하지 않는 이유에 대한 자세한 내용은 내 대답을 참조하십시오.)
David Schwartz

4
주어진 알고리즘이 항상 사용자에게 바람직한 결정을 내린다는 가정은 사실이 아닙니다. 프로그래머가 중요하다고 결정한 매개 변수를 기반으로 결정합니다. 이것은 사용자가해야 할 일과 직접 상충 될 수 있습니다.
Anaksunaman

14

페이지 파일을 안전하게 비활성화 할 수 있습니까?

가상 메모리를 포함하여 사용 가능한 메모리가 부족하면 시스템은 결정적 실행을 계속 보장 할 수 없으며 자체 종료됩니다. 그 전에 운영 체제는 너무 많은 메모리를 사용하는 프로그램 종료와 같은 다양한 다른 작업을 수행합니다. 내가 말하고 싶은 것은 메모리가 항상 유한하며 모든 OS가 이것을 다룰 수 있다는 것입니다. 따라서 총 가용 메모리를 64GB로 제한해도 Windows에는 해가되지 않습니다. 많은 시스템은 페이지 파일이 있어도 8GB를 초과 할 수 없습니다. 1GB 또는 2GB RAM의 경우 페이지 파일은 대개 6GB 또는 7GB보다 훨씬 작기 때문입니다. 사용하지 않은 RAM이 너무 많으면 페이지 파일을 유지 관리하는 OS의 오버 헤드를 측정 할 수 없습니다.

페이지 파일을 램 디스크에 넣는 것이 합리적입니까?

사용 가능한 메모리를 늘리기 위해 대부분의 고급 운영 체제는 RAM에 있고 한동안 액세스하지 않은 메모리를 가져 와서 하드 디스크에 메모리를 쓰십시오 (swapfile aka pagefile ). 더 빠른 메모리를 사용할 수 있도록 RAM에서 메모리를 삭제하십시오. 스왑 파일은 사용 가능한 RAM 크기를 초과하여 메모리의 최대 크기를 확장하는 데 사용됩니다.

따라서 램 디스크 (램 디스크 크기로 사용 가능한 메모리를 줄임)를 사용하여 스왑 파일 (스왑 파일의 크기로 사용 가능한 메모리를 늘리는)을 호스트하면 효과가 있지만, 의미가 없습니다. 페이지 파일을 비활성화하는 것보다 더 많은 메모리를 제공하지는 않지만 시스템에서 페이징 알고리즘을 실행해야합니다.


그러나 페이지 파일이 가상 RAM 드라이브에있는 경우 RAM에서 가상 하드 드라이브로 또는 일부에서 메가 바이트를 복사하는 데 걸리는 시간이 줄어 듭니다. 그리고 페이지 파일이 완전히 비활성화 된 경우 시간이 전혀 걸리지 않아야합니다. 이 올바른지?
user1306322

2
옳은. RAM에서 램 디스크에있는 페이지 파일로 바이트를 복사하는 것이 가장 빠른 페이지 파일입니다. 그러나 전혀 복사하지 않는 것이 더 똑똑합니다.
피터

2
스왑 파일은 RAM 부족을 보완하기 위해 존재합니다. RAM이 충분하면 보상 할 필요가 없습니다. OS는 여전히 스왑 파일을 사용하므로이 경우 더 빨리 끌 수 있습니다.

6
@Mast 그것은 과도하게 단순화 된 것입니다. 스왑 파일도있어 RAM을 효율적으로 사용할 수 있습니다.
David Schwartz

1
@DavidSchwartz 어쩌면 그것은 저에게 가장 잘 설명 된 설명입니다. 대부분의 경우 소량의 스왑 파일은 항상 스왑 파일이 아닌 수혜자입니다. 그러나 나는 그것을 뒷받침 할 자원이 없습니다.

8

다른 사람들이 말한 것을 반복하기 위해 스왑을 직선 RAM 디스크로 옮기는 것은 무의미합니다 (가장 일반적인 경우 아래 참조). 특정 시점에서 시스템에 사용 가능한 메모리가 부족하면 일부 데이터가 다소 비효율적 인 방식으로 RAM에서 RAM으로 이동됩니다.

HDD / SSD를 교체하면 OS에서 완전히 사용되지 않은 RAM 페이지를 지우고 파일 캐시 또는 기타 시스템 버퍼와 같이 사용 가능한 공간을 사용할 수 있습니다. 페이지 파일이없는 사용 가능한 가상 메모리가 없기 때문에 시스템이 이러한 RAM 버퍼를 적게 할당한다는 것을 인식하지 못할 수 있습니다. 실제로 스왑을 비활성화하여 성능을 저하시킬 수 있습니다.

그러나 스왑 드라이브 인 "ZSWAP"드라이브 인 압축 된 RAM 디스크는 RAM 세그먼트의 공간 효율성을 향상시켜 HDD로 스왑을 피하기 위해 몇 개의 추가 MB RAM이 필요할 수있는 엣지 케이스에서 유용 할 수 있습니다. 어느 정도.


1
ZSWAP에 대해 +1 일반적으로 일부 모바일 플랫폼에서 사용되며 OS X 10.9에서도 사용됩니다 (스왑 외에도).
James_pic

"스왑 드라이브로 압축 된 RAM 디스크"는 여전히 실제 페이지 파일 이외의 모든 "페이징 파일"에 대해 수행하지 않는 문제가 있습니다.
Jamie Hanrahan

5

페이지 파일이없는 경우 BSOD (충돌)의 경우 Windows에서 충돌 덤프 파일을 쓸 수 없습니다. 따라서 적절한 도구를 사용하여 문제를 분석 할 수 없습니다.

페이지 파일이 RAM에 있으면 충돌로 인해 손실 될 수 있으므로 쓸모가 없습니다.

자세한 내용은 Microsoft 문서 크래시 덤프 파일 이해를 참조하십시오 .


4

Windows의 경우 말 입에서 :

페이징 파일이 없으면 성능이 향상된다는 느낌이 들지만 일반적으로 페이징 파일이 있으면 Windows가 수정 된 목록에 페이지를 쓸 수 있음을 의미합니다 (이 페이지는 활발하게 액세스되지 않지만 디스크에 저장되지 않은 페이지를 나타냄). 파일을 페이징하여 메모리를보다 유용한 목적 (프로세스 또는 파일 캐시)으로 사용할 수있게합니다. 따라서 페이징 파일없이 더 나은 성능을 발휘하는 워크로드가있을 수 있지만 일반적으로 시스템에 더 많은 사용 가능한 메모리 *를 사용할 수 있음을 의미합니다 (Windows는 페이징 파일 크기가 없으면 커널 크래시 덤프를 작성할 수 없습니다 그들을 잡을만큼 충분히).

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • 사용 가능한 메모리-가상 메모리를 권장하지만 페이지 파일 / 가상 메모리가없는 이점을 얻으려면 실제로 많은 양의 RAM이 필요하다는 것을 나타냅니다. 페이지 파일이없는 4GB RAM 128GB SSD가 있지만 웹 탐색 및 단어 문서 입력에 사용합니다.

2
개인적으로 얻은 교훈과 모든 신입 사원에게 전파하는 내용에서 단 두 가지 규칙이 있습니다. # 1 : Microsoft를 절대 믿지 마십시오. # 2 .. 당신은 규칙 1을 듣지 않았으므로 규칙 2는 없습니다.
Nick

3

스왑 파일을 비활성화하지 마십시오 . 메모리가 부족할 때만 사용할 수 없습니다. 전원을 끄면 직접적인 성능 향상이 없으며 , 필요할 때만 창을 읽으며 필요할 때마다 언제든지 쓸 수 있습니다.

압축 된 메모리 이미지를 저장하기 때문에 4GB 이상인 경우 메모리 크기의 약 2/3로 줄일 수 있습니다. SSD에 공간이 없으면 다른 하드 디스크 액세스로 액세스하지 않는 느린 하드 드라이브에 넣을 수 있습니다. 그러나 어딘가에있는 것이 좋습니다.

이유에 대한 자세한 내용은이 답변을 참조하십시오. https://superuser.com/a/286476/4236


3

이론적으로 페이지 파일을 RAM에 넣는 것은 전혀 의미가 없습니다. 왜냐하면 당신이 생각하는 것을 고갈시키고 Windows는 페이지 파일이 그러한 목적으로 사용되지 않는다는 가정에 기반을두고 있기 때문입니다.

그러나 실제로는 결함이있는 디자인과 철학으로 인해 Windows 커널까지 만들 수 있으며 Microsoft의 메모리 관리가 반드시 완벽하지는 않습니다. 많은 사람들이 페이지 파일을 램 디스크에 넣는 것이 적절한 양의 메모리를 가지고 있다면 실제로 성능이 향상 된다는 것을 알게되었습니다 .

많은 양의 RAM이 없어도 페이지 파일이 여전히 사용되고 있음을 발견 한 단일 포럼 스레드 에서 이러한 사용자 모음을 보여주는 게시물을 작성했습니다 .

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589


이 목록을 작성해 주셔서 감사합니다. 이 문제에서 이론과 실제가 다르다는 증거를 제시하는 데 도움이 될 것입니다. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.예, 마치 : p
user1306322

이 결론에는 결함이 있습니다. OS가 페이지 파일에 내용을 기록한다는 사실은 "대량의 RAM이 없다"고하더라도 "결함이있는 디자인과 철학"에 대해서는 아무 것도 증명하지 못한다. 그것은 당신이 OS의 결정을 올바르게 평가하기에 충분한 정보가 없다는 것을 의미합니다. 우선, 수정 된 페이지가 많은 경우를 고려하십시오. 페이지 파일에 기록되고 대기 목록으로 이동합니다. 이제 "사용 가능"의 일부입니다. 이해하십니까? RAM은 내용이 페이지 파일에 쓰여지기 때문에 사용 가능합니다!
Jamie Hanrahan

@JamieHanrahan : RAM의 일부 이상을 거의 사용하지 않더라도 사람들이 여전히 문제가있는 이유를 설명하지 않습니다. 이 스레드의 주석에는 "실제로 절반 이상을 사용한 적이 없습니다", "페이지 파일 사용량은 약 2.7GB이고 RAM 사용량은 16GB 중 3.23GB입니다.", "Illustrator를 사용하면 성능이 크게 향상되었습니다. 페이지 파일을 만들어 RAMDisk로 옮겼습니다. "
Dan W

이러한 의견의 대부분은 정보가 좋지 않기 때문입니다. 자주 액세스하지 않는 RAM에 내용을 보관하여 성능 문제를 해결할 가능성이 거의 없습니다. 페이징과 관련된 유일한 파일은 페이지 파일이 아닙니다. 수백 개의 다른 파일이 있으므로 페이지 파일에만 영향을 미치는 작업을 수행하고 (시스템의 나머지 부분에서 GB의 RAM을 제거하여 페이지 오류 비율을 증가시키는) "극적인"영향을 미칠 가능성은 거의 없습니다. 이러한 보고서는 일반적으로 적절히 통제 된 테스트를 수행 할 때 유지되지 않습니다. 거의 모든 믿음을지지하는 일화를 찾을 수 있습니다. 나는 설득력이 없습니다.
Jamie Hanrahan

특히, "페이지 파일이 사용 중"이라는 주장에는 증거가 필요합니다. 페이지 파일에 GB를 넣는 것만으로도 페이지 파일이 중요한 성능 경로에 배치되는 방식으로 사용되고 있다는 것을 증명하지는 않습니다. 이를 평가하려면 파티션에서 페이지 파일을 단독으로 분리하거나 최소한 다른 용도로는 사용하지 않는 페이지 파일을 분리 한 다음 해당 "논리 디스크"에서 PerfMon을 사용하여 IO 비율을 모니터링하십시오. 페이지 파일을 자주 읽지 않으면 얼마나 많이 쓰 였는지 중요하지 않습니다!
Jamie Hanrahan

2

스왑을 사용하지 않도록 핵심으로 설계된 OS를 변환하는 것은 소리보다 훨씬 어렵습니다.

최신 Mac에는 기본 파티션을 복구하거나 복구 할 수있는 제거 된 OS가있는 기본 드라이브의 일부인 복구 파티션이 있습니다. DVD-installer 시절에 사용자 정의 프로세스를 실행하면 설치 프로그램이 사용 가능한 디스크 공간을 확보 할 수 없으므로 시스템은 스왑 파티션을위한 RAMdisk를 작성합니다. OS에는 포함 된 유지 관리 소프트웨어를 실행하는 데 필요한 프레임 워크가 포함되어 있으며 설치 후 사용 가능한 유틸리티와 동일합니다. 모두를위한 일이 훨씬 적습니다.

시스템을 한 번에 하나의 응용 프로그램으로 제한하면 기본적으로 램 디스크 스왑이 사용되지 않지만 OS는 해당 응용 프로그램이있을 것으로 예상합니다.


2

메모리가 충분하면 스왑을 해제 할 수 있습니다. 스왑은 RAM의 한계를 극복하고보다 효율적으로 사용하기 위해 만들어졌습니다.

문제는 이제 충분한 RAM이 얼마나 많은 RAM입니까? 이에 대한 보편적 인 대답은 없으며 본질적으로 시스템은 메모리에 굶주리고 있습니다. 따라서 매우 구체적이고 통제 된 환경에서 실행하지 않는 한 스왑을 해제하지 마십시오.

RAM에 스왑을 배치하는 것과 같은 다른 종류의 스턴트는 추가 복잡성을 생성하고 직접 사용할 수있는 메모리를 소비합니다.


2

내 시스템에는 24GB의 RAM이 있으므로 이런 이유로 페이지 파일을 비활성화하여 아무런 문제없이 SSD의 마모를 방지했습니다. 최근에 4GB의 메모리를 사용하여 Chrome 캐시 파일을 저장하는 RAM 디스크를 만들었습니다. 온라인 플래시 플레이어 게임 및 일반 웹 서핑의 성능이 향상되는지 확인하기 위해. 이 실험에서 성능이 크게 향상되었습니다. RAM 디스크에 사용 가능한 공간이 더 많으므로 페이지 파일을 활성화하고 최소 및 최대 크기를 1GB로 설정 한 다음 RAM 디스크로 옮겼습니다. 성능 향상이 있다고 말할 수는 없지만 시스템이 더 안정적으로 실행되는 것 같습니다.


SSD에 페이지 파일을 두는 것이 훨씬 좋습니다. 필요하지 않은 경우 Windows에서 사용하지 않습니다. 페이지 파일을 RAM 디스크에 넣는 것은 우스운 일입니다. 예. 해당 "파일"에 대한 페이지 결함은 실제 디스크에있을 때보 다 더 빨리 해결되지만 RAM을 RAM 디스크에 처음 할당하면 페이지 결함 수가 증가합니다. 그것은 자신에게서 돈을 빌리거나, 관심을 끌고, "관심있는"것을 버리는 것과 같습니다. 잘못이 아닙니다.
Jamie Hanrahan

1

페이지 파일을 RAM으로 옮기는 것은 우스운 개념입니다. 그냥 끄고 RAM을 늘리십시오. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

메모리 관리는 CPU에 의해 처리되며 페이지 파일의 설정 여부는 페이지 처리 방식에 차이가 없습니다. Windows에 투명합니다.

페이지 우선 순위는 변경되지 않으며 페이지는 동일하게 폐기됩니다. 페이지 파일은 CPU가 OS가 아닌 보조 저장소로 사용합니다. 레벨 1 (RAM)이 떨어지면 레벨 2 캐시에 지나지 않습니다.

빠르고 더러운 예 : 내 컴퓨터에는 16GB의 RAM이 있고 페이지 파일이 없습니다. 5 분 전 대기 시간이 13GB이고 여유 공간이 2GB 인 경우 폴 아웃 4를로드했습니다. 우선 순위가 낮은 페이지는 폴 아웃이로드 될 때 삭제되었습니다.

부수적으로, Windows 메모리 제한을 추진하는 2008 Technet 블로그는 매우 오해의 소지가 있습니다. https://i.stack.imgur.com/wXkmi.png Mark조차도 글을 썼는지 여부는 의심 스럽지만 그에 대한 내 관점을 바꿀 수 있기를 바랍니다 .....

Foww는 내가 블로그를 얼마나 자주 참조했는지를 고려하지 않은 사람 중 누구도 골치 아픈 기사에 허점을 가지고있다.

  • 페이지 파일과 그 위치는 Windows에 의해 처리되며, 디스크로 페이지 아웃 된 위치에 대한 메모리 액세스 트 랩핑은 CPU에 의해 잡히지 만 운영 체제로 전달되어 디스크에서 페이지를 검색하여로드합니다.

어쨌든 여기에 모호한 설명이 없습니다.

Windows가 CPU보다 높은 주소에 도달 할 수 없습니다. 불가능합니다.

OS가 무엇을 할 수 있더라도 OS가 실행되는 하드웨어에 의해 여전히 제한됩니다. OS는 실제로 CPU 자체 (내부 레지스터)이기 때문입니다.

따라서 페이지 파일은 HDD에서 물리적 또는 구조적으로 더 많은 RAM을 사용할 수 없을 때 확장 된 물리적 주소 공간에 사용하는 HDD의 영역입니다.

예를 들어, 세그먼트 x86 32 비트 아키텍처에는 2GB의 2GB RAM이 있습니다.

하나는 커널에 할당됩니다. 다른 2GB는 사용자 모드입니다. CPU가 32 개의 DRAM 핀과 함께 사용할 수있는 모든 RAM 이지만 32 비트 프로세스에는 4GB의 사용 가능한 공간이 있습니다. 운 좋게도 CPU는 2GB의 추가 페이지를 저장하기 위해 보조 스토리지 AKA 하드 드라이브를 사용할 수 있습니다. 내부 레지스터가 있기 때문에
프로세스가 참조하는 가상 페이지를 RAM에 저장할 필요가없는 물리적 위치입니다. 그러나 CPU에 의해 어딘가에 저장되어 있습니다.

CPU는 앱에 4GB RAM을 모두 제공 할 는 없지만 HDD를 보조 캐시로 사용하여 4GB의 주소를 제공 할 수 있습니다 (모든 HDD가 실제로 있습니다)

내부 페이징 메커니즘을 통해 페이지가 RAM 안팎으로 이동하지만 페이지 파일과 동일하지 않습니다. 페이징은 항상 발생합니다 ....

결론은 실제로 그렇게 복잡하지 않습니다. 지난 15 년 동안 많은 최종 사용자에게 페이지 파일이 운영 체제의 일부인 인상을 받았습니다. 한번도 없었습니다. 이 오해는 부분적으로 인텔 및 Microsoft와 같은 회사에서 비롯됩니다.

RAM은 빠른 저장 장치이고 하드 드라이브는 느린 저장 장치이므로 기본적으로 RAM은 레벨 1 캐시이고 하드 드라이브는 레벨 2입니다 (이 비유의 CPU 캐시는 무시). 둘 다 CPU에 의해 액세스 될 수 있습니다.

CPU가 필요한 페이지를 저장하기에 충분한 RAM을 사용할 수없는 경우 HDD를 오버플로로 사용할 수 있습니다. RAM이 충분하면 PF가 중복됩니다.

코어 2까지 인텔 프로세서에는 32 핀 DRAM 버스가 있으며 32 개의 레지스터는 CPU가 4GB의 RAM과 4GB의 HDD 공간 (페이지 파일)에 액세스 할 수 있음을 의미합니다. 이것은 Windows 제한이 아닌 아키텍처 하드웨어 제한입니다.

페이지 테이블은 512MB를 차지하므로 프로세스에 사용 가능한 총 용량은 3.5GB입니다. 그렇기 때문에 Intel CPU가 설치된 Windows에서 3.5GB가 표시됩니다 (Core 2까지). GPU를 추가하면 더 적은 용량을 사용할 수 있습니다.

Xeon은 HDD가 포함 된 총 32GB RAM, 64GB의 물리적 공간에 액세스 할 수 있습니다 (페이지 파일 다시). ( 이 ^는 PAE를 다루며, 링크가 추가되어 제공됩니다 .)

여기에 이미지 설명을 입력하십시오 http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

세 번째 스크린 샷 소스 : System V Application Binary Interface AMD64 아키텍처 프로세서 보완 초안 버전 0.99.7

이 답변을 계속 개선하고 소스 자료 및 관련 정보를 추가하려고합니다. 정보가 충분하지 않고 너무 많은 기술 정보가 균형을 이루고 싶습니다. 제안을 환영합니다. 잘 작성되지 않았기 때문에 공감하지 마십시오.


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.