Làm cách nào để tìm nguồn rò rỉ bộ nhớ trong Windows 7?


10

Tôi đã có một máy Windows 7 tiếp tục thiếu RAM. Tôi có thể thấy RAM miễn phí sẽ giảm trong vài giờ cho đến khi máy không phản hồi. Tôi đã kiểm tra danh sách quá trình và không ai trong số họ mất nhiều RAM như vậy.

Tôi cũng đã kiểm tra số lượng tay cầm trên mỗi quy trình và nhiều chỉ số khác nhưng vẫn không thể tìm thấy lý do tại sao máy hết RAM.

Có cách nào tốt để kiểm tra bộ nhớ được sử dụng trong Windows không?

Biên tập

Đây là kết quả của tasklistmột vài phút trước khi máy không phản hồi:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        300 K
smss.exe                       196 Services                   0      1,024 K
csrss.exe                      272 Services                   0      4,336 K
wininit.exe                    320 Services                   0      4,184 K
csrss.exe                      332 Console                    1      3,516 K
winlogon.exe                   372 Console                    1      6,316 K
services.exe                   416 Services                   0      8,112 K
lsass.exe                      432 Services                   0     10,088 K
lsm.exe                        440 Services                   0      3,664 K
svchost.exe                    548 Services                   0      8,152 K
svchost.exe                    620 Services                   0      6,564 K
svchost.exe                    660 Services                   0     15,764 K
LogonUI.exe                    724 Console                    1     18,428 K
svchost.exe                    768 Services                   0      7,992 K
svchost.exe                    828 Services                   0      9,724 K
svchost.exe                    852 Services                   0     28,092 K
svchost.exe                    176 Services                   0     13,096 K
spoolsv.exe                    824 Services                   0     10,608 K
svchost.exe                    952 Services                   0     11,632 K
svchost.exe                   1076 Services                   0      8,524 K
fshoster32.exe                1120 Services                   0      9,148 K
fsorsp.exe                    1200 Services                   0      8,036 K
fsgk32.exe                    1324 Services                   0      3,084 K
cygrunsrv.exe                 1552 Services                   0      5,852 K
conhost.exe                   1864 Services                   0      2,996 K
sshd.exe                      1896 Services                   0      7,804 K
FSMA32.EXE                    2024 Services                   0      1,628 K
svchost.exe                   1320 Services                   0      5,092 K
fssm32.exe                    1704 Services                   0      2,196 K
FSHDLL64.EXE                  2120 Services                   0        644 K
SearchIndexer.exe             3260 Services                   0     13,596 K
sshd.exe                    138920 Services                   0      8,696 K
sshd.exe                    138448 Services                   0      8,696 K
sshd.exe                    138660 Services                   0      8,696 K
bash.exe                    137924 Services                   0      5,380 K
bash.exe                    137820 Services                   0      3,832 K
SAV32CLI.EXE                136344 Services                   0    133,868 K
WmiPrvSE.exe                139444 Services                   0      7,168 K
sshd.exe                    139672 Services                   0      8,692 K
sshd.exe                    139876 Services                   0      8,684 K
bash.exe                    139992 Services                   0      5,432 K
bash.exe                    140040 Services                   0      3,996 K
bash.exe                    140200 Services                   0      5,400 K
bash.exe                    139424 Services                   0      4,048 K
typeperf.exe                139300 Services                   0      5,372 K
sleep.exe                   138268 Services                   0      2,272 K
sshd.exe                    139612 Services                   0      7,168 K
sshd.exe                    137720 Services                   0      5,700 K
bash.exe                    139524 Services                   0      5,304 K
bash.exe                    138952 Services                   0      3,756 K
tasklist.exe                137580 Services                   0      5,164 K
bash.exe                    139460 Services                   0      5,452 K
bash.exe                    139796 Services                   0        104 K

Tại thời điểm đó, wmic OS get FreePhysicalMemory /Valuebáo cáo khoảng 400 MB bộ nhớ miễn phí trong số 2GB.

Bản đồ Ram:

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

Quản lý công việc:

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


1
Bạn có thể khởi động lại máy tính của mình và đăng ảnh chụp màn hình các quy trình Trình quản lý tác vụ không? Và hãy chắc chắn để hiển thị các quy trình từ tất cả người dùng xin vui lòng. Nếu bạn có hơn 50-60 sau khi khởi động lại thì chắc chắn có những điều bạn có thể làm nhưng nếu không có gì có vẻ tanh thì mọi thứ có thể trở nên khó khăn ..
MonkeyZeus

