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.