Vấn đề này thường xuất hiện ngẫu nhiên nhưng cũng có thể xảy ra sau khi cài đặt cập nhật cho .NET Framework. Tiến trình có file thực thi là mscorsvw.exe và sẽ hiển thị trong Task Manager dưới tên đó hoặc là .NET Runtime Optimization Service. Dịch vụ này không chạy thường xuyên và nó chạy để tối ưu hóa .NET Framework, từ đó giúp các ứng dụng và chương trình phụ thuộc vào nó chạy nhanh hơn.

Tuy nhiên, quá trình tối ưu hóa này đôi khi kéo dài quá nhiều và người dùng báo cáo nó tiêu tốn tỷ lệ lớn tài nguyên CPU mỗi khi chạy. Nó cũng có thể kéo dài vài ngày. Hãy làm theo các phương pháp chúng tôi chuẩn bị dưới đây để cố gắng giải quyết vấn đề này.
Nguyên nhân gây CPU cao cho .NET Runtime Optimization Service?
Câu trả lời chính thức là tiến trình cần biên dịch lại thư viện và chỉ nên chạy khi máy tính rảnh. Microsoft cũng khẳng định tiến trình không nên mất quá vài phút. Tuy nhiên, thực tế không phải vậy và nhiều người thấy mình chờ đợi hơn một tuần không có tiến triển. Dưới đây là một số nguyên nhân:
- Nó chung chạy chậm và bạn có thể thử tăng tốc bằng cách chạy một số lệnh nhất định.
- Có thể có mã độc chạy trên máy tính đang ngụy trang thành dịch vụ này hoặc dịch vụ đã bị nhiễm. Hãy thử quét mã độc. Trong một số trường hợp, nếu có mã độc, dịch vụ AntiMalware cũng có thể tiêu tốn tài nguyên cao.
- Dịch vụ có thể đã bị hỏng và bạn nên thử khởi động lại nó.
Sửa file hệ thống hỏng
Tải và chạy Restoro để quét và khôi phục file hỏng, thiếu từ đây. Sau khi xong, tiếp tục với các giải pháp dưới đây.
Giải pháp 1: Tối ưu hóa tiến trình
Không khuyến khích dừng tiến trình này ngay lập tức vì nó thực sự giúp máy tính và cách ứng dụng/game chạy. Tuy nhiên, có nhiều cách để tăng tốc tiến trình bằng cách chạy lệnh hữu ích này hoặc chạy script để có hiệu quả tương tự. Điều này sẽ cho phép tiến trình sử dụng nhiều nhân CPU hơn, giúp nó hoàn thành nhanh hơn. Xem dưới đây!
- Tìm "Command Prompt" (Dòng lệnh) trong menu Start hoặc nhấn nút tìm kiếm bên cạnh. Chuột phải vào kết quả đầu tiên và chọn "Run as administrator" (Chạy với tư cách quản trị viên).

- Người dùng phiên bản Windows cũ hơn có thể dùng tổ hợp Windows Logo + R để mở hộp thoại Run. Gõ "cmd" vào hộp và dùng tổ hợp Ctrl + Shift + Enter để chạy Command Prompt với quyền admin.
- Sao chép và dán các lệnh dưới đây, nhấn phím Enter sau mỗi lệnh. Trong hai lệnh đầu tiên, chọn lệnh phù hợp với hệ điều hành của bạn (32-bit cho lệnh đầu, 64-bit cho lệnh thứ hai).
cd c:\Windows\Microsoft.NET\Framework\v4.0.30319 cd c:\Windows\Microsoft.NET\Framework64\v4.0.30319 ngen.exe executequeueditems
- Kiểm tra xem mức sử dụng CPU của .NET Runtime Optimization Service đã trở về bình thường chưa!
Phương án thay thế: Nếu bạn không thoải mái tự chạy lệnh hoặc dùng phiên bản Windows cũ, bạn có thể dùng script chính thức của Microsoft để làm điều tương tự.
- Truy cập link này để mở trang GitHub của script. Cuộn xuống phần code, chuột phải nút Raw và chọn Save link as… Đảm bảo loại file là Windows Script File (*.wsf).

