Reddit을 비롯한 여러 Windows 커뮤니티에서는 ntoskrnl.exe와 관련된 메모리 누수 문제에 대한 불만이 끊이지 않고 있습니다. 많은 사용자들이 이 시스템 파일로 인해 RAM과 CPU 사용량이 비정상적으로 급증했다고 보고했으며, 심한 경우에는 메모리 덤프로 인한 BSOD(블루 스크린 오류)까지 경험했다고 합니다.
이 글에서는 Windows의 메모리 관리 방식과 ntoskrnl.exe가 정확히 어떤 역할을 하는지 살펴보고, 이 파일이 과도하게 시스템 자원을 소모하는 원인과 그 해결 방법까지 자세히 안내해 드리겠습니다.
Ntoskrnl.exe란 무엇이며 어떤 역할을 할까요?
Windows 10은 방대한 운영체제이지만, 어떻게 수많은 메모리 작업을 효율적으로 처리할 수 있을까요? 그 비밀은 바로 ntoskrnl.exe라는 메모리 관리자에 있습니다.
Ntoskrnl.exe(Windows NT 운영체제 커널의 약자)는 흔히 '커널 이미지(kernel image)'라고도 불리는 시스템 응용 프로그램 파일로, Windows NT 커널 공간의 커널 계층과 실행 계층을 담당합니다. 하드웨어 가상화, 프로세스 및 메모리 관리 등 다양한 시스템 서비스를 수행하기 때문에 운영체제의 핵심 요소라고 할 수 있습니다. 이 파일 안에는 캐시 관리자, 실행 모듈, 커널, 보안 참조 모니터, 메모리 관리자, 스케줄러 등이 모두 포함되어 있습니다.
바로 이러한 이유 때문에 Ntoskrnl.exe는 철저하게 보호되는 시스템 파일이며, 일반적인 상황에서는 쉽게 삭제되거나 손상되지 않습니다.
Windows의 메모리 관리 원리
메모리 관리는 다음과 같은 방식으로 동작합니다. 먼저 작업(task)이 해당 작업을 실행할 프로그램과 함께 메모리(RAM)에 적재됩니다. 이것이 '패치(fetch)' 단계입니다. 이후 CPU가 명령을 해석하고 작업을 실행한 뒤, 결과를 메모리에 기록하며, 필요하다면 프로그램이 나중에 이를 디스크에 저장합니다. 실행 단계에서는 GPU, CPU, 디스크(ROM, HDD, SSD 등), 네트워크 장비 등 작업 성격에 따라 다양한 장치에 접근하게 됩니다. 프로그램을 종료하면 처리 중이던 데이터와 함께 메모리에서 제거되고, 확보된 공간은 다른 작업이 사용할 수 있게 됩니다.
Ntoskrnl.exe가 디스크·메모리·CPU를 과도하게 사용하는 원인
Ntoskrnl.exe가 메모리를 관리하는 주체라면, 왜 오히려 메모리와 CPU를 대량으로 소모하는 것일까요? 알려진 주요 원인은 다음과 같습니다. 특히 심각한 사례는 대부분 하드웨어 문제나 악성코드로 인한 메모리 누수에서 비롯됩니다.
1. Windows 10의 새로운 압축 메모리 기능
Windows 7이 빠르다고 느껴졌던 이유가 궁금하신가요? 그 해답 역시 ntoskrnl.exe의 새로운 기능에 있습니다. Windows 10은 다른 운영체제와 달리 높은 메모리 사용량이 기본 설계에 포함되어 있으며, Microsoft도 여러 차례 이에 대해 설명한 바 있습니다.
Windows 10 Build 10525 출시 당시 Microsoft는 이렇게 밝혔습니다. "Windows 10에는 메모리 관리자에 '압축 저장소(compression store)'라는 새로운 개념이 추가되었습니다. 이는 압축된 페이지들의 메모리 내 컬렉션으로, 메모리 관리자가 메모리 부족 압박을 감지하면 사용하지 않는 페이지를 디스크에 쓰는 대신 압축합니다. 이를 통해 프로세스당 메모리 사용량이 줄어들어 Windows 10이 물리적 메모리에 더 많은 응용 프로그램을 동시에 유지할 수 있고, 전반적인 반응성도 향상됩니다." 또한 "압축 저장소는 시스템 프로세스의 작업 집합(working set)에 존재하기 때문에, 다른 프로세스에 메모리를 확보해 주는 순간 시스템 프로세스의 작업 집합이 커집니다. 이것이 작업 관리자에서 확인할 수 있으며, 이전 버전보다 시스템 프로세스가 더 많은 메모리를 소모하는 것처럼 보이는 이유입니다."
결국 높은 메모리 사용량은 어느 정도 Windows 10의 의도된 동작이지만, 때로는 메모리 누수로 오인되기도 합니다. Windows 10은 속도를 얻기 위해 메모리를 희생하는 방식을 택했습니다. 페이지를 HDD에 쓰는 대신 RAM 위에서 압축하는 것인데, 컴퓨터의 RAM에서 압축된 데이터를 읽는 것이 HDD에서 읽어 RAM에 올리는 것보다 훨씬 빠르기 때문에 Windows 10이 이전 버전보다 빠른 것입니다. 이 방식은 Windows가 도입하기 전부터 Linux 운영체제에 이미 존재하던 기능이기도 합니다. 응용 프로그램을 많이 열수록 메모리 사용량이 늘어나고, 그에 따라 CPU 사용량도 함께 상승합니다.
2. 손상되었거나 구버전인 장치 드라이버
네트워크 카드, 키보드, 그래픽 카드 등 장치와 데이터를 주고받을 때 ntoskrnl.exe는 장치 드라이버를 통해 데이터를 전송하고 수신합니다. 수신된 데이터는 RAM에 기록된 후 실행을 기다립니다.
그런데 장치 드라이버에 결함이 있다면, 드라이버가 ntoskrnl.exe 메모리 관리자에게 지속적으로 데이터를 전송하여 메모리 누수 형태로 나타날 수 있습니다. 잘못된 드라이버가 ntoskrnl.exe가 소유한 메모리 공간에 데이터를 계속 기록하는 경우도 있습니다. 이렇게 메모리에 데이터가 계속 쌓여 RAM을 가득 채우면, 이를 처리하기 위해 CPU 사용량도 함께 증가합니다. 페이지를 디스크 공간에 저장하던 이전 버전의 Windows에서는 디스크 공간이 순식간에 차오르는 현상으로 나타나기도 했습니다.
이 문제는 Windows 7이나 8.1에서 Windows 10으로 업그레이드한 사용자에게서 특히 흔하게 발생합니다. 기존 드라이버가 Windows 10과 호환되지 않아 메모리 누수를 일으키는 것이죠. 실제로 구버전의 'Killer Network Drivers'가 Windows 10에서 메모리 누수를 유발한다는 보고가 있었습니다.
3. 악성코드 및 바이러스
온라인에 유통되는 셰어웨어와 프리웨어에는 주의가 필요합니다. 이런 프로그램들은 ntoskrnl.exe 시스템 파일에 스스로를 심거나 해당 파일의 기능을 탈취하여 메모리 누수를 일으킬 수 있고, 실행 파일의 레지스트리 값을 변경하기도 합니다. 그 결과 ntoskrnl.exe가 정상적으로 동작하지 못하게 됩니다. 악성코드는 본래 컴퓨터에 피해를 주기 위해 만들어지므로, RAM으로 데이터가 유입되는 것은 허용하지만 데이터가 나가는 것은 차단합니다. 바이러스가 ntoskrnl.exe가 소유한 메모리 공간에 직접 데이터를 기록하는 경우도 있는데, 이렇게 되면 메모리가 가득 차고 CPU 사용량이 크게 증가하며, HDD에 저장된 페이지들로 인해 저장 공간마저 부족해질 수 있습니다.
Ntoskrnl.exe가 메모리가 너무 가득 차서 더 이상 아무것도 들어갈 수 없는 상황을 감지하면, 이른바 '패닉' 상태에 빠집니다. 상황을 수습하기 위해 메모리 덤프를 생성하면서 다른 Windows 파일들까지 함께 기록하게 되는데, 그 결과가 바로 BSOD(블루 스크린 오류)입니다. 메모리 공간이 지속적으로 침해당하고 있다고 판단될 때도 같은 현상이 발생합니다.
또한 과도한 활동으로 인한 CPU 과열 때문에 시스템이 갑자기 종료될 수도 있습니다. CPU가 손상되는 것을 막기 위해 컴퓨터가 스스로 전원을 꺼서 냉각하는 것이죠.
4. 손상된 Ntoskrnl.exe 시스템 파일
Ntoskrnl.exe는 철저히 보호되는 시스템 파일이라 충돌하거나 손상되는 일이 드물지만, 만약 손상된다면 어떤 시점에 무엇을 RAM에 기록해야 하는지, 언제 RAM 공간을 비워야 하는지 판단하지 못해 오작동하게 됩니다. 그 결과 데이터와 메모리 페이지가 계속 쌓여 CPU가 이 메모리 공간을 관리하기 위해 평소보다 훨씬 많이 작동하게 되고, 같은 이유로 HDD 용량도 급속히 소진될 수 있습니다.
Windows 10에서 ntoskrnl.exe의 과도한 메모리 사용을 해결하는 방법
갑자기 메모리 누수 증상이 나타난다면 악성코드나 바이러스 감염을 의심해 볼 수 있습니다. 반대로 Windows 업데이트나 새 장치 설치 이후 메모리 누수가 시작되었다면, 결함이 있거나 구버전인 장치 드라이버가 원인일 가능성이 높습니다.
아래에서 ntoskrnl.exe의 과도한 메모리 점유 문제를 해결할 수 있는 방법들을 소개합니다.
시작 전: 손상된 시스템 파일 복구
먼저 Restoro를 다운로드하여 실행하고, 손상되었거나 누락된 파일을 검사·복구하세요. 복구가 완료되면 아래의 해결 방법을 진행합니다. 아래 단계를 수행하기 전에 모든 시스템 파일이 온전한 상태인지 확인하는 것이 중요합니다.
방법 1: 드라이버 업데이트
Windows 10으로 업그레이드한 후라면, 그래픽 드라이버와 네트워크 드라이버가 메모리 누수의 1차 원인일 가능성이 큽니다. 특히 'Killer Network Drivers'를 사용하는 PC에서 자주 발생합니다. 드라이버를 업데이트하는 방법은 다음과 같습니다.
- Windows 키를 누른 상태에서 R을 누릅니다. hdwwiz.cpl을 입력하고 확인을 클릭합니다.
- 드라이버 탭으로 이동하여 '드라이버 업데이트'를 클릭합니다.
- 인터넷에서 업데이트된 드라이버를 자동으로 찾아 설치하는 옵션을 선택합니다.
- PC를 재시작합니다.

