Làm cách nào để Windows 7 bớt tích cực hơn trong bộ nhớ đệm?


16

Gần đây tôi đã lưu ý rằng Windows 7 trên máy của tôi đã phàn nàn về việc hết bộ nhớ và tôi nên đóng một số chương trình. Sau đó, nó thường chỉ ra một chương trình tôi đang chạy bị rò rỉ bộ nhớ và đã phát triển khá lớn. Tuy nhiên, thông thường các chương trình này bắt đầu ở mức 20 MB sử dụng RAM và chỉ sau khi chạy chương trình trong khoảng từ 12 đến 24 giờ, chúng mới phát triển tối đa 200 MB sử dụng RAM. Tôi chưa bao giờ có nhiều hơn ba chương trình này chạy cùng một lúc, vì vậy, tối đa 600 MB dung lượng RAM tôi đã từng thấy từ các chương trình đang chạy của mình.

Tôi đang chạy Windows 7 x64 trên máy có 4GB RAM. Lúc đầu, tôi thực sự đã quên điều này và sẽ chỉ khởi động lại các chương trình khi Windows phàn nàn, nhưng bây giờ tôi đã nhớ, thực tế là Windows đang phàn nàn về việc tôi sử dụng 600 MB RAM (dưới 2GB ngay cả khi bạn bao gồm bộ nhớ được sử dụng bởi chính hệ điều hành) . Vì vậy, tôi đã mở cửa sổ quy trình hệ thống để xem xét tổng mức sử dụng bộ nhớ từ các quy trình và quy trình hệ thống được liệt kê. Nó được thêm vào chỉ hơn 700MB, vì vậy tôi vẫn còn bối rối. Sau đó, tôi đã đi đến Trình giám sát tài nguyên và mở tab Bộ nhớ. Ở đó tôi nghĩ rằng tôi đã tìm thấy câu trả lời của mình. Nó lưu ý rằng tôi thực sự chỉ sử dụng 33% RAM. Tuy nhiên, trên thanh phân bổ tài nguyên Bộ nhớ vật lý, phần Sửa đổi lên tới 2,3 GB, phần Chờ lên tới 540 MB, phần Miễn phí dưới 20 MB, Bộ nhớ đệm được liệt kê ở mức 2. Bộ nhớ 8GB và khả dụng được liệt kê ở mức 550MB. (Tất nhiên, các giá trị này được làm tròn một chút, vì thy luôn thay đổi khi tôi viết điều này.)

Vì vậy, rõ ràng Windows 7 đang sử dụng nhiều bộ nhớ hơn tôi. Trước đây, tôi đã thực hiện một số sửa đổi cho menu dịch vụ Windows đã cài đặt nhưng điều đó chỉ để vô hiệu hóa một số dịch vụ lưu trữ, vì tôi không muốn thực hiện bất kỳ chia sẻ phương tiện nào, để bật ứng dụng khách Telnet và xóa Internet Explorer, nhưng nó có thể là lỗi của tôi. Có cách nào để làm cho Windows không làm điều này hoặc ít nhất là bộ nhớ cache ít tích cực hơn để tôi ngừng nhận được các thông báo "Bộ nhớ thấp" này không?


2
OP hiểu sai vấn đề. Anh ta đang cạn kiệt bộ nhớ ảo được hỗ trợ. Tất cả các phân tích của ông về bộ nhớ vật lý là không liên quan. Bạn có thể có nhiều bộ nhớ vật lý miễn phí nhưng không đủ bộ nhớ ảo được hỗ trợ miễn phí và cảnh báo bộ nhớ bật lên là một cảnh báo về bộ nhớ ảo được hỗ trợ trong tình trạng thiếu, không phải bộ nhớ vật lý. (Mặc dù rò rỉ bộ nhớ vật lý từ trình điều khiển có thể gây ra sự cố gián tiếp.)
David Schwartz

