Cảnh báo bộ nhớ thấp của Windows 10 khi tôi có nhiều bộ nhớ khả dụng


25

Tôi đã gặp sự cố khi hệ thống của tôi hoạt động được vài ngày mà không được khởi động lại, tôi sẽ bắt đầu nhận được cảnh báo rằng "Đóng chương trình để tránh mất thông tin" và sau đó một cuộc đối thoại gợi ý tôi đóng chương trình, tôi có thể hủy hoặc nhấn "Đóng chương trình" và Windows sẽ buộc đóng một số hoặc tất cả các ứng dụng được liệt kê trong hộp thoại.

Tôi mở trình quản lý tác vụ và thấy rằng chỉ khoảng 30% bộ nhớ của tôi hiện đang được sử dụng:

33% sử dụng

Khi tôi mở trình giám sát tài nguyên để xem dung lượng bộ nhớ được sử dụng bởi các ứng dụng cụ thể, tôi vẫn thấy mức sử dụng bộ nhớ tương đối thấp:

Giám sát tài nguyên

Tôi đã có vấn đề này trong một thời gian và đã đấu tranh để tìm một giải pháp. Tôi đã điều tra các nguyên nhân như rò rỉ trình điều khiển bằng cách sử dụng poolmon, nhưng chưa bao giờ thấy bất cứ điều gì trong poolmon khớp với những gì người khác mô tả là cờ đỏ cho rò rỉ bộ nhớ trình điều khiển. Điều khiến tôi đặc biệt bối rối là tại sao Win10 lại bảo tôi đóng các ứng dụng khi tôi chỉ có 33% bộ nhớ hệ thống được sử dụng.


3
Hãy thử đi đến trình quản lý tác vụ và chuyển đến tab hiệu suất. Trường bộ nhớ cam kết hiển thị những gì?
DrZoo

Tôi đã không lưu ảnh chụp màn hình cho nó nhưng bộ nhớ cam kết của tôi có tỷ lệ cao khả dụng, tương đương 17,5gb / 19gb.
Brandon

Câu trả lời:


15

Đoán hoang dã ở đây.

Bạn đã vô hiệu hóa tệp hoán đổi của mình, làm theo lời khuyên "tối ưu hóa" ngẫu nhiên của ai đó.

Bạn có một trình điều khiển hệ điều hành nào đó muốn có một khối lớn RAM vật lý liên tiếp. Nhưng nó không thể có được vì tất cả RAM vật lý đã bị phân mảnh theo thời gian. Và vì tệp hoán đổi bị vô hiệu hóa nên nó không thể thực hiện phân mảnh RAM.

Kích hoạt tập tin trao đổi của bạn.

Như tôi đã nói, đoán hoang dã.


Chà, tôi có một kích thước trang setfile tối đa 3gb. Đây có phải là ý của bạn khi hoán đổi hay đây là một thứ được quản lý riêng trong Windows 10? Không phải là tôi không thể làm điều gì đó như thế này, tôi đã gặp vấn đề về hiệu năng cực kỳ tồi tệ khi lần đầu tiên chế tạo chiếc máy này vào năm 10/2015 và đã thử một số thứ như vô hiệu hóa bãi đậu xe lõi để sửa nó. Cuối cùng, có một kế hoạch quản lý năng lượng làm giảm sức mạnh của tôi xuống còn 10% và bỏ đói tất cả các thành phần và đó là lý do tại sao tôi gặp vấn đề về hiệu năng hệ thống, nhưng có thể tôi đã làm điều gì đó như bạn đã nói trong tập phim đó.
Brandon

1
Thay đổi kích thước tệp trang của bạn thành "Hệ thống được quản lý" và các vấn đề của bạn có thể sẽ biến mất.
Scott Chamberlain

