Windows 10, 'Hệ thống' xử lý chiếm số lượng lớn RAM


83

Kể từ khi tôi nâng cấp lên Windows 10, hệ thống của tôi đã tiêu thụ RAM quá mức

nhập mô tả hình ảnh ở đây

Tôi đã đọc một chút và xác định có khả năng trình điều khiển bị rò rỉ bộ nhớ. Vì vậy, tôi đã có cho mình Windows Driver Kit và theo dõi việc sử dụng bộ nhớ với poolmon:

nhập mô tả hình ảnh ở đây

Tuy nhiên, tôi không thực sự biết cách tiến hành từ đây. Là mục được gắn thẻ "smNp" thủ phạm trong vấn đề này? Làm thế nào để tôi đi từ đó để thực sự xác định trình điều khiển?

Tôi đã thử một số thứ như "C: \ Windows \ System32 \ driver> findstr / s smnp . " Nhưng nó không trả lại kết quả. Tôi cũng đã xem tệp pooltag.txt và đây là mô tả tôi tìm thấy cho nó:

nhập mô tả hình ảnh ở đây

Vì vậy, yeah, bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn trước.


1
ok, tôi đã thêm thông tin có thể tìm thấy. Kiểm tra chúng
magicandre1981

1
Đây là một tính năng của hệ thống để thực sự giữ nhiều thứ hơn trong RAM bằng cách sử dụng nén thay vì phân trang vào đĩa. @ magicandre1981 có thông tin đúng ở đây cần được chấp nhận là câu trả lời đúng.
Mani Gandham

14 megabyte mà poolmon hiển thị được liên kết với thẻ smNp là một số tiền hoàn toàn không đáng kể. Bạn đang lo lắng về 1,3 GB trong bộ làm việc riêng của quy trình Hệ thống - tại sao lại tập trung vào 14 MB nhóm không được phân nhóm (hoàn toàn không có trong bộ làm việc của quy trình)?
Jamie Hanrahan

Câu trả lời:


13

Bằng cách đi vào services.msc(thông qua Win+R) và vô hiệu hóa Superfetch hoàn toàn giải quyết điều này. Tôi không chắc bây giờ Superfetch có bị hỏng hay không "theo thiết kế".

Ngoài ra, rõ ràng việc loại bỏ tệp hoán trang sẽ có tác dụng tương tự nhưng giải pháp trên là đặt cược an toàn hơn .


1
Điều này thực sự đã làm việc. Việc sử dụng bộ nhớ cho Hệ thống trở lại ~ 0,1 MB ngay cả sau nhiều giờ sử dụng. Cảm ơn!
Nayncore

26
Mặc dù việc sử dụng bộ nhớ cao như vậy thường là cờ đỏ cho rò rỉ bộ nhớ, nhưng bộ nhớ này đang được sử dụng hợp pháp như một TÍNH NĂNG của Windows 10 (xem câu trả lời của Magicandre bên dưới).
Bigbio2002

7
nó không phải là một lỗi và không nên bị vô hiệu hóa
phuclv


6
Nếu tính năng gây ra cảnh báo bộ nhớ thấp liên tục thì đó không phải là tính năng tốt. Bây giờ Surface Pro của tôi với RAM 4GB hoàn toàn không thể sử dụng để phát triển và ngay cả trên máy tính xách tay có RAM 8GB, tôi liên tục nhận được những cảnh báo đó. Thumb up cho giải pháp!
Oleg I.

94

Tôi đã xem xét dấu vết xperf của một số người dùng và ở đây chức năng ntoskrnl.exe!SmKmStoreHelperWorkercủa Kernel bắt đầu phân bổ bộ nhớ.

Ảnh chụp màn hình
(Bấm vào hình để phóng to)

Tôi phát hiện ra điều này trên sysiternals .

Tôi đã hỏi Microsoft về nó và câu trả lời là đây là do thiết kế. Nó liên quan đến nén bộ nhớ hệ thống.

Trong thông báo của Windows 10 Build 10525, Microsoft đã giải thích một chút :

