Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Tính năng Memory Compression trong Windows 10 và 11 dùng để tối ưu hóa việc sử dụng RAM vật lý bằng cách nén một số trang trong RAM. Bằng cách dùng nén bộ nhớ tiến trình, bạn có thể giữ nhiều tiến trình hơn trong bộ nhớ vật lý mà không cần phân trang chúng ra đĩa. Dữ liệu cần thiết được truy xuất từ RAM nhanh hơn, dù tài nguyên CPU thêm được dùng cho nén/giải nén. Với nén bộ nhớ, bạn có thể giảm sử dụng RAM, tải đĩa cứng bằng cách giảm lượng hoạt động I/O, và tiết kiệm tài nguyên SSD.

Microsoft lần đầu giới thiệu nén bộ nhớ bởi Memory Manager (MM) process trong Windows 10 và Windows Server 2016. Trong bài này, chúng ta xem cách xem thống kê sử dụng bộ nhớ nén trong Windows, cách bật/tắt nén RAM (nếu máy tính chậm do tải cao của tiến trình Memory Compression).

Bộ nhớ nén trong Windows 10 và 11

Nếu Windows Memory Manager phát hiện bộ nhớ thấp, nó cố nén các trang bộ nhớ không dùng thay vì ghi chúng vào file phân trang trên đĩa để giải phóng RAM cho tiến trình khác.

Ban đầu, tiến trình System and compressed memory nằm bên trong tiến trình System, không quá tiện cho troubleshooting. Trong các bản Windows hiện đại (Win 10 20H2 và Windows 11), chức năng này tách thành tiến trình Memory Compression riêng, ẩn khỏi Task Manager. Bạn có thể lấy thông tin tiến trình này dùng cmdlet Get-Process PowerShell:

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
Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Bạn chỉ có thể xem mức sử dụng bộ nhớ nén hiện tại trong Windows Task Manager.

Đến tab Performance chọn mục Memory. Giá trị hiện tại của penggunaan bộ nhớ nén hiển thị trong tham số In use (Compressed). Trong ví dụ của tôi, 4.5 GB được dùng, trong đó 373 MB là nén. Để hiểu lượng bộ nhớ ban đầu được nén, di chuột qua biểu đồ Memory composition:

In use compressed (373 MB). Compressed memory stores an estimated 1549 MB of data, saving the system 1176 MB of memory.

Như bạn thấy, mức nén bộ nhớ đạt gần 315%, nên tiết kiệm RAM khá lớn.

Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Cũng có thể xem sử dụng CPU thực tế và dung lượng bộ nhớ dùng bởi tiến trình Memory Compression trong Windows 11/10 dùng Process Explorer.

Chạy Process Explorer và tìm tiến trình Memory Compression trong cây tiến trình System.

Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Tiến trình Memory Compression được phục vụ bởi dịch vụ SysMain (trước đây SuperFetch). SysMain giảm ghi đĩa (paging) bằng cách nén và hợp nhất trang bộ nhớ. Nếu dịch vụ này dừng, Windows không dùng nén RAM.

Bạn có thể kiểm tra trạng thái dịch vụ SysMain dùng PowerShell:

get-service sysmain
Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Trong hầu hết trường hợp, nếu máy tính hoạt động bình thường và có đủ RAM, tiến trình nén bộ nhớ hoạt động tốt và không cần can thiệp của quản trị viên.

Tiến trình System and Compressed Memory sử dụng CPU và RAM cao

Dịch vụ SysMain và tiến trình Memory Compression dùng để cải thiện hiệu suất máy tính. Nhưng đôi khi tiến trình nén bộ nhớ bắt đầu tải nặng CPU hoặc ổ cứng máy tính (lên 100%, thấy trong Task Manager), hoặc chiếm quá nhiều tài nguyên RAM. Tất nhiên máy tính bắt đầu chậm hoặc treo.

Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Bạn có thể làm gì trong trường hợp này?