Tôi đã từng quản lý hệ thống và tôi vẫn gặp vấn đề tương tự, sẽ mất nhiều thời gian hơn để hiển thị. Khi tôi cài đặt nó vào hệ thống được quản lý, pagefile sẽ đạt tối đa 64gb, và sau đó khi mức cam kết tăng lên rất cao, tôi vẫn nhận được các cảnh báo bộ nhớ thấp tương tự. Nhưng tôi vẫn thấy 70% hoặc hơn bộ nhớ vật lý khả dụng và không có dấu hiệu nào trong Resource Monitor rằng hơn 60 + gb bộ nhớ hiện được cam kết cho bất kỳ quy trình được liệt kê nào.
Brandon

Tôi hoàn toàn đồng ý với Zan và Scott, đó là trang của bạn gây ra sự cố này (xem windowsitpro.com/windows-10/ mẹo để biết một nguồn khác cũng nói điều này). Đặt nó vào hệ thống được quản lý và nếu vấn đề xuất hiện trở lại, THÌ bắt đầu điều tra.
Ƭᴇcʜιᴇ007

Vì vậy, tôi nghĩ rằng pagefile được quản lý hệ thống là câu trả lời cốt lõi ở đây. Có vẻ như việc cài đặt thành 3gb tĩnh chỉ là không lý tưởng trong môi trường Windows 10. Tôi đã triển khai giải pháp này vài tuần trước và để nó chạy trong sử dụng bình thường chỉ để xem điều gì đã xảy ra và trong khi tôi vẫn thấy bộ nhớ được cam kết nhiều hơn so với được ghi trong cột bộ nhớ cam kết của Resource Monitor, tôi không chạy vào bộ nhớ thấp cảnh báo hoặc các vấn đề bây giờ.
Brandon

14

Re Q cuối cùng của bạn - phiên bản ngắn: Thông báo lỗi là về không gian địa chỉ ảo "đã cam kết". Nếu bạn nhìn vào biểu đồ Commit Charge trong ảnh chụp màn hình thứ hai của bạn, bạn sẽ thấy rằng nó thực sự ở hoặc rất gần giới hạn.

Dung lượng RAM "miễn phí", "khả dụng" hoặc "đang sử dụng" không thành vấn đề. Cụ thể, việc thiếu RAM "khả dụng" hoàn toàn không phải là lý do cho thông báo "hết bộ nhớ" hoặc "hết bộ nhớ".

Giới hạn cam kết bằng tổng RAM + kích thước trang. Khi bộ nhớ cam kết được phân bổ, nó sẽ ngay lập tức được tính vào "phí cam kết" mặc dù nó chưa thực sự được sử dụng ... có nghĩa là không có không gian RAM hoặc PF được sử dụng ngay lập tức. Không gian vật lý (cho dù trong RAM hoặc tệp trang) chỉ được sử dụng khi bộ nhớ thực sự được tham chiếu. Từ đó trở đi phải có một nơi nào đó, cho đến khi chương trình giải phóng nó, hoặc toàn bộ quá trình kết thúc.

Ví dụ: Giả sử bạn không có tệp trang, do đó giới hạn cam kết của bạn là 16 GB (kích thước RAM của bạn). Bây giờ, giả sử rằng 8 quy trình mỗi lần thử với Virtual ALLoc (MEM_COMMIT) 1 GB. Kết quả: Phí cam kết được tăng thêm 8 GB. Không có tác động ngay lập tức đến RAM, tuy nhiên! Như thể bạn đã mua một tờ giấy ở cửa hàng văn phòng phẩm, nhưng thực tế bạn không nhận được bất kỳ tờ giấy nào. Tuy nhiên, mỗi khi bạn cần một tờ mới, sẽ xuất hiện một phép màu. Cho đến khi bạn sử dụng hết toàn bộ pad (kích thước của vùng được phân bổ).

Bây giờ, giả sử mỗi quá trình đó chỉ thực sự truy cập 100 MB trong số 1 GB. RAM được sử dụng sẽ chỉ là 800 MB.