Trong Windows 10, chúng tôi đã thêm một khái niệm mới trong Trình quản lý bộ nhớ được gọi là kho lưu trữ nén, đây là một bộ sưu tập các trang nén trong bộ nhớ. Điều này có nghĩa là khi Trình quản lý bộ nhớ cảm thấy áp lực bộ nhớ, nó sẽ nén các trang không sử dụng thay vì ghi chúng vào đĩa. Điều này giúp giảm lượng bộ nhớ được sử dụng cho mỗi quá trình, cho phép Windows 10 duy trì nhiều ứng dụng hơn trong bộ nhớ vật lý tại một thời điểm. Điều này cũng giúp cung cấp khả năng phản hồi tốt hơn trên Windows 10. Cửa hàng nén nằm trong bộ làm việc của quy trình Hệ thống.Vì quy trình hệ thống giữ cửa hàng trong bộ nhớ, nên bộ làm việc của nó phát triển lớn hơn chính xác khi bộ nhớ được cung cấp cho các quy trình khác. Điều này hiển thị trong Trình quản lý tác vụ và lý do quy trình Hệ thống dường như tiêu tốn nhiều bộ nhớ hơn các bản phát hành trước.

Vì vậy, thay vì ghi dữ liệu bộ nhớ vào trang, nó sẽ nén chúng. Và bộ nhớ nén này được hiển thị trong quy trình Hệ thống.

Microsoft cũng đăng thêm chi tiết trong trung tâm bên trong. Winbeta đã tạo ra một bài viết bao gồm nhiều chi tiết hơn.

Rõ ràng, lý do cho điều này đã xảy ra với việc Microsoft chọn tạm dừng các ứng dụng UWP khi chúng không ở phía trước, rất giống với một số quản lý hệ điều hành điện thoại thông minh. Người dùng Windows 8 hiểu (có lẽ là không) rằng nếu các ứng dụng không có trên màn hình, chúng sẽ không chạy cho đến khi người dùng quay lại với chúng. Phương pháp 'tất cả hoặc không có gì' đang được cập nhật với Windows 10 giới thiệu một lớp giữa hoạt động phân trang và hoạt động phân trang thông thường. Bây giờ, khi gặp vấn đề về áp suất bộ nhớ, MM sẽ xác định trang nào sẽ được chuyển đến danh sách đã sửa đổi trong một quy trình gọi là cắt xén.Danh sách đã sửa đổi là danh sách thứ cấp của các tệp trang sao lưu danh sách các tệp trang dự phòng. Một danh sách sao lưu được ghi lại trong trường hợp bộ nhớ được lấy lại từ danh sách chờ bởi một quy trình khác và quy trình ban đầu sẽ tìm trang của nó. Thay vì tất cả hoặc không có gì, Windows 10 MM sẽ nén các trang không sử dụng thay vì ghi chúng vào đĩa. Với ít ghi hơn, kết quả sẽ có ít thao tác đĩa hơn - nhờ vào việc nén - và bây giờ có thể lưu trữ nhiều dữ liệu hơn trong bộ nhớ.

nhập mô tả hình ảnh ở đây

Theo nhóm Windows, thực tế, bộ nhớ nén chiếm khoảng 40% kích thước không nén và do một thiết bị thông thường chạy một khối lượng công việc thông thường, Windows 10 ghi các trang ra đĩa chỉ 50% so với các phiên bản trước HĐH. Nếu tất cả đều theo kế hoạch, người dùng Windows có thể giảm thời gian chờ đợi cho tất cả các thiết bị cũng như tuổi thọ kéo dài trên các hệ thống có ổ cứng dựa trên flash .

Giải nén cũng là thứ Windows 10 được thiết kế để làm tốt. Windows 10 đang sử dụng kết hợp tính song song và đọc tuần tự để tạo các trang vào bộ nhớ một khi được gọi. Việc giải nén mới sẽ mang lại trải nghiệm nhanh hơn vì Windows 10 đồng thời giải nén dữ liệu và đọc song song bằng nhiều CPU. Các phiên bản Windows cũ hơn có thể đã cảm thấy chậm chạp vì tốc độ truyền giữa các đĩa.

Microsoft cũng đã phát hành một Video trên channel9 giải thích tính năng này.

Nén bộ nhớ trong Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

