컴퓨터에서 8GB RAM 중 4 개 이상을 사용하지 않습니다… (64 비트 컴퓨터)


17

최근에 컴퓨터를 미래에 대비하기 위해 원래 4GB 메모리 위에 추가했습니다. 총 메모리를 8GB로 가져 왔으며, 필요할 때도 눈에 띄는 속도 변화가 없었습니다. 작업 관리자를 조사한 결과 크롬과 파이어 폭스가 각각 20 개의 탭으로 열려 있어도 컴퓨터가 4GB의 메모리를 사용하지 않는 것을 알 수있었습니다.

조사 후 모든 사람들이 제안한 모든 것은 사용 가능한 메모리 양을 확인하는 것이 었습니다. 이상하게도 8GB의 메모리가 있으며 7.74GB를 사용할 수 있다고 말합니다.

내 HP Pavilion g7-1075dx의 사양은 여기에서 찾을 수 있습니다. AMD Phenom II가 장착 된 Windows 7 Home Premium 64 비트 노트북 PC입니다.

내 주요 질문은 내 64 비트 컴퓨터의 경우 7 개 이상을 사용할 수 있는데도 왜 컴퓨터에서 4GB 이상의 메모리를 사용하지 않습니까?

편집 : 도움이되면 Resource Monitor는 다른 모든 RAM을 "Standby"로 설명합니다.


1
4GB 이상을 사용하지 않는 것을 어떻게 알 수 있습니까? 메모리를 테스트하거나 사용하기 위해 다른 프로그램을 사용해 보셨습니까? 크롬과 파이어 폭스는 현명한 메모리 요구하지 않습니다 ...
Mokubai

9
지금까지 아무도 더 많은 RAM이 컴퓨터 자체를 더 빨리 만들지 않는다고 언급 한 적이 없습니다 . 눈에 띄는 속도 충돌을 볼 수있는 유일한 시간은 작업 부하가 너무 많은 RAM을 소비하여 Windows에서 디스크로 지속적으로 페이징해야하는 경우입니다.이 경우 RAM을 더 추가하면 속도가 빨라질 수 있습니다. 그러나 98 %의 사람들은 4GB보다 큰 RAM이 필요한 종류의 작업을 수행하지 않으므로 추가 RAM을 모두 확보 할 때 실질적인 이점을 경험하지 못할 것입니다.
misha256

1
@mattycfp Windows RAM 사용을 제한 할 수있는 다른 방법이 있습니다. 귀하, 다른 사람 또는 일부 소프트웨어가 RAM 사용에 제한을 두었습니까? 이 기사를보고 지침을 따르십시오. helpdeskgeek.com/windows-7/…
misha256

1
Firefox는 모든 탭 / 프로세스에서 2GB 제한이 있으며 크롬도 마찬가지입니다. 이는 프로세스 당 정상 한계에 추가됩니다.
JamesRyan

6
Firefox와 Chrome을 각각 20 개의 탭으로 열면 충분하지 않습니다. 157 개의 탭으로 Firefox를 열었으며 1GB의 RAM도 사용하지 않습니다. 게임을 실행하는 동안 확인하십시오. Jamie Hanrahan의 답변은 매우 훌륭하고 상세합니다. 자세한 내용은 Mark Russinovich의 블로그 게시물 Windows의 한계를 뛰어 넘는 내용을 참조하십시오. 링크 .
sbecker

답변:


27

도움이되는 경우 리소스 모니터는 다른 모든 RAM을 "대기"

"대기"RAM 사용 중입니다. 페이지 캐시로 사용되고 있으며 (최근에 모든 프로세스 작업 세트에서 손실 된 페이지를 보유합니다. 즉, 디스크로 이동하지 않고도 페이지 결함을 해결할 수 있음) SuperFetch의 사전 파일 캐시에 사용됩니다.

대기 페이지를 다른 용도로 할당하기 전에 디스크에 쓸 필요가 없기 때문에 "사용 가능"한 것으로 간주됩니다. 프로세스가 페이지 오류 칠 때와 같은 않는 디스크에서 읽을 필요는 새로운 물리적 페이지 (들) 해당 프로세스에 할당해야하며, 필요한 경우 이러한 대기 목록에서 취할 수 있습니다. (이것은이 목적을위한 페이지를 찾기위한 첫 번째 선택이 아니며, 무료이고 그다음 제로 페이지 목록입니다.)