1
Bạn đang hết bộ nhớ ảo hoặc bộ nhớ vật lý. Các giải pháp và nguyên nhân là khác nhau. Cảnh báo bộ nhớ ảo thấp là một vấn đề cấu hình, bộ nhớ vật lý thấp, có nghĩa là bạn phải chạy nhiều quy trình.
Ramhound

1
Bạn có bất cứ bằng chứng nào cho thấy nguyên nhân là do rò rỉ bộ nhớ không? Có vẻ như bạn có bằng chứng tốt rằng đó không phải là rò rỉ bộ nhớ. (Mặc dù đó có thể là một tài xế bị trả tiền, tôi đoán vậy.)
David Schwartz

Cảm ơn vì bạn đã phản hồi. Tôi đã thêm một số thông tin vào bài viết, đặc biệt là danh sách nhiệm vụ. Đó là bộ nhớ vật lý miễn phí liên tục đi xuống theo thời gian. Có thể kiểm tra nó được sử dụng như thế nào?
nguyệt quế

1
đăng ảnh chụp màn hình của RAMMAp: technet.microsoft.com/en-us/sysiternals/ff700229.aspx
magicandre1981

Câu trả lời:


8

Usgae bộ nhớ cao đến từ việc sử dụng bảng Trang cao . Để xem các quy trình sử dụng nó, hãy cài đặt Bộ công cụ hiệu suất Windows , mở một dấu nhắc lệnh với tư cách quản trị viên và chạy lệnh này:

xperf -on ReferenceSet -BufferSize 1024 -MaxFile 512 -FileMode Circular  && timeout 5 && xperf -d MemUsage.etl

Mở MemUsage.etlbằng Trình phân tích hiệu suất Windows (WPA.exe), kéo và thả biểu đồ "Residentset" từ danh sách biểu đồ bên trái vào ngăn phân tích:

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

Bây giờ di chuyển cột "Danh mục trang" sang bên trái và mở rộng mục "Bảng trang":

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

Ở đây bạn thấy các quá trình có mức sử dụng cao. Trên trang web bên phải (sau dòng màu xanh), bạn thấy việc sử dụng bộ nhớ bảng trang tính bằng MB cho mỗi quy trình.


trong windows8.1 tôi không thấy 'cư dân' là một tùy chọn biểu đồ có sẵn. Làm thế nào tôi có thể nhận được nó? một cờ xperf khác nhau?
akira

tôi trả lời bình luận của riêng tôi: cập nhật xperf.
akira

Điều này không hoạt động với tôi trong Windows 7 - cuộc gọi đầu tiên mà xperf đưa raxperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
benshepherd

@benshepherd cho tôi nó hoạt động. Đảm bảo bạn sử dụng WPT mới nhất từ ​​SDK 8.1: dropbox.com/s/e5ol59a6n9g3ctb/Win7_xperf.png
magicandre1981

1
Cuối cùng tôi đã phát hiện ra vấn đề, đó là Lenovo "RapidBoot Shield" và loại bỏ nó đã giải quyết vấn đề của tôi: superuser.com/a/850346/79763
sparrowt

0

những điều "lạ" duy nhất tôi có thể thấy ở đây là:

  • bạn có một quy trình được gọi là scan.exe98% cpu ngay bây giờ
  • bạn có một quy trình được gọi là fssm32.execó 9 triệu lỗi trang. fssm32.exetrông giống như một chương trình từ trình quét virus an toàn f.
  • bạn cũng có một quy trình gọi là SAV32CLI.EXEtích trữ thêm 130mb + bộ nhớ. có vẻ như bạn cảm thấy được bảo vệ tốt hơn để chạy 2 trình quét vi-rút: f-safe và sophos cùng một lúc.

Ảnh chụp màn hình rammap có vẻ ổn đối với tôi: bạn có một tập tin ~ 400mb được lưu trong bộ nhớ cache, 85mb trong số đó đang hoạt động, 300mb + ở chế độ chờ (có nghĩa là chúng được giải phóng ngay khi bạn cần thêm ram). nhìn vào số lượng sshd.exe và bash.exe của bạn, điều này cũng có vẻ hợp pháp.

Cách tốt nhất để tìm hiểu hoạt động bên trong về cách các cửa sổ quản lý bộ nhớ là bài nói chuyện này tại đây: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 .. bạn đã sử dụng một số công cụ mà loa phát triển .


1
các liên hệ Microsoft của tôi (Microsoft Premier Field Engineers) cũng nói với tôi rằng một số bảng 100 MB không bình thường đối với Windows.
magicandre1981
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.