Trong video này Mehmet Iyigun đã dành một chút thời gian để thảo luận về lý do tại sao quá trình Hệ thống trong Windows 10 lại chiếm thêm một chút bộ nhớ và tại sao đó lại là một điều tốt. Một quá trình chiếm nhiều bộ nhớ nghe có vẻ là một điều tồi tệ - đó là cho đến khi tôi hiểu thêm về quản lý bộ nhớ, phân trang và lỗi trang cứng / mềm. Hóa ra rằng HĐH đang thực hiện một số tối ưu hóa thông minh cho phép các tiến trình của bạn cắt bớt một số bộ nhớ nhưng không nhất thiết phải đưa nó ra đĩa. Bộ nhớ không chỉ được bảo quản trong RAM mà còn bị nén - khiến lỗi trang cứng trở nên hiếm gặp hơn. Các kết quả sẽ làm cho một trải nghiệm snappier.

Trong Bản dựng TH2 mới nhất, Microsoft đã cập nhật mô tả trong trình quản lý tác vụ và giờ đây cũng cho thấy quy trình HỆ THỐNG lưu trữ compressed memory:

nhập mô tả hình ảnh ở đây

để tránh nhầm lẫn về việc sử dụng "cao".

Trong Bản cập nhật kỷ niệm 10 năm được phát hành vào tháng 8 năm 2016, Microsoft đã trích xuất Nén thành hiện được hiển thị trong một quy trình giả được gọi Memory Compressionđể không còn gây nhầm lẫn cho người dùng tại sao HỆ THỐNG có mức sử dụng bộ nhớ lớn như vậy:

nhập mô tả hình ảnh ở đây

Nhưng có vẻ như TASkmgr không hiển thị quá trình này, chỉ ProcessExplorer / ProcessHacker mới có thể hiển thị nó. TASkmgr chỉ hiển thị lượng bộ nhớ nén trong tổng quan:

nhập mô tả hình ảnh ở đây

Nếu bạn di chuột qua biểu đồ bộ nhớ đã sử dụng trong TASkmgr, bạn sẽ thấy một chú giải công cụ hiển thị dữ liệu bị nén.

nhập mô tả hình ảnh ở đây

Trong bản demo này, 388MB được nén thành 122 MB, do đó, 267 MB được lưu với nén.


9
@Zaibis: Tôi nghĩ ý tưởng là bạn không "giảm 1GB". 1GB đã được Windows dành riêng và sẽ được sử dụng để phân bổ. Bạn đã không bị mất bộ nhớ.
Các cuộc đua nhẹ nhàng trong quỹ đạo

12
"Bộ nhớ không sử dụng bị lãng phí bộ nhớ" từ lâu đã trở thành câu thần chú của OS X. Có vẻ như Windows cũng đã được đưa lên máy bay.
lừa dối

1
@ magicandre1981 Ý của bạn là gìSystem Memory compression
user2284570 7/8/2015

2
Tôi không thể trả lời chi tiết này. Tôi chỉ nhận được thông tin rằng đó là do thiết kế, có liên quan đến việc nén bộ nhớ và điều này sẽ được giải thích bởi một blogpost. Khi tôi nhận được thông tin mới, tôi sẽ cập nhật bài viết của mình.
magicandre1981

2
@JosiahKeller Hộp thoại "bộ nhớ thấp" là về bộ nhớ ảo thấp. Nó hầu như không liên quan gì đến việc sử dụng hoặc có sẵn bộ nhớ vật lý (RAM). Chúng được hạch toán riêng bởi tất cả các hệ điều hành máy tính để bàn hiện đại.
David Schwartz

0

Tôi đã tìm thấy một trường hợp ngoại lệ gây ra việc sử dụng bộ nhớ hệ thống cao và muốn đưa nó vào trong trường hợp thông tin này mang lại lợi ích cho bất kỳ ai.

Nếu bạn sử dụng nhiều Ảnh chụp nhanh Khối lượng của Microsoft (ảnh chụp nhanh phần mềm, không phải ảnh chụp nhanh phần cứng), thì càng nhiều ảnh chụp nhanh bạn kết hợp với thay đổi dữ liệu lớn , thì Hệ thống sẽ tiêu tốn nhiều RAM hơn.