즉, 시스템이 정상적으로 작동하고 있습니다.

Windows 내부testlimit 실험에서 사용되는 도구 중 하나 인 명령 줄 도구를 사용하여 시스템에서 더 많은 RAM을 "사용 중"상태로 만들 수 있습니다 . 일반적인 sysinternals 도구의 일부는 아니지만 관련 도구입니다. 찾을 여기 시스 인 터널 사이트에서. 다운로드는 testlimit.exe 및 testlimit64.exe의 두 가지 버전이 포함 된 zip 파일입니다. 둘 다 큰 주소를 인식하므로 32 비트 버전은 / 3GB로 부팅 된 32 비트 시스템에서 최대 3GiB, 64 비트 시스템에서 최대 4GiB를 할당 할 수 있습니다.

c:\> testlimit -? 도움을줍니다.

c:\> testlimit -d 4 -c 512는 각각 4MiB의 512 개 할당으로 2GiB의 프로세스 전용 가상 주소 공간을 할당하려고 시도합니다. 64 비트 컴퓨터에서 제대로 작동합니다. / 3GB로 부팅 되지 않은 32 비트 시스템 (대부분은 아님)에서 약간의 초기 b / c 오류가 발생할 수 있습니다 (프로그램 자체, 모든 DLL 등). 프로그램이 할당 할 수있는 전체 2GiB가 없습니다.

두 경우 모두 "사용 가능한"RAM이 줄어들고 "사용 중"RAM이 증가 하지만 OS가 프로세스 개인 작업 세트에 2 GiB를 모두 남겨 둘 것이라는 보장이 없기 때문에 반드시 2 GiB 가치 는 아닙니다. 단기적으로는 그렇게해도 OS가 "음, 실제로는 아무 것도하지 않고 다른 프로세스는 더 많은 것을 필요로한다"고 결정할 때 프로세스 작업 세트가 나중에 줄어드는 것을 볼 수 있습니다.

할당 "청크"의 크기를 너무 크게하여 청크 수를 줄이십시오. 따라서 각 할당이 사실상 연속적이어야하므로 더 빨리 실패 할 수 있습니다. 예를 들어 4GiB 주소 공간에서 7 개의 512MiB 청크를 찾으려고하면 실패 할 수 있습니다.

d (irty) 대신 l (eak) 옵션을 사용하면 프로그램은 가상 공간을 할당하지만 참조하지는 않습니다. 이 것 없다 "가능"RAM의 모든 상당한 감소를 초래한다.

