Windows 7에서 메모리 누수 원인을 찾는 방법은 무엇입니까?


10

RAM이 부족한 Windows 7 컴퓨터가 있습니다. 머신이 응답하지 않을 때까지 몇 시간 동안 여유 RAM이 다운되는 것을 볼 수 있습니다. 프로세스 목록을 확인했지만 그중 많은 RAM을 차지하지는 않습니다.

또한 프로세스 당 핸들 수와 다양한 다른 표시기를 확인했지만 여전히 시스템에 RAM이 부족한 이유를 찾을 수 없습니다.

Windows에서 메모리가 어떻게 사용되는지 확인하는 좋은 방법이 있습니까?

편집하다

다음은 tasklist기기가 응답하지 않는 몇 분 전의 결과입니다 .

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

이때 wmic OS get FreePhysicalMemory /Value2GB 중 약 400MB의 사용 가능한 메모리가보고됩니다.

램지도 :

여기에 이미지 설명을 입력하십시오

작업 관리자:

여기에 이미지 설명을 입력하십시오


1
컴퓨터를 다시 시작하고 작업 관리자 프로세스의 스크린 샷을 게시 할 수 있습니까? 모든 사용자의 프로세스를 표시하십시오. 재부팅 후 50-60 이상을 가지고 있다면 분명히 할 수있는 일이 있지만 아무것도 비린 것처럼 보이지 않으면 상황이 까다로울 수 있습니다.
— MonkeyZeus

1
가상 메모리 또는 실제 메모리가 부족합니다. 해결책과 원인이 다릅니다. 가상 메모리 부족 경고는 물리적 메모리가 부족한 구성 문제이므로 많은 프로세스를 실행해야합니다.
— Ramhound 2016 년

1
원인이 메모리 누수라는 증거가 있습니까? 메모리 누수 가 아니라는 좋은 증거가있는 것 같습니다 . (그것은 버스트 운전사 일 수 있지만, 나는 추측한다.)
— David Schwartz

피드백을 주셔서 감사합니다. 게시물, 특히 작업 목록에 더 많은 정보를 추가했습니다. 시간이 지남에 따라 계속 떨어지는 무료 실제 메모리입니다. 사용 방법을 확인할 수 있습니까?
— laurent

답변:


8

높은 메모리 usgae는 높은 페이지 테이블 사용량 에서 비롯 됩니다. 어떤 프로세스가이를 사용하는지 보려면 Windows Performance Toolkit을 설치하고 관리자 권한으로 명령 프롬프트를 열고이 명령을 실행하십시오.

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

를 열고 MemUsage.etlWindows 성능 분석기 (WPA.exe), 드래그 및 분석 창으로 왼쪽 그래프 목록에서 그래프 "ResidentSet을"드롭 :

여기에 이미지 설명을 입력하십시오

"페이지 카테고리"열을 왼쪽으로 옮기고 "페이지 테이블"엔트리를 확장하십시오 :

여기에 이미지 설명을 입력하십시오

여기에 페이지 테이블 사용량이 많은 프로세스가 표시됩니다. 오른쪽 사이트 (파란색 줄 뒤)에는 각 프로세스의 페이지 테이블 메모리 사용량 (MB)이 표시됩니다.


windows8.1에서 'residentset'을 사용 가능한 그래프 옵션으로 볼 수 없습니다. 어떻게 구할 수 있습니까? 다른 xperf-flag?
— akira

내 자신의 의견에 대답 : xperf 업데이트.
— akira

Windows 7에서는이 기능이 작동하지 않습니다. xperf에 대한 첫 번째 호출 은xperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
— benshepherd

@ benshepherd 작동합니다. : 물론 최신 8.1 SDK에서 WPT 사용 확인 dropbox.com/s/e5ol59a6n9g3ctb/Win7_xperf.png
— magicandre1981

1
나는 결국 문제를 발견했다. 그것은 Lenovo "RapidBoot Shield"였고 그것을 제거하면 내 문제가 해결되었다 : superuser.com/a/850346/79763
— sparrowt

0

내가 여기서 볼 수있는 유일한 "이상한"것들은 다음과 같습니다 :

  • scan.exe현재 98 % CPU 를 사용하지 않는 프로세스가 있습니다.
  • fssm32.exe9 백만 개의 페이지 오류 가있는 프로세스 가 있습니다. fssm32.exef- 보안 바이러스 스캐너의 프로그램처럼 보입니다.
  • 또한 SAV32CLI.EXE130MB 이상의 메모리를 낭비 하는 프로세스가 있습니다. f-secure와 sophos라는 두 가지 바이러스 검색 프로그램을 실행하면 보호 수준이 향상되는 것처럼 보입니다.

램맵 스크린 샷은 나에게 적합합니다 : ~ 400mb 캐시 파일의 풀, 활성 사용시 85mb, 대기 모드에서 300mb + 이상 (램이 더 필요하면 즉시 해제 됨). sshd.exe와 bash.exe의 양을 살펴보면 이것도 합법적입니다.

Windows가 메모리를 관리하는 방법의 내부 작업을 배우는 가장 좋은 방법은 다음과 같습니다. http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 .. 이미 스피커가 개발 한 도구 중 일부를 사용하고 있습니다. .


1
저의 Microsoft 연락처 (Microsoft Premier Field Engineers)도 Windows에서 100MB의 페이지 테이블이 일반적이지 않다고 말했습니다.
— magicandre1981
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.