Thông thường, dung lượng RAM được sử dụng cho Ảnh chụp nhanh Khối lượng nhỏ và sẽ không được chú ý, trừ khi bạn có một khối lượng khổng lồ (ví dụ 64 TB) với các vùng đồng bằng nhiều terabyte giữa các ảnh chụp nhanh. Theo mặc định, ảnh chụp nhanh sẽ tự xóa nếu viết IO quá cao, nhưng có nhiều cách để ngăn chặn điều đó, cho phép bạn đạt được các đồng bằng lớn.

Dưới đây là một trường hợp cực đoan cho thấy quá trình Hệ thống của máy chủ sử dụng 13GB RAM. Máy chủ này chỉ có hai Ảnh chụp nhanh Khối lượng, cách nhau 15 ngày, với khoảng 10 TB dữ liệu được ghi ở giữa mỗi ảnh chụp nhanh.

Sử dụng bộ nhớ hệ thống ở mức 13GB

Quá trình hệ thống ở trên trước đây là 24GB sử dụng và ba hành vi sau đây đã được tuân thủ:

  1. Sau khi khởi động lại và đăng nhập lại, hệ thống sẽ treo trong một khoảng thời gian ở màn hình trống cho đến khi màn hình nền xuất hiện.
  2. Trong thời gian treo này, kéo lên Trình quản lý tác vụ (CTRL-SHIFT-ESC) cho thấy mức độ sử dụng bộ nhớ hệ thống ngày càng tăng.
  3. Trong quá trình treo này, đĩa có Ảnh chụp nhanh Khối lượng đã thực hiện rất nhiều lần đọc không hiển thị trong Trình theo dõi hiệu suất. Mặc dù, vì đĩa sử dụng iSCSI, card mạng cho thấy luồng đọc ổn định khoảng 200 Mbps.

Tôi nghi ngờ Ảnh chụp nhanh Khối lượng, vì vậy tôi đã cố gắng xóa ảnh chụp nhanh nhất cũ nhất ngay lập tức giảm mức sử dụng bộ nhớ của Hệ thống từ 24 GB xuống còn 13 GB.

Trong những trường hợp này, đây có thể là hành vi bình thường, mặc dù tôi chưa xác nhận điều này với Microsoft. Trong thời gian chờ đợi, tôi sẽ bổ sung thêm 32 GB RAM cho máy chủ này để xử lý chi phí Snapshot.

(Lưu ý: đây là máy chủ sao lưu dung lượng lớn chạy Windows 2016 với ổ iSCSI SSD 64 TB được đính kèm. Nó duy trì trung bình ba ảnh chụp nhanh âm lượng tại bất kỳ thời điểm nào, với một máy mới được tạo sau mỗi 15 ngày. Có khoảng 10 TB dữ liệu được viết ở giữa mỗi ảnh chụp nhanh).


-1

Vô hiệu hóa trình tải trước trong khóa regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParametersbạn có thể có Enable Prefetchergiá trị bằng 2hoặc 3thay đổi nó thành0

Tiếp theo bạn cần vô hiệu hóa Superfetchtrong các dịch vụ

  1. Tìm kiếm dịch vụ.msc

  2. Tìm superfetchnhấp chuột propertiessau đó đặt nó disabledvà dừng dịch vụ là tốt.

Tôi làm các bước này và khi tôi chơi game và bình thường sử dụng PC và systemquá trình chỉ sử dụng 28k


12
Đây là một ý tưởng khủng khiếp. Prefetch / superfetch được sử dụng cho một lý do. Nếu bạn nghĩ rằng bạn có thể quản lý bộ nhớ tốt hơn hệ điều hành của mình, thì bạn đã nhầm.
b1nary.atr0phy

Vô hiệu hóa tính năng tìm nạp trước (hoặc "dọn dẹp thư mục tìm nạp trước") thực sự là một ý tưởng rất ngớ ngẩn. Prefetch không khiến hệ thống sử dụng thêm RAM. Nó tăng tốc độ tải exe và dll sau khi bạn khởi động chúng , và chỉ sau đó. Re SuperFetch, Microsoft không tắt SuperFetch theo mặc định trên các hệ thống có ổ SSD cho ổ đĩa Windows; họ cảm thấy lợi ích không đáng Cá nhân tôi giữ cho nó được kích hoạt bởi vì tôi có các ổ đĩa khác, không phải SSD, mà tôi muốn SF vẫn hoạt động.
Jamie Hanrahan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.