(d (irty) 옵션은 x86 / x64 페이지 테이블 항목의 "더티 페이지 비트"에서 이름을 가져옵니다. 이는 해당 가상 페이지에 "수정"스타일 피연산자로 액세스 할 때 설정되며 이는 페이지의 내용이 이것은 프로세스 작업 세트에서 페이지를 제거해야하는 경우 페이지를 다른 곳에 사용할 수 있기 전에 해당 컨텐츠를 어딘가에 저장해야한다는 Windows의 표시입니다. "더티 (dirty)"비트가 설정된 페이지는 제거 직후 "수정 된 페이지 목록"(Windows는 해당 백업을 해당 백업 저장소에 씁니다.)

위에서 설명한대로 (이 옵션이 상당한 양의 RAM을 사용하지 않더라도 l (eak) 옵션에 대해서도) 이러한 테스트가 작동하려면 충분한 "커밋"이 필요합니다. 특히, 테스트를 시작하기 전에 "커밋 한도"는 "커밋 요금"보다 2GiB 이상 (또는 할당하는 금액)보다 높아야합니다. 이는 d (irty)뿐만 아니라 l (eak) 옵션을 사용하는 경우에도 적용됩니다. 이 한계에 도달하면 "시스템 메모리 부족"팝업 또는 이와 유사한 팝업이 표시됩니다. 물론 치료법은 더 많은 RAM을 추가하거나 페이지 파일 설정을 높이는 것입니다.


16

실제로 RAM 사용을 제한하도록 Windows를 구성 할 수 있습니다. 랩톱에서이 설정을 어떻게 또는 누가 구성했는지는 모르지만 확인해야합니다.

최대 램 설정

기사 에는 자세한 내용이 있지만 위의 대화 상자로 이동하는 것은 쉽습니다.

  1. 시작 아이콘을 클릭하고 msconfig.exe검색 창에 입력하십시오

    msconfig를 시작하는 방법

  2. msconfig.exe를 시작하고 Boot탭을 클릭 한 다음 Advanced Options...버튼 을 클릭하면

    msconfig 부팅 설정 대화 상자

  3. 적당한 값 (예 : 8GB RAM의 경우 8192)을 입력 하거나Maximum memory Windows가 모든 RAM을 사용하도록 하는 확인란의 선택을 취소하십시오 . 나는 두 가지 옵션을 모두 시도 할 것입니다.

    최대 램 설정


@ misha256-원래 내용이 거의없는 답변으로 인해 혼란 스럽습니다. 그렇습니다. 다른 사람이 답변 중 하나를 제출하면 답변에 대해 두 번 생각조차하지 않았을 것입니다 (아마도 도움이되는 것으로 판단하는 경우 제외).
Ramhound

@ misha256 이것이 문제라면 OP에 약 4GB가 사용되지 않고 다른 4GB 대기가 표시되지 않습니다. 해당 옵션에서 제외 된 RAM은 "대기"에 나타나지 않습니다. OP는 또한 "8GB의 메모리 및 7.74GB를 사용할 수 있음"을 표시하지 않습니다. (예 : 비디오 카드로 인해 "사용할 수없는"256MB가 예상됩니다).
Jamie Hanrahan

10

SysInternals RAMMap 을 사용 하여 PC가 실제 RAM으로 수행하는 작업을 정확하게 볼 수 있습니다 . 작업 관리자 또는 프로세스 탐색기와 같은 다른 도구는 주로 가상 메모리에 중점을 두며이 상황에 가장 적합한 도구는 아닙니다.

"카운트 사용"탭에서 많은 응용 프로그램을 열지 않은 동안 많은 부분이 사용되지 않는 것을 볼 수 있습니다.

SysInternals RAMMap

그렇다고 PC가이 상태를 유지하지는 않습니다. 몇 개의 프로그램을 열면 메모리가 사용됩니다.


"가상 RAM"이라는 용어는 사용하지 않아야합니다. 또한 다른 도구는 주로 가상 메모리에 중점을두고 있다고 말하지는 않습니다. 실제 메모리 사용을 보여주는 카운터가 많이 있습니다.
Jamie Hanrahan

5

주제에 관한 아주 좋은 기사 에서 인용 :

더 많은 메모리가 실제로 [컴퓨터의] 처리 속도를 증가 시키지는 않습니다. 더 빠른 CPU만이 그렇게 할 수 있습니다.

그리고 내 경험상 그것은 일반적으로 사실입니다. 동시에 많은 프로그램을 실행 하고 있고 해당 프로그램에 상당한 RAM 요구 사항이없는 한 4GB 이상의 RAM을 사용하면 실제로 얻을 수있는 이점이 거의 없습니다.

사람들은 4GB가 많은 RAM의 지옥이라는 것을 깨닫지 못하는 것 같습니다. Windows가 그 이상을 사용하게하려면 노력이 필요합니다. 많은 다른 앱 을 열어야 하고, 그 앱에서 큰 파일을 열어야합니다. 몇 개의 YouTube 동영상 탭을 던져서> 4GB 이상의 사용률이 표시 될 수 있습니다.


2
@mattycfp 방금 Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (알려진 RAM 호그), Photoshop, Media Player, VLC, MPC-HC 등 4GB 컴퓨터에서 16 개의 Windows를 열었습니다. 다른 임의의 응용 프로그램을 추가하고 작업을 수행하고 문서를로드하고 비디오를 재생하는 등 모든 실제 RAM 사용량이 2.2GB이고 컴퓨터가 그 어느 때보 다 빠릅니다. 4GB가 그렇게 쉬운
보라

3
@mattycfp 120 FF의 Windows? 특히 랩톱에서 RAM보다 CPU를 최대한 활용할 가능성이 높습니다. 또한 FF는 32 비트 응용 프로그램이며 여러 FF 창은 실제로 단일 32 비트 프로세스를 공유하므로 FF는 실제로 매우 제한되어 있으므로 총 8GB 중 2GB 만 사용할 수 있습니다. 당신이 많이 실행해야하는 이유 다른 Windows가 RAM, FF의 단지 120 윈도우를 사용하는 방법을 테스트하는 동시에 애플 리케이션을.
misha256

4
@ misha256 당신은 시스템이 지속적으로 메모리를 교체하는 경우 성능 향상을 참조하십시오. 메모리 압력이 증가하면 페이징이 증가하고 시스템 속도가 느려집니다. 그것은 메모리를 추가하면 더 빨리 갈 수 있도록하지만,이 것이 아닙니다 것이다 관련된 소프트웨어가 시스템 요구 사항에 페이징의 일정 금액을 가정 특히, 속도를 늦추고에서 당신을 유지합니다. 이 기사는 페이징에 대해 많이 언급하지 않은 것 같습니다. 페이징은 속도를 저하시키는 원인입니다.
phyrfox

4
@ misha256 IRC, Spotify, Notepad ++, Chrome 및 작업 관리자가 열려 있으며 총 4GB 중 3.02GB를 사용하고 있습니다. 생각보다 4GB 제한에 도달하기는 쉽지만 실제로는 고급 사용자가 필요합니다
Thebluefish

1
@ misha256 수정 : FF는 큰 주소를 인식하며 32 비트 프로세스에서 최대 3GB를 처리 할 수 ​​있습니다. 64 비트 버전의 FF (현재 Windows 베타 버전)는 훨씬 더 많은 문제를 해결할 수 있습니다. 또한 4GB 이상의 RAM을 "사용하기"(주민 개인 작업 집합) 어렵다고 말할 때 너무 많이 일반화하고 있다고 생각합니다. 그것은 당신이 무엇을하고 있는지, 얼마나 많이 열어야 하는가에 달려 있습니다. 내 기준 사용량이 이미이를 초과합니다.
Bob

5

Windows는 페이징 메모리와 같은 영리한 작업을 수행합니다. 그것은 당신이하고있는 대부분의 작업을 불필요하게보고 페이지 파일에 많은 양의 물건을 덤프하기로 결정하여 모든 RAM을 사용하지 않는 것처럼 보이게 할 수 있습니다. 페이징을 비활성화하여이 이론을 테스트 할 수 있지만 영구적으로 구성해야하는 것은 아닙니다. 인터넷에는이를위한 많은 튜토리얼이 있습니다. 24GB 및 64GB 컴퓨터에서도 수행되는 작업 중 하나는 페이징 규칙이 약 50 %, 80 % 및 90 % 소비에 도달 할 때 훨씬 엄격하게 만드는 것입니다 (이 수치는 근사치 임). 각 단계에서 많은 양의 페이지 파일에 덤프되는 것을 알았습니다.

재미있는 일은 다음과 같습니다.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

그것은 C 코드입니다. GCC 또는 일부 컴파일러를 가져 와서 exe로 만들고 메모리 소비량을 늘리십시오. 2GB 이상의 메모리를 사용하려면 64 비트 프로세스로 컴파일하고 실행해야합니다. 당신이 그런 종류의 일에 빠져 있다면 흥미로운 실험이 될 수 있습니다.

편집 : 프로그램이 이것으로 죽지 않을 것이라는 점을 알고 싶었습니다. 다른 코드가 작동했는지 확실하지 않기 때문에 이전 코드에서 메모리를 편집했습니다 (메모리가 페이징되어 메모리가 소비되지 않음, lol). 새 코드에는 한 줄이 포함되어 있습니다. int gb = 2; // memory to consume in GB2를 변경하면 프로그램이 사용해야하는 메모리 양이 조정되므로 원하는만큼 사용하도록 설정할 수 있습니다. 시스템에서 설정 한 것보다 높은 값으로 설정하면 시스템이 중단 될 수 있습니다 (테스트되지 않았으므로주의해서 사용하십시오)


나는 그것을 컴파일 할 수 있기를 원하지만 내 인터넷은 내가 시도하는 모든 다운로드를 계속 손상
시킵니다

5
@mattycfp 따라서 OS에서 4GB 이상의 RAM을 사용할 수 없으며 모든 다운로드가 계속 손상됩니까? 에 시간 (A)는 하드 드라이브를 지우고 새로운 OS를 설치하는, 또는 (b)에 빈에서 노트북을 던져 이미 적절한 하나를 얻을.
misha256

1
이 프로그램은 한 번에 한 페이지 씩 2GB의 가상 메모리를 할당하고 "터치"하여 각 페이지가 할당 된 직후 RAM에 오류가 발생합니다. 그러나 Windows가 동시에 모든 RAM을 유지한다고 보장하지는 않습니다. 프로그램이 모든 vm에 반복적으로 액세스하지 않기 때문에 먼저 할당 된 페이지가 페이징 아웃 될 수 있습니다. Windows 내부 도구 "testlimit", 옵션 -d를 사용하면 해당 프로그램과 동일한 효과를 얻을 수 있습니다.
Jamie Hanrahan

이 경우라면 @mattycfp RAM에 문제가 없음을 알고 싶을 것입니다 ... 다운로드하는 모든 파일이 어떻게 든 손상됩니까? 호환되지 않는 스틱에 문제가있는 경우도 있으므로 마더 보드 설명서를 확인하고 해당 지침에 따라 RAM이 구성되어 있는지 확인해야합니다 (슬롯은 1과 2 또는 1-4로 번호가 매겨지며 일반적으로 1과 3은 RAM의 동일한 "유형"또는 "제조업체 및 모델"(2 및 4). & int gb = 2; // memory to consume in GB
그렇습니다이

유일하게 사용하여 부호없는 long으로 캐스팅 할 때 gb를 int 유형으로 선언 한 이유는 무엇입니까? 또한 내가 같은 방법으로 치료하고 INT와 캐스트에 서명되지 않은 사이에 혼합 비교를하고. 그래서 나는 또한 오랫동안 서명하지 않았습니다.
JDługosz

1

32 비트 프로그램을 사용하여 컴퓨터의 실행 속도를 테스트하고 있습니까? 그렇다면 더 많은 RAM이 있어도 32 비트 주소는 4GB의 RAM 만 가리킬 수 있습니다. 유용한 결과를 얻으려면 64 비트 프로그램을 사용하여 테스트를 반복하고 4GB의 RAM이있는 속도와 8GB의 RAM이있는 속도로 속도를 확인해야합니다. 또한 4GB 이상의 메모리를 사용하여 더 빠르게 실행할 수있는 64 비트 프로그램이어야합니다. 프로그램이 32 비트인지 확인하려면 프로그램을 시작하고 그대로두고 Windows 작업 관리자를 시작하고 프로세스를 클릭 한 다음 관심있는 프로그램을 찾을 때까지 아래로 스크롤하십시오. 이미지 이름 열의 프로그램 이름 뒤에 공백이 있고 * 32이면 32 비트 프로그램입니다.


여러 개의 32 비트 프로그램을 실행하면 총 RAM 사용량이 8GB에 쉽게 도달 할 수 있습니다.
Jamie Hanrahan

0

가져 오기 프로세스 탐색기 시스 인 터널에서 (procexp을) . 리소스 그래프를 가지고 있으며, 프로세스 별 메모리 사용량을 보여줄 수 있습니다.

당신은 당신이 단순히 모든 걸 포기하고 사용하지 않을 있는지 확인하기 위해, 가상 spqce 사용에 대 실제 RAM의 사용을 볼 수 있습니다 또는 당신이 더 필요한 것 같다하지만, 실제 사용을 제한하고 있습니다.

대부분의 일상적인 프로그램 은 수요를 낮게 유지 하는 다른 작업 세트 크기를 사용합니다 . 프로그램이 많은 메모리를 할당하면 실제로 모든 메모리를 동시에 사용 하지는 않습니다 ...

Windows는 프로그램에서 사용 가능한 페이지로 페이지를 공격적으로 이동 하지만 페이지 오류가 발생하면 스왑 파일에서로드하지 않고 목록에서 페이지를 가져옵니다. 대기는 다음을 포함 할 수 있습니다. 도구마다 다른 방식으로 레이블이 다릅니다.

최소한이 테스트에서는 스왑 파일을 해제 해 볼 수 있습니다. 그러면 데이터 메모리가 실제로 사용됩니다. procexp가 그것을 명확하게 알기에 충분할지라도.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.