디지털 가든

흑막 의운: 재부팅 없는 한 번의 구조

2026-10-12 · 약 8분 · 장애 진단 · DWM · NVIDIA · Windows · 메모리

컴퓨터가 잠깐 멈춘 뒤, 두 대의 디스플레이 가운데 보조 화면만 볼 수 있고 주 화면은 커튼이 내린 듯했다——작업 표시줄은 있지만 나머지는 모두 검다. 프로그램은 모두 살아 있고, 단지 전부 최소화돼 있었을 뿐이다. 이것은 SF의 도입부가 아니라, 진짜 시스템 이벤트이다.

1. 메모리의 한계 돌파와 DWM의 졸사

첫 라운드 읽기 전용 진단은 금세 타임라인을 고정했다. 21시 46분 39초, Windows가 ‘가상 메모리 부족’ 진단을 발동(이벤트 ID 2004)——당시 메모리를 가장 많이 먹은 것은 java.exe 육점팔 기가바이트, gakumas.exe 사점육 기가바이트, python.exe 삼점구 기가바이트. 실측 시 물리 메모리 삼십이 기가바이트의 여유는 고작 영점삼이 기가바이트, 커밋 메모리는 오십점오/오십일점삼 기가바이트로 이미 한계 돌파. 21시 47분 7초, dwm.exe(데스크톱 창 관리자)가 붕괴, 고장 모듈 dwmcore.dll, 예외 코드 0xC00001AD = STATUS_COMMITMENT_LIMIT——字面 의미는 ‘커밋 한계에 도달했다’.

그래픽 카드가 고장 난 것이 아니다——디스플레이 드라이버 TDR 이벤트(4101)가 전혀 없고, RTX 5090 드라이버 상태는 정상. 검게 된 것은 주 화면(Redmi 27인치, 2560×1440@164Hz)이고, 보조 화면(Dell S2719DGF)은 멀쩡하다. 21시 47분 21초, DWM이 자동 재시작했지만 주 화면의 화면 합성은 회복되지 않았다——‘작업 표시줄은 남는다(작업 표시줄은 탐색기가 그린다), 나머지는 모두 검다’는 전형적 증상이다.

2. 표준 요법의 실패

표준 대본에 따르면, Win+Ctrl+Shift+B(그래픽 카드 드라이버를 재시작하고 강제 재합성)은 대증약이다. 그것이 통하지 않았다. 이에 2막이 펼쳐졌다——WindowFromPoint로 검은 화면 영역의 창 소속을 점마다 샘플링하고, 주 화면 관련 창의 겹침 순서를 끌어냈다——주 화면의 모든 샘플링 점은 Discord의 창에 귀속하고, Chrome은 스스로를 검게 렌더링하고 있었다; 그러나 z-order에는 아직 한 마리 용의자가 버티고 있었다——NVIDIA GeForce Overlay DT(CEF 플로팅 창, 최전면, 주 화면을 가득 메우고, 붕괴 뒤 비정상적인 ‘가시’ 상태).

3막은 네 장의 스크린샷의 심판이었다——NVIDIA GeForce Overlay DT를 숨기자마자, Chrome이 즉시 완전 렌더링됐다——바로 이것이었다. TextInputHost, ChatGPT를 계속 숨겨도 Chrome은 계속 정상; Chrome까지 숨이면 데스크톱과 cmd 창이 정상 표시됐다.

진범이 나타났다——NVIDIA 그래픽 카드 플로팅 창의 렌더링 창(CEF-OSC-WIDGET). DWM 붕괴 뒤 그것은 비정상적인 ‘가시’ 상태에 있고, 불투명한 순흑을 칠해 주 화면 전체를 가득 메웠다——창 겹침에서 마침 작업 표시줄의 아래 한 층에 위치하므로 작업 표시줄은 늘 보이고 나머지는 모두 이 ‘검은 천’에 덮여 있었다. Chrome, Discord, 페이서는 처음부터 멀쩡했던 것이다. 이것은 Win+Ctrl+Shift+B가 왜 무효했는지에 대한 설명이기도 하다——그것이 재구성하는 것은 그래픽 카드 드라이버이고, 검은 화면은 플로팅 창 자체의 문제이기 때문이다.

3. 근본 치료는 메모리에 있다

수리 완료 뒤, 진범은 비표시로 돌아가고, 잘못 숨긴 ChatGPT와 Chrome 창은 복원됐다. 한 가지 기술을 기록에 남긴다——앞으로 DWM이 다시 붕괴하고 화면이 검어지면, Win+Ctrl+Shift+B 외에 Win+D(데스크톱 표시)를 한 번 더 눌러 전환한다——최소화와 복원이 렌더링 표면의 재구성을 강제한다.

그러나 진단서의 마지막 줄은 미래에 쓰인 것이다——이것은 오래된 병이지 우연이 아니다. 시스템 로그의 ‘가상 메모리 부족’ 경고는 10월 7일부터 지금까지 거의 매일 나오고, 원흉은 대체로 고정——MuMu 에뮬레이터(육점팔칠점오 기가바이트), java 인스턴스(합계 십이 기가바이트), gakumas 게임 본체(사사점육 기가바이트), Blender(육점삼 기가바이트), python, kilo-desktop. 삼십이 기가바이트 물리 메모리에 십구점구 기가바이트 페이지 파일이면 오십일점삼 기가바이트의 커밋 한계이고, 이 대호들에 합쳐 오십 기가바이트까지 눌려진다. 처방——에뮬레이터·게임·Blender·IDE를 동시에 열지 마라; MuMu 설정에서 메모리 상한을 제한; 페이지 파일을 키워 커밋 한계에 여유를 남겨라; 작업 관리자의 ‘커밋됨’을 감시해 한계의 팔십오 퍼센트를 넘으면 폭발의 전조.

실제 좌표

댓글

← 디지털 가든