- Tìm file vừa lưu và double-click để chạy. Nếu được hỏi chọn chương trình chạy, chọn Windows Script Host.
- Kiểm tra xem vấn đề đã được giải quyết chưa.
Giải pháp 2: Quét mã độc trên máy tính
Dù nghe có vẻ quá mức, nhiễm mã độc là một trong những nguyên nhân hàng đầu gây ra vấn đề này và việc kiểm tra máy tính là cực kỳ quan trọng. Chương trình độc hại muốn chiếm tài nguyên và thường đặt tên tiến trình giống với file hệ thống.
Ở đây, chúng tôi sẽ hướng dẫn quét máy với Malwarebytes vì thường cho kết quả tốt nhất nhờ cơ sở dữ liệu lớn. Chúc may mắn!
- Malwarebytes Anti-Malware là công cụ chống mã độc tuyệt vời với phiên bản miễn phí bạn có thể tải từ trang web chính thức. Hy vọng bạn không cần bộ full sau khi giải quyết xong (trừ khi muốn mua để sẵn sàng cho vấn đề khác) nên hãy tải bản dùng thử bằng cách nhấn vào đây.

- Tìm file thực thi vừa tải trong thư mục Downloads trên máy và double-click để mở.
- Chọn vị trí cài Malwarebytes và làm theo hướng dẫn cài đặt xuất hiện trên màn hình để hoàn tất.

- Mở Malwarebytes từ menu Start hoặc Desktop và chọn tùy chọn Scan (Quét) ở màn hình chính của ứng dụng.
- Công cụ có thể chạy quy trình cập nhật cơ sở dữ liệu virus rồi tiến hành quét. Hãy kiên nhẫn chờ hoàn tất. Nếu phát hiện mã độc, xác nhận để xóa hoặc cách ly.

- Khởi động lại máy tính sau khi quét xong và kiểm tra xem bạn còn gặp vấn đề với .NET Runtime Optimization Service không!
Lưu ý: Bạn cũng nên dùng các công cụ quét bảo mật khác nếu biết loại mã độc trên máy (ransomware, junkware, v.v.). Ngoài ra, một scanner đơn lẻ sẽ không bao giờ nhận diện và xóa hết mọi loại mã độc nên chúng tôi khuyên bạn nên thử các công cụ khác!
Giải pháp 3: Khởi động lại dịch vụ
Khởi động lại dịch vụ sẽ khởi động lại toàn bộ tiến trình nhưng nó nên hoàn thành nhanh hơn lần này, đặc biệt nếu lỗi (bug) khiến nó hoạt động sai. Xem dưới đây.
- Mở tiện ích Run bằng tổ hợp Windows + R. Gõ "services.msc" vào hộp mới mở không cần dấu ngoặc kép và nhấn OK để mở công cụ Services.

- Tìm dịch vụ NVIDIA Telemetry Container trong danh sách, chuột phải và chọn Properties từ menu ngữ cảnh.
- Nếu dịch vụ đang chạy (kiểm tra bên cạnh dòng Service status), bạn nên dừng nó bằng nút Stop ở giữa cửa sổ. Sau đó chạy lại bằng nút Start.

- Đảm bảo tùy chọn dưới menu Startup type (Loại khởi động) trong cửa sổ thuộc tính dịch vụ được đặt là Automatic (Tự động) trước khi tiếp tục. Xác nhận các hộp thoại có thể xuất hiện khi thay đổi loại khởi động.
Bạn có thể nhận thông báo lỗi sau khi nhấn Start:
"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."
Nếu xảy ra, làm theo hướng dẫn dưới để khắc phục.
- Làm theo bước 1-3 ở trên để mở cửa sổ thuộc tính dịch vụ. Chuyển đến tab Log On (Đăng nhập) và nhấn nút Browse… (Duyệt...).

- Trong ô nhập "Enter the object name to select", gõ tên tài khoản của bạn, nhấn Check Names (Kiểm tra tên) và chờ tên khả dụng.
- Nhấn OK khi xong và nhập mật khẩu trong ô Password nếu được yêu cầu. Bây giờ nó nên khởi động không vấn đề!
Giải pháp 4: Thực hiện Clean Boot (Khởi động sạch)
Trong một số trường hợp, ứng dụng thứ ba có thể gây CPU cao do yêu cầu tối ưu hóa. Do đó, ở bước này, chúng ta sẽ thực hiện clean boot để kiểm tra xem có ảnh hưởng của ứng dụng thứ ba đến dịch vụ hay không. Làm theo hướng dẫn clean boot của chúng tôi để khởi động clean boot và kiểm tra xem CPU usage có cao như trước không. Nếu không cao, có nghĩa là có ứng dụng thứ ba gây ra vấn đề. Bây giờ bạn có thể dễ dàng tìm ra thủ phạm bằng cách bật từng ứng dụng một.