"OP hiểu sai vấn đề." Cũng như một số người trả lời. :(
Jamie Hanrahan

Câu trả lời:


10

Bộ nhớ ở chế độ chờ không phải là vấn đề, nó được coi là "miễn phí" và sẽ được phân bổ lại theo yêu cầu - nó chỉ chứa bộ nhớ được các chương trình sử dụng gần đây, nhưng hiện đã được giải phóng. Nếu một chương trình khác yêu cầu nhiều bộ nhớ hơn là "Miễn phí", hệ thống sẽ phân bổ từ bộ Chờ ở chế độ chờ (vì bộ nhớ "chờ" không thực sự được sử dụng tại thời điểm này).

Bộ nhớ sửa đổi quá mức của bạn là vấn đề của bạn, bởi vì nó không thể được phân bổ lại dễ dàng. Xem tại đây . Có khả năng nguyên nhân là do rò rỉ bộ nhớ (dường như tương ứng với đoạn đầu tiên của bạn - chương trình nào bị rò rỉ?) Hoặc tệp trang quá nhỏ (tệp trang của bạn có kích thước cố định hoặc bị vô hiệu hóa?).


3
Như tôi đã lưu ý trong nhận xét của mình về câu trả lời của CJM, tôi đã đóng tất cả các ứng dụng có thể nghi ngờ (một số trò chơi trên PC độc lập) và chỉ có Trình quản lý tác vụ, Trình giám sát tài nguyên, AVG và Chrome hiện đang chạy nhưng vẫn có 1.6GB bộ nhớ đã sửa đổi. Tôi rời khỏi máy tính của tôi nhiều ngày liền, phù hợp với hồ sơ trong bài viết bạn liên kết. Tuy nhiên, một lưu ý trên trang web đó là tìm kiếm một quy trình với kích thước cam kết lớn. Hiện tại đó là một quá trình từ nSvcAppFlt.exe. Nó chỉ có kích thước cài đặt hoạt động là 30MB nhưng kích thước cam kết là 13,5GB. Đưa cái gì?
grg-n-sox

2
Đó là chương trình làm rò rỉ bộ nhớ của bạn. Đồng thời xem social.answers.microsoft.com/Forums/en-US/w7performance/thread/ mẹo . Loại bỏ nó và tất cả sẽ được tốt.
akid

Cảm ơn rât nhiều. Trên thực tế đó là loại tiện lợi. Vì vậy, về cơ bản nếu tôi nhận thấy RAM của mình bị ăn hết, tôi có thể đi đến màn hình tài nguyên của mình, xem phần Bộ nhớ đã sửa đổi có lớn không, và xem quá trình nào có kích thước cam kết lớn và tôi thấy chương trình bị rò rỉ bộ nhớ? Chắc chắn là một công cụ chẩn đoán tốt cho Windows.
grg-n-sox

Vô hiệu hóa hoặc nâng cấp phần mềm tường lửa Nvidia của bạn.
David Schwartz

Bạn có ba "bạn" nên là "của bạn" trong đoạn cuối. (không thể đề xuất chỉnh sửa, quá nhỏ.)
Shadow The Burning Wizard

4

Bộ nhớ đệm ưu tiên SuperFetch không phải là vấn đề của bạn. Windows 7 sẽ sử dụng nhiều bộ nhớ dự phòng nhất có thể để lưu trước bộ đệm ẩn những gì nó nghĩ bạn sẽ cần tiếp theo. Nếu nó đúng, nó sẽ giúp bạn tiết kiệm một chút thời gian và các ứng dụng của bạn xuất hiện nhanh hơn và phản ứng nhanh hơn.

Nếu nó đoán sai và bạn cần một số dữ liệu khác, Superfetch sẽ giải phóng một số bộ nhớ mà nó có, để cho phép bạn tải dữ liệu bạn thực sự cần. Xem: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage-scaremongering.ars

Nếu bạn gặp phải vấn đề 'bộ nhớ thấp', điều đó sẽ không xảy ra do SuperFetch - vì nó sẽ giảm dung lượng bộ nhớ nhiều khi cần thiết nếu các ứng dụng yêu cầu. Bộ nhớ khả dụng của bạn (550MB) là những gì đang được superfetch sử dụng, vì vậy rõ ràng bạn chưa hết bộ nhớ. Ngay cả khi bạn sử dụng hết RAM, máy của bạn sẽ rơi vào bộ nhớ ảo, mặc dù bạn sẽ muốn tránh điều này vì hiệu năng đạt được ...

Vì vậy, nó gợi ý bạn là các vấn đề 'bộ nhớ thấp' là do các vấn đề ở nơi khác - có lẽ một trong những ứng dụng bị rò rỉ của bạn đang tiêu thụ (và không từ bỏ) các loại tài nguyên khác ...

Dù bằng cách nào, giải pháp có nhiều khả năng được tìm thấy bằng cách giải quyết các ứng dụng lỗi của bạn, hơn là gây rối với SuperFetch ...


Tôi hiểu rằng phần Chờ của bộ nhớ là một phần của bộ nhớ đệm, nhưng tôi thực sự phải nghi ngờ vấn đề là các chương trình của tôi. Tôi vừa đóng tất cả chúng bây giờ để tất cả những gì tôi đang chạy là AVG, Trình quản lý tác vụ, Trình theo dõi tài nguyên và một cửa sổ Chrome duy nhất có 4 tab. Chỉ có 1042 MB được sử dụng với 1417 MB bộ nhớ khả dụng, nhưng tôi vẫn có một lượng lớn bộ nhớ đã sửa đổi chiếm 1633 MB mà Trình quản lý tác vụ đang tính là bộ nhớ đã sử dụng và cung cấp cho tôi các thông báo bộ nhớ thấp. Có cách nào để giảm dung lượng Bộ nhớ đã sửa đổi hay chỉ tắt thông báo bộ nhớ thấp?
grg-n-sox

0

Vì bạn không nghĩ rằng vấn đề là do chương trình bị rò rỉ bộ nhớ, nên phương án thay thế là tăng kích thước tệp trang của bạn.

Mặc dù tệp trang không phải là bộ nhớ chính của bạn, nhưng nó sẽ cho phép hệ điều hành trao đổi thêm dữ liệu vào ổ cứng và hy vọng, dừng thông báo "hết bộ nhớ". Tùy chọn duy nhất khác là loại bỏ chương trình liên quan đến quá trình có bản in 13GB khổng lồ, mặc dù tôi không biết chương trình nào sẽ cần trang nhiều bộ nhớ đó, trừ khi đó là một phần mềm kết xuất 3D hoặc trò chơi PC cao cấp.


0

Từ kinh nghiệm của tôi creep bộ nhớ dự phòng là một vấn đề thực sự. Ví dụ: nếu tôi chạy Snagit ở chế độ cửa sổ cho một bài viết dài, sẽ có những phần của bài viết không được chụp khi chỉ chạy trên bộ nhớ Chờ. Trong mọi trường hợp, tôi thấy rằng máy tính của tôi chạy chậm trên bộ nhớ Chờ.

Để giải quyết vấn đề, tôi sử dụng trình tối ưu hóa bộ nhớ trong các tiện ích Glary miễn phí. Máy tính của tôi có 6 bộ nhớ. Khi tôi khởi động lần đầu tiên, tôi có khoảng 2 GIG bộ nhớ đang sử dụng, 2 GIG ở chế độ chờ và 2 GIG mà tôi gọi là Bộ nhớ miễn phí theo Bộ theo dõi tài nguyên của Windows. Trong vòng nửa ngày hoặc lâu hơn, tất cả bộ nhớ Miễn phí của tôi sẽ chuyển thành bộ nhớ Chờ cho dù tôi có sử dụng máy tính hay không. Bây giờ tôi có trình tối ưu hóa bộ nhớ Glary Utility khởi động với Windows và có thể giữ cho máy tính của tôi chạy vô thời hạn có đầy đủ 2 bộ nhớ miễn phí GIG.

Mỗi lần tôi ngồi xuống một phiên khác, lần đầu tiên tôi nhấp đúp vào biểu tượng khay tối ưu hóa bộ nhớ và thực hiện tối ưu hóa; yêu cầu giải phóng 2 bộ nhớ miễn phí ban đầu của tôi. Tôi có thể yêu cầu nhiều hơn nhưng đó là mức tối đa nó sẽ giải phóng bất kể. Mất khoảng 30 giây để trình tối ưu hóa hoàn thành, ít hơn nhiều so với yêu cầu khởi động lại. Nó có chế độ tự động tối ưu hóa nhưng tôi chưa thể tìm ra cách làm cho nó hoạt động.


Bộ nhớ chờ không phải là vấn đề.
Jamie Hanrahan

"Trình tối ưu hóa bộ nhớ" cần được loại bỏ. RAM dự phòng là RAM gần đây đã được "sử dụng" trong các quy trình. Nó đã bị đẩy ra khỏi các quá trình đó do thay thế bộ làm việc, nhưng nó vẫn chứa những gì nó đã làm khi nó được "sử dụng". Nếu một quá trình xảy ra cần những gì trong một trong những trang đó, trang có thể được đưa trở lại quy trình một cách nhanh chóng. Đó là lý do tại sao Standby được coi là một phần của số lượng "Cache". Nhưng Chế độ chờ cũng chỉ là "Có sẵn" cho các mục đích sử dụng khác như RAM miễn phí. "Trình tối ưu hóa bộ nhớ" của bạn vừa chuyển một loạt trang từ Chế độ chờ sang Miễn phí, tức là bạn đã bắn xuống bộ đệm ở chế độ chờ [...]
Jamie Hanrahan

[...] Mà không tạo thêm RAM. Vì "Chờ" luôn luôn là "Có sẵn"! Với Vista trở lên, Superfetch hiện có thể sử dụng một phần của Chế độ chờ cho bộ nhớ đệm tệp chủ động của nó, nhưng các trang vẫn có thể được sử dụng lại để sử dụng bởi các chương trình khác khi cần. Vì vậy, SuperFetch cũng không lấy bất kỳ trang nào khỏi "Có sẵn". Loại bỏ "trình quản lý bộ nhớ", điều này đang làm tổn hại đến hiệu năng hệ thống của bạn, gây ra I / O đĩa không cần thiết.
Jamie Hanrahan

-1

Để giải quyết vấn đề này

Goto start-run-msconfig, sau đó dịch vụ và xóa đánh dấu khỏi "Nền tảng trình điều khiển Windows". nhấn ok và khởi động lại máy.

Ghi nhớ - Chỉ các bước được đề cập ở trên sẽ giải quyết vấn đề này. Nếu bạn đã tắt từ services.msc, nó vẫn hoạt động tại thời điểm khởi động HĐH và nó sẽ chặn bộ nhớ của bạn.

Để xác minh điều này, sử dụng công cụ


Vô hiệu hóa dịch vụ WDF sẽ vô hiệu hóa bất kỳ thiết bị nào phụ thuộc vào kiểu trình điều khiển đó. Đó là một ý tưởng tồi.
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.