Tôi đưa ra vài mẹo giúp khắc phục vấn đề tải tài nguyên PC cao bởi tiến trình Compressed Memory:

  • Thử tạm tắt file phân trang trên máy tính (No paging file option), khởi động lại máy tính, bật file phân trang (Automatically manage paging file size for all drives option), và reboot lại;
  • Nếu vấn đề tải cao bởi tiến trình Compressed memory chỉ xảy ra sau khi thức dậy từ chế độ Sleep hoặc Hibernate (và biến mất sau restart), thử tải và cài driver mới nhất cho storage controller (ACPI/AHCI/RAID/SCSI), ổ cứng và card màn hình từ trang web chính thức. Sau đó, khuyến khích tắt cập nhật driver tự động. Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Nếu các hành động này không giúp, bạn có thể thử ngăn hoàn toàn Windows dùng bộ nhớ nén.

Cách tắt Memory Compression trong Windows 10 và 11?

Nếu muốn chắc chắn Windows 10 hoạt động ổn định không dùng bộ nhớ nén, bạn có thể tạm tắt tính năng này. Mở PowerShell quyền admin. Kiểm tra nén bộ nhớ có bật:

Get-mmagent
ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : True
OperationAPI : True
PageCombining : True

Tham số MemoryCompression: True cho thấy nén bộ nhớ đang bật.

Tắt nén bộ nhớ trong Windows:

Disable-MMAgent –MemoryCompression

Và khởi động lại máy tính:

Restart-Computer
Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Kiểm tra xem hiệu suất hệ thống tổng thể có thay đổi sau khi tắt nén bộ nhớ không. Nếu hiệu suất cải thiện, bạn có thể để Windows 10 với nén bộ nhớ tắt.

Trong một số trường hợp, người dùng được khuyến khích khắc phục vấn đề với bộ nhớ nén bằng các hành động sau:

  1. Tắt dịch vụ SysMain (trước SuperFetch) (services.msc → SysMain → Startup type: Disabled). Điều này tắt tiến trình tối ưu bộ nhớ Windows 10/11 trong Memory Manager;
  2. Tắt task chẩn đoán bộ nhớ đầy đủ RunFullMemoryDiagnostic trong Task Scheduler (Task Scheduler → Task Scheduler library → Microsoft → Windows → MemoryDiagnostic → RunFullMemoryDiagnostic (Detects and mitigates problems in physical memory – RAM) → Disable;Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11
  3. Thử tắt driver giám sát hoạt động mạng (Network Data Usage, NDU) (mô tả trong bài về non-paged memory pool trong Windows);
  4. Tắt bảo vệ real-time trong antivirus. Có thể nó không hoạt động đúng với bộ nhớ nén;
  5. Kiểm tra file hệ thống Windows image dùng DISM và SFC.

Những mẹo này có thể giúp bạn loại bỏ tải cao của máy tính bởi tiến trình Compressed Memory. Tuy nhiên, việc này tắt các tính năng tối ưu hiệu suất Windows nền tảng, có thể ảnh hưởng xấu đến hiệu suất tổng thể thiết bị.

Cách bật Memory Compression trên Windows Server 2016/2019/2022 hoặc Windows 10?

Nén bộ nhớ bị tắt mặc định trong tất cả phiên bản Windows Server.

Chạy lệnh Get-mmagent để xác minh nén bộ nhớ bị tắt. Trong ảnh chụp dưới, chúng ta thấy trong Windows Server 2022 giá trị Memory Compression = False.

Tiến trình Memory Compression: Sử dụng bộ nhớ và CPU cao trong Windows 10 và 11

Để Windows dùng nén bộ nhớ, các điều kiện sau phải thỏa mãn:

  • File phân trang phải được bật (ít nhất kích thước tối thiểu 16 Mb);
  • Dịch vụ SysMain phải đang chạy;
  • Bạn dùng Windows 10/11 hoặc Windows Server 2016+.

Để bật nén bộ nhớ trong Windows, chạy lệnh PowerShell:

Enable-MMAgent -MemoryCompression 

Khởi động lại máy tính.

Bật nén bộ nhớ tự động bật tính năng SysMain khác, Page Aggregation. Hàm memory manager này dùng để gộp các trang bộ nhớ có nội dung giống nhau (một loại deduplication RAM).

Về cơ bản, tính năng Memory Compression trong Windows 10 và 11 hoạt động khá hiệu quả và không cần can thiệp. Nếu nén bộ nhớ gây vấn đề trên máy tính của bạn, có thể bạn gặp vấn đề về cài đặt hệ thống, phần cứng, hoặc driver. Nếu cần, nén bộ nhớ có thể tắt hoàn toàn.