방법 2: 안티멀웨어·안티스파이웨어 프로그램으로 시스템 검사
PC에 멀웨어 검사 도구를 설치해 두는 것은 좋은 습관입니다. 아래는 효과가 입증된 추천 프로그램입니다.
- Spybot 또는 Malwarebytes를 다운로드합니다.
- 프로그램을 설치한 후 검사를 실행합니다.
- 발견된 모든 문제를 수리합니다.
- 컴퓨터를 재시작합니다.
방법 3: Runtime Broker 비활성화
Reddit의 최근 논의에 따르면, Runtime Broker는 메모리 최적화가 제대로 되어 있지 않아 상당한 CPU 사이클을 소모하는 시스템 프로세스 중 하나입니다. 이로 인해 CPU 사용량이 높아지고 메모리 누수가 발생합니다.
Runtime Broker를 비활성화하는 방법은 다음과 같습니다.
- 시작 메뉴를 열고 설정 앱을 실행합니다.
- 시스템 > 알림 및 작업을 엽니다.
- 'Windows 사용 팁 표시' 또는 'Windows를 사용하면서 팁, 트릭 및 제안 받기' 옵션의 선택을 해제합니다.
- PC를 재시작합니다.

대체 방법(레지스트리 편집):
- 메모장을 엽니다.
- 아래 키 내용을 복사하여 메모장에 붙여넣습니다.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TimeBroker] "Start"=dword:00000003 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SysMain] "DisplayName"="Superfetch" "Start"=dword:00000003
- 파일 메뉴에서 다른 이름으로 저장을 선택합니다.
- 원하는 이름.reg 형식으로 저장합니다.
- 해당 파일을 관리자 권한으로 실행하고 레지스트리 변경 사항을 수락/확인합니다.
- PC를 재시작합니다.
방법 4: 레지스트리 설정 변경
레지스트리의 일부 설정을 조정하면 시스템 성능을 개선할 수 있습니다. 레지스트리 구성을 변경하는 방법은 다음과 같습니다.
- Windows 키 + R 키를 동시에 누릅니다.
- regedit을 입력하고 Enter 키를 누릅니다.

- 다음 경로로 이동합니다.
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Session Manager > Memory Management
- 우측 창에서 'ClearPageFileAtShutdown' 레지스트리 값을 더블클릭합니다.

- 값 데이터를 1로 변경하고 확인을 클릭합니다.

- 컴퓨터를 재시작한 후 문제가 지속되는지 확인합니다.
안티멀웨어와 안티스파이웨어 프로그램은 항상 최신 버전으로 유지하고, 장치 드라이버 업데이트도 주기적으로 확인하세요. 장치 제조사들은 문제 해결과 기능 개선을 위해 드라이버를 지속적으로 업데이트하고 있습니다. 위 방법들로도 해결되지 않는다면 '시스템 및 압축 메모리(system and compressed memory)' 관련 해결 방법을 추가로 시도해 보는 것도 좋습니다.