시스템이 왜 그렇게 많은 RAM을 차지합니까?

시스템이 왜 그렇게 많은 RAM을 차지합니까?

모든 프로세스가 합쳐서 2GB 이상만 사용하는데 왜 총 5GB의 메모리가 사용됩니까? 시스템이 왜 그렇게 많은 RAM을 차지합니까?

답변1

메모리 부족이 없는 시스템은 RAM을 비우려고 할 이유가 없습니다. 실제로 사용 중인 RAM이 성능을 향상시킬 수 있기 때문에 가능한 한 많은 RAM을 사용합니다. 사용되지 않는 RAM은 영원히 낭비됩니다. 나중에 사용하기 위해 RAM을 아껴둘 수 없습니다. 따라서 최신 운영 체제는 가능한 한 많은 RAM을 사용하려고 노력합니다.

RAM을 무료로 만들고 다시 무료로 만드는 것보다 RAM을 한 용도에서 다른 용도로 직접 전환하는 것이 훨씬 더 효율적입니다.

이 동작은 의도적으로 설계된 동작입니다. 아무 일도 하지 않고 그대로 방치된 메모리를 원한다면 컴퓨터에서 메모리를 꺼내 책상 위에 올려두십시오.

"나중에 사용할 수 있도록 지금 RAM을 비워두고 싶다"고 생각한다면, 그 생각을 머리에서 꺼내십시오. 지금 사용하실 수 있습니다그리고나중에 사용하세요. 여기서는 타협할 여지가 없습니다.

답변2

첫째, 열 제목이 제가 생각하는 것과 같다면 처음 두 프로세스 자체는 2GB를 사용하고 있는 것입니다. ("시스템" 프로세스는 운영 체제가 아닙니다... 어쨌든 전부는 아닙니다. 예를 들어 페이징 풀과 비페이징 풀, 파일 캐시 및 SUperFetch 캐시에서 사용하는 메모리는 운영 체제의 일부로 표시되지 않습니다. "시스템" 프로세스.)

둘째, 해당 열에는 각 프로세스의 크기만 표시됩니다.사적인작업 세트. 그러나 각 프로세스에는 그보다 훨씬 더 많은 RAM이 있습니다. 나머지는 그 안에 있다공유됨작업 세트. 프로세스 간에 공유할 수 있지만 반드시 그런 것은 아닙니다. 공유 작업 세트를 모두 합산하면... 불행히도 실제 총 사용량이 무엇인지 알 수 없습니다. 이는 그 전체만큼 크지 않으며 단순히 공유 작업 세트 중 가장 큰 것만큼 작을 가능성도 거의 없습니다.

셋째, OS는 프로세스의 일부가 아닌 많은 것들을 유지합니다. 비페이징 풀이 있습니다. 페이징 풀에는 상주(페이징) 부분이 있습니다. 시스템 파일 캐시의 상주 부분(SuperFetch 캐시 아님)도 "사용 중"("사용 가능" 아님)으로 간주되는 메모리의 일부입니다. (SuperFetch가 사용하는 공간은 "사용 가능한" 공간으로 간주됩니다.)

넷째, 이러한 사용(비페이징 풀 제외)은 거의 모두 페이징 가능하므로 각 구성 요소가 "필요한" 양이 아니라 "현재 조건에서 사용 중인 양"을 나타냅니다.

Windows에서는 RAM에 대한 부담이 없는 경우 프로세스 및 기타 페이징 가능한 사용량이 기회에 따라 증가하도록 허용합니다. 여기에는 현재 수행 중인 모든 작업을 수행할 수 있는 충분한 RAM이 있습니다.다시,현재 실행 중인 항목을 닫지 않고. 이는 메모리 압박을 겪고 있는 시스템이 아니므로 물론 Windows는 RAM을 절약하지 않습니다.

RAM이 6GB에 불과한 시스템에서 정확히 동일한 워크로드를 실행하면 모든 것이 다소 작아 보일 수 있지만 많지는 않습니다. 4GB RAM 시스템에서 모두 실행하면 모든 것이 확실히 더 작아질 것입니다(그리고 조금 더 느리게 실행될 가능성이 있지만 그다지 많지는 않습니다. 현재 구성의 RAM에 있는 많은 항목이 "오래"되었을 가능성이 높기 때문입니다. 별로 해롭지 않습니다. 디스크로 벗겨지는 중입니다.)

현재 설정으로 돌아가서: 필요한 작업을 갑자기 실행해야 하는 경우(예: 추가 8GB RAM) Windows는 이를 위한 공간을 확보하기 위해 최소 활성 프로세스부터 시작하여 기존 작업 프로세스를 축소합니다. RAM은 휘발유와 다릅니다. David Schwartz가 아주 잘 말했듯이 나중에 사용할 수 있도록 지금 RAM을 절약할 필요가 없습니다. Windows에서는 지금 한 가지 용도로 이를 사용하고 나중에 다른 용도로 사용할 수 있습니다. 이것이 바로 수요 페이징 운영 체제입니다.

관련 정보