.NET 런타임 최적화 서비스의 높은 CPU 사용량 문제는 대체로 무작위로 발생하지만, .NET Framework 업데이트가 설치된 직후에 나타나는 경우도 있습니다. 이 프로세스의 실행 파일은 mscorsvw.exe이며, 작업 관리자에서는 해당 파일 이름 또는 '.NET Runtime Optimization Service'라는 이름으로 표시됩니다. 자주 실행되지는 않지만, 이 서비스는 .NET Framework를 최적화하는 역할을 하며, 덕분에 이 프레임워크에 의존하는 앱과 프로그램이 더 빠르게 실행됩니다.

그러나 이 최적화 작업이 때때로 지나치게 오래 걸리는 경우가 있으며, 실행될 때마다 CPU 리소스의 상당 부분을 소모한다는 사용자 보고가 있습니다. 심한 경우 며칠 동안 지속되기도 합니다. 아래에서 준비한 방법들을 차례로 따라 하며 이 문제를 해결해 보세요.
.NET 런타임 최적화 서비스의 높은 CPU 사용량, 원인은 무엇일까?
공식적인 설명에 따르면, 이 프로세스는 라이브러리를 다시 컴파일해야 하며 컴퓨터가 유휴 상태일 때만 실행되어야 한다고 합니다. Microsoft 역시 이 프로세스는 몇 분 안에 완료되어야 한다고 밝히고 있습니다. 하지만 실제로는 그렇지 않아, 일주일 넘게 진행 상황 없이 기다려야 하는 사례도 보고되고 있습니다. 주요 원인은 다음과 같습니다.
- 일반적으로 프로세스가 느리게 실행되는 경우로, 특정 명령어를 실행해 속도를 높일 수 있습니다.
- 컴퓨터에 맬웨어가 실행 중일 가능성이 있습니다. 맬웨어가 이 서비스로 위장했거나 서비스 자체가 감염된 경우입니다. 맬웨어 스캐너를 실행해 확인해 보세요. 경우에 따라 맬웨어가 존재하면 안티멀웨어 서비스 역시 높은 리소스를 소모할 수 있습니다.
- 서비스 자체가 손상되었을 수 있으므로 재시작을 시도해 볼 필요가 있습니다.
손상된 파일 복구
Restoro를 다운로드하여 실행하면 손상되거나 누락된 시스템 파일을 스캔하고 복원할 수 있습니다. 복구를 마친 후 아래의 해결 방법들을 순서대로 진행하세요.
해결 방법 1: 프로세스 최적화
이 프로세스는 앱과 게임의 실행 성능을 개선하는 데 도움을 주므로 즉시 종료하는 것은 권장하지 않습니다. 대신 유용한 명령어를 실행하거나 동일한 효과를 내는 스크립트를 활용해 프로세스 속도를 높일 수 있습니다. 이렇게 하면 프로세스가 더 많은 CPU 코어를 사용할 수 있어 작업을 훨씬 빨리 완료하게 됩니다. 아래 내용을 확인해 보세요!
- 시작 메뉴에서 직접 또는 옆의 검색 버튼을 눌러 "명령 프롬프트"를 검색합니다. 목록 상단에 표시되는 첫 번째 결과를 마우스 오른쪽 버튼으로 클릭하고 "관리자 권한으로 실행" 옵션을 선택합니다.

- 구버전 Windows를 사용하는 경우 Windows 로고 키 + R 키 조합으로 실행 대화 상자를 열 수 있습니다. 입력란에 "cmd"를 입력한 뒤 Ctrl + Shift + Enter 키 조합을 눌러 명령 프롬프트를 관리자 권한으로 실행합니다.
- 아래의 명령어를 복사해 붙여넣고, 각 명령어 입력 후 반드시 키보드의 Enter 키를 누릅니다. 처음 두 개의 명령어 중 운영 체제에 맞는 것을 선택합니다(첫 번째는 32비트, 두 번째는 64비트용).
cd c:\Windows\Microsoft.NET\Framework\v4.0.30319 cd c:\Windows\Microsoft.NET\Framework64\v4.0.30319 ngen.exe executequeueditems
- .NET 런타임 최적화 서비스의 CPU 사용량이 정상 수준으로 돌아왔는지 확인합니다!
대안: 명령어를 직접 입력하기 어렵거나 구버전 Windows를 사용 중이라면, Microsoft에서 공식 배포하는 스크립트를 사용하면 동일한 작업을 수행할 수 있습니다.
- 해당 링크에 접속해 스크립트의 GitHub 페이지를 엽니다. 코드 부분으로 스크롤을 내린 후 Raw 버튼을 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장…을 선택합니다. 이때 파일 형식이 Windows Script File(*.wsf)로 지정되어 있는지 확인합니다.