Nhưng vì mỗi người trong số họ có thể tham chiếu tất cả 1 GB của mình, nên HĐH phải đảm bảo rằng 8 GB RAM + dung lượng trang ... tốt, chỉ cần RAM trong trường hợp không có trang nào ... chỉ có sẵn trong trường hợp xảy ra . Quay trở lại cửa hàng văn phòng phẩm, họ cần giữ đủ giấy trong kho để cung cấp cho mọi người nhiều tờ như họ đã mua trước đó.

Theo đó, HĐH phải ngừng cho phép VirtualAlloc (MEM_COMMIT) thành công khi số tiền hiện tại đã cam kết đạt đến giới hạn.

Tại sao? Bởi vì quá trình này dự kiến ​​sẽ kiểm tra kết quả của VirtualAlloc để xem liệu nó có thành công hay không. Một khi nó đã làm như vậy và thấy rằng việc phân bổ đã thành công, quá trình này có mọi quyền để mong đợi rằng các tham chiếu tiếp theo của nó tới toàn bộ khu vực cam kết sẽ thành công.

Nếu Windows cho phép phí cam kết vượt quá dung lượng có sẵn để nhận ra không gian đó, thì kỳ vọng đó không phải lúc nào cũng có thể được đáp ứng.

Cách giải quyết nhanh là tăng kích thước mặc định (= ban đầu) của tệp trang của bạn. Từ lời giải thích ở trên, bạn sẽ có thể thấy lý do tại sao điều này sẽ tránh được thông báo lỗi mặc dù không có gì có thể được ghi vào tệp đó . Một lần nữa, HĐH đảm bảo rằng không gian cho tất cả các khoản phí cam kết có sẵn trong trường hợp cần . Khi các quy trình phân bổ bộ nhớ đã cam kết, họ chỉ nói "hey, OS, tôi có thể cần nhiều thứ này." Điều đó không có nghĩa là họ thực sự sẽ sử dụng nó và chắc chắn điều đó không có nghĩa là họ thực sự đã sử dụng nó.

Để biết thêm, xem câu trả lời của tôi ở đây .

Bây giờ .... tại sao bạn đang sử dụng nhiều cam kết đó khi các quy trình của bạn dường như không thêm vào đó là một câu hỏi khác. Để bắt đầu xem xét điều đó, vui lòng hiển thị tab Hiệu suất của Trình quản lý tác vụ, phần Bộ nhớ.


Tôi không có từ nào để mô tả một câu trả lời hoàn hảo như vậy. Cảm ơn bạn.
Vinicius Tavares

-2

Một khả năng khác là bạn đang sử dụng Win10 32 bit chứ không phải 64 bit. Trong khi bạn đã cài đặt 16GB RAM, có những hạn chế hệ điều hành 32 bit giúp sử dụng thực tế trên 4 điểm. Hơn nữa, HĐH sẽ áp đặt giới hạn cứng / mỗi quá trình / đối với lượng RAM có thể được yêu cầu, bất kể RAM vật lý. Nếu đó là trường hợp, bạn không thể làm gì khác ngoài việc chuyển sang HĐH 64 bit hoặc chạy ít ứng dụng hơn cùng một lúc.


2
Không thể chạy Win10 32-bit và Trình quản lý tác vụ hiển thị tổng cộng 16 GB, giống như trong OQ. Và btw, giới hạn mỗi quá trình mà hệ điều hành đặt ra là trên bộ nhớ ảo, không phải RAM. Không có cuộc gọi nào bạn có thể thực hiện trong Windows để phân bổ RAM mỗi se . (Chà, AWE, nhưng có đặc quyền cấp quản trị viên và hầu như không có gì sử dụng ngoại trừ một số chương trình hệ thống.) Bạn phân bổ không gian địa chỉ ảo (nói với VirtualAlloc) và sau đó sử dụng nó; khi bạn sử dụng nó, HĐH sẽ phân bổ RAM cho quy trình của bạn ("phân trang theo yêu cầu"). Nhưng tất nhiên không phải tất cả đều phải được hiện thực hóa trong RAM cùng một lúc.
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.