Windows 10과 11의 메모리 압축(Memory Compression) 기능은 RAM의 일부 페이지를 압축하여 물리적 메모리 활용도를 최적화합니다. 프로세스 메모리 압축을 활용하면 디스크로 페이지 아웃하지 않고도 더 많은 프로세스를 물리적 메모리에 유지할 수 있습니다. 압축·해제 과정에서 추가적인 CPU 자원이 소모되지만, 필요한 데이터를 RAM에서 훨씬 빠르게 불러올 수 있습니다. 메모리 압축을 사용하면 RAM 사용량을 줄이고, I/O 작업량을 감소시켜 하드 디스크 부하를 낮추며, SSD 수명까지 절약할 수 있습니다.
마이크로소프트는 Windows 10과 Windows Server 2016에서 처음으로 메모리 관리자(Memory Manager, MM)를 통해 메모리 압축 기능을 도입했습니다. 이 글에서는 Windows에서 압축 메모리 사용 통계를 확인하는 방법과, Memory Compression 프로세스의 높은 부하로 컴퓨터가 느려질 경우 RAM 압축을 활성화하거나 비활성화하는 방법을 살펴봅니다.
Windows 10/11의 압축 메모리
Windows 메모리 관리자는 메모리 부족 상태를 감지하면, 사용되지 않는 메모리 페이지를 디스크의 페이지 파일에 기록하는 대신 압축하여 다른 프로세스를 위해 RAM을 확보합니다.
초기에는 시스템 및 압축 메모리(System and compressed memory) 프로세스가 System 프로세스 내부에 포함되어 있어 문제 해결이 쉽지 않았습니다. 최신 Windows 빌드(Windows 10 20H2 및 Windows 11)에서는 이 기능이 별도의 Memory Compression 프로세스로 분리되었으며, 작업 관리자에는 표시되지 않습니다. PowerShell의 Get-Process cmdlet을 사용하면 이 프로세스에 대한 정보를 확인할 수 있습니다.
Get-Process -Name "Memory Compression"Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
0 0 1548 380920 1,104.59 1764 0 Memory Compression
현재 메모리 압축 사용량은 Windows 작업 관리자에서만 확인할 수 있습니다.
성능 탭으로 이동한 후 메모리 섹션을 선택합니다. 현재 압축 메모리 사용량은 사용 중(압축됨) 항목에 표시됩니다. 예를 들어 총 4.5GB가 사용 중이며, 그중 373MB가 압축된 상태입니다. 원래 얼마만큼의 메모리가 압축되었는지 확인하려면 메모리 구성 그래프에 마우스를 올려보세요:
사용 중 압축됨(373MB). 압축 메모리에는 약 1,549MB의 데이터가 저장되어 있으며, 시스템은 1,176MB의 메모리를 절약하고 있습니다.
보시다시피 메모리 압축률은 약 315%에 달하며, RAM 절약 효과가 상당히 큽니다.
또한 Process Explorer를 사용하면 Windows 11/10에서 Memory Compression 프로세스의 실제 CPU 사용량과 메모리 크기를 확인할 수 있습니다.
Process Explorer를 실행하고 System 프로세스 트리에서 Memory Compression 프로세스를 찾습니다.
Memory Compression 프로세스는 SysMain(구 SuperFetch) 서비스가 담당합니다. SysMain은 메모리 페이지를 압축하고 통합하여 디스크 쓰기(페이징)를 줄입니다. 이 서비스가 중지되면 Windows는 RAM 압축을 사용하지 않습니다.
PowerShell로 SysMain 서비스 상태를 확인할 수 있습니다:
get-service sysmain대부분의 경우 컴퓨터가 정상적으로 작동하고 RAM 용량이 충분하다면 압축 메모리 프로세스는 문제없이 작동하며, 관리자의 별도 조치가 필요하지 않습니다.
시스템 및 압축 메모리 프로세스의 높은 CPU·RAM 사용량 문제
SysMain 서비스와 Memory Compression 프로세스는 컴퓨터 성능을 향상시키기 위해 사용됩니다. 그러나 때로는 메모리 압축 프로세스가 CPU나 하드 디스크를 과도하게 사용하거나(작업 관리자에서 최대 100%까지 표시), 너무 많은 RAM을 차지하는 경우가 있습니다. 당연히 컴퓨터는 느려지거나 멈추게 됩니다.
이런 경우 어떻게 해야 할까요? 압축 메모리 프로세스로 인한 높은 시스템 자원 사용 문제를 해결하는 데 도움이 되는 몇 가지 팁을 소개합니다.
- 페이지 파일을 일시적으로 비활성화(페이징 파일 없음 옵션)한 후 컴퓨터를 재시작하고, 다시 페이지 파일을 활성화(모든 드라이브에 대한 페이징 파일 크기 자동 관리 옵션)한 뒤 재부팅해 보세요.
- 절전 모드 또는 최대 절전 모드에서 깨어난 후에만 압축 메모리 프로세스의 높은 부하 문제가 발생한다면(재시작 후에는 사라짐), 저장소 컨트롤러(ACPI/AHCI/RAID/SCSI), 하드 디스크, 그래픽 카드의 최신 드라이버를 공식 웹사이트에서 다운로드해 설치하세요. 이후 자동 드라이버 업데이트를 비활성화하는 것이 좋습니다.
이 방법으로도 해결되지 않으면 Windows가 압축 메모리를 아예 사용하지 않도록 설정할 수 있습니다.
Windows 10/11에서 메모리 압축 비활성화 방법
압축 메모리 없이 Windows 10이 안정적으로 작동하는지 확인하려면 이 기능을 일시적으로 비활성화할 수 있습니다. 관리자 권한 PowerShell을 열고, 먼저 압축 메모리가 활성화되어 있는지 확인합니다:
Get-mmagentApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : True
OperationAPI : True
PageCombining : True
MemoryCompression: True 값은 압축 메모리가 활성화되어 있음을 의미합니다.
이제 Windows에서 압축 메모리를 비활성화합니다:
Disable-MMAgent -MemoryCompression그리고 컴퓨터를 재시작합니다:
Restart-Computer압축 메모리를 비활성화한 후 전반적인 시스템 성능이 변했는지 확인하세요. 성능이 개선되었다면 압축 메모리를 비활성화한 상태로 사용해도 됩니다.
일부 경우에는 다음 방법으로 압축 메모리 문제를 해결할 수 있습니다:
- SysMain 서비스(구 SuperFetch)를 비활성화합니다(
services.msc→ SysMain → 시작 유형: 사용 안 함). 이렇게 하면 메모리 관리자의 Windows 10/11 메모리 최적화 프로세스가 비활성화됩니다. - 작업 스케줄러에서 전체 메모리 진단 RunFullMemoryDiagnostic 작업을 비활성화합니다(작업 스케줄러 → 작업 스케줄러 라이브러리 → Microsoft → Windows → MemoryDiagnostic → RunFullMemoryDiagnostic(물리적 메모리(RAM) 문제 감지 및 완화) → 사용 안 함).
- 네트워크 활동 모니터링 드라이버(NDU, Network Data Usage)를 비활성화해 봅니다(Windows의 비페이지 메모리 풀 관련 문서에서 자세히 설명).
- 백신 프로그램의 실시간 보호를 비활성화해 봅니다. 백신이 압축 메모리와 제대로 호환되지 않을 수 있습니다.
- DISM과 SFC를 사용하여 Windows 이미지 시스템 파일을 검사합니다.
이 팁들은 압축 메모리 프로세스로 인한 높은 시스템 부하 문제를 해결하는 데 도움이 될 수 있습니다. 다만, 이는 Windows의 핵심 성능 최적화 기능을 비활성화하는 것이므로 장치의 전반적인 성능에 부정적인 영향을 줄 수 있습니다.
Windows Server 2016/2019/2022 또는 Windows 10에서 메모리 압축 활성화 방법
모든 버전의 Windows Server에서는 메모리 압축이 기본적으로 비활성화되어 있습니다.
Get-mmagent 명령을 실행하여 압축 메모리가 비활성화되어 있는지 확인합니다. 예를 들어 Windows Server 2022에서는 Memory Compression 값이 False로 표시됩니다.
Windows가 메모리 압축을 사용하려면 다음 조건을 충족해야 합니다:
- 페이지 파일이 활성화되어 있어야 합니다(최소 16MB).
- SysMain 서비스가 실행 중이어야 합니다.
- Windows 10/11 또는 Windows Server 2016 이상을 사용하고 있어야 합니다.
Windows에서 메모리 압축을 활성화하려면 다음 PowerShell 명령을 실행합니다:
Enable-MMAgent -MemoryCompression컴퓨터를 재부팅합니다.
메모리 압축을 활성화하면 SysMain의 또 다른 기능인 페이지 결합(Page Aggregation)이 자동으로 켜집니다. 이 메모리 관리자 기능은 동일한 내용의 메모리 페이지를 병합하는 일종의 RAM 중복 제거(deduplication) 기능입니다.
일반적으로 Windows 10과 11의 메모리 압축 기능은 상당히 효과적으로 작동하며 별도의 개입이 필요하지 않습니다. 메모리 압축으로 인해 문제가 발생한다면 시스템 설정, 하드웨어 또는 드라이버에 문제가 있을 가능성이 높습니다. 필요한 경우 메모리 압축을 완전히 비활성화할 수도 있습니다.