- 저장한 위치에서 파일을 찾아 두 번 클릭해 실행합니다. 실행할 프로그램을 선택하라는 창이 나타나면 Windows Script Host를 선택합니다.
- 문제가 해결되었는지 확인합니다.
해결 방법 2: 컴퓨터에서 맬웨어 검사
과해 보일 수 있지만, 맬웨어 감염은 이 문제의 주요 원인 중 하나이므로 반드시 컴퓨터에서 맬웨어 검사를 진행해야 합니다. 악성 프로그램은 시스템 리소스를 탈취하려 하며, 보통 컴퓨터에 이미 있는 파일과 비슷한 이름으로 프로세스를 위장합니다.
여기서는 방대한 데이터베이스를 갖추고 있어 좋은 검사 결과를 보여주는 편인 Malwarebytes를 이용해 PC를 검사하는 방법을 소개합니다.
- Malwarebytes Anti-Malware는 훌륭한 안티맬웨어 도구로, 공식 웹사이트에서 무료 버전을 다운로드할 수 있습니다. 이 문제를 해결한 후에는 전체 제품군이 필요 없을 가능성이 높습니다(다른 문제에 대비해 구매하고 싶다면 예외). 여기를 클릭해 평가판을 다운로드하세요.

- PC의 다운로드 폴더에서 방금 내려받은 실행 파일을 찾아 두 번 클릭해 실행합니다.
- Malwarebytes를 설치할 위치를 선택하고, 화면에 표시되는 설치 지침에 따라 설치 과정을 완료합니다.

- 시작 메뉴나 바탕 화면에서 Malwarebytes를 찾아 실행한 뒤, 앱 홈 화면에서 검사(Scan) 옵션을 선택합니다.
- 도구가 먼저 바이러스 데이터베이스를 업데이트한 후 검사를 시작합니다. 시간이 다소 걸릴 수 있으니 검사가 끝날 때까지 기다려 주세요. 맬웨어가 발견되면 삭제 또는 격리를 선택해 처리합니다.

- 검사가 끝나면 컴퓨터를 재시작하고 .NET 런타임 최적화 서비스 관련 문제가 여전히 발생하는지 확인합니다!
참고: 컴퓨터에 감염된 맬웨어의 종류(랜섬웨어, 정크웨어 등)를 알고 있다면 다른 보안 스캐너도 함께 사용하는 것이 좋습니다. 하나의 스캐너만으로는 모든 종류의 맬웨어를 인식하고 제거할 수 없으므로, 여러 도구를 교차로 사용해 보길 권장합니다!
해결 방법 3: 서비스 재시작
서비스를 재시작하면 전체 프로세스도 다시 시작되지만, 특히 버그로 인해 비정상적으로 작동한 경우라면 이번에는 훨씬 빨리 완료될 것입니다. 아래 절차를 확인해 보세요.
- 키보드에서 Windows 키 + R 키를 동시에 눌러 실행 유틸리티를 엽니다. 새로 열린 입력란에 따옴표 없이 "services.msc"를 입력하고 확인을 클릭해 서비스 도구를 실행합니다.

- 목록에서 .NET Runtime Optimization Service(mscorsvw) 서비스를 찾아 마우스 오른쪽 버튼으로 클릭하고, 나타나는 메뉴에서 속성을 선택합니다.
- 서비스가 실행 중이라면(서비스 상태 메시지 옆에서 확인 가능) 창 가운데의 중지 버튼을 클릭해 중지합니다. 이후 시작 버튼을 클릭해 다시 실행합니다.

- 다음 단계로 넘어가기 전에 서비스 속성 창의 시작 유형 옵션이 자동으로 설정되어 있는지 확인합니다. 시작 유형 변경 시 나타나는 대화 상자가 있으면 확인을 눌러 진행합니다.
시작 버튼을 클릭할 때 다음과 같은 오류 메시지가 표시될 수 있습니다.
"Windows could not start the service on Local Computer. Error 1079: The account specified for this service differs from the account specified for other services running in the same process." (로컬 컴퓨터에서 서비스를 시작할 수 없습니다. 오류 1079: 이 서비스에 지정된 계정이 동일한 프로세스에서 실행 중인 다른 서비스에 지정된 계정과 다릅니다.)
이런 경우 아래 지침에 따라 문제를 해결하세요.
- 위 지침의 1~3단계를 다시 수행해 서비스 속성 창을 엽니다. 로그온(Log On) 탭으로 이동한 뒤 찾아보기(Browse)… 버튼을 클릭합니다.

- "선택할 개체 이름을 입력하십시오" 입력란에 본인의 계정 이름을 입력하고 이름 확인(Check Names)을 클릭한 후 이름이 적용될 때까지 기다립니다.
- 완료되면 확인을 클릭하고, 요청 시 암호 입력란에 암호를 입력합니다. 이제 서비스가 문제없이 시작될 것입니다!
해결 방법 4: 클린 부팅 수행
경우에 따라 서드파티 앱이 최적화 작업을 유발해 높은 CPU 사용량의 원인이 되기도 합니다. 따라서 이 단계에서는 클린 부팅을 수행해 서비스에 서드파티 프로그램의 영향이 있는지 확인합니다. 클린 부팅 가이드에 따라 클린 부팅을 진행한 후 CPU 사용량이 이전과 같이 높은지 살펴보세요. 사용량이 정상이라면 서드파티 앱이 문제의 원인이었다는 뜻입니다. 이후 앱을 하나씩 활성화해 가면서 문제를 일으키는 범인을 쉽게 찾아낼 수 있습니다.