2016-10-14 6 views
1

메모리 프로그램을 많이 사용하는 Go 프로그램 중 하나 (이미 예상 한 것보다 훨씬 많음)가 눈에 띄며 왜 그런지 이해하지 못하는 것은 두 번째입니다. 내가 pprof으로 메모리 및 메모리 프로파일 링 pprof TOP5의 결과를 프로파일로 결정 같은 것입니다 :Go 메모리 프로파일 링

1140.28MB of 1169.97MB total (97.46%) 
Dropped 61 nodes (cum <= 5.85MB) 
Showing top 5 nodes out of 15 (cum >= 33.89MB) 

내 문제는 다음과 같다. 프로파일에서 우리는이 프로그램이 약 1.2GB의 메모리를 소비했다는 것을 알았습니다. (이것은 내가 수행하고있는 작업에 적합하고 로그 분석 및 색인 생성에 적당합니다.) 그러나 "톱 커맨드"를 수행하고 프로그램에서 사용하는 상주 메모리를 살펴보면 메모리 프로파일 링과 상당한 차이가있는 약 10GB에서 11GB의 메모리가 프로그램에서 사용됩니다.

프로필에 표시되지 않는 메모리는 어디에 있습니까? 그리고 왜? 문제를 해결하는 방법? 그것은 여분의 메모리 사용량이 ESP, 파일 시스템에서입니다 가능성이 높습니다

+0

? (또한 http/pprof 훅을 사용하고 있다면'/ debug/pprof/heap'으로 표시됩니다) – JimB

답변

0

사전으로

감사합니다. 아마 당신은 많은 디스크를 스캔하고 있기 때문입니다.

참조하십시오`runtime.MemStats`이 시점에서 무엇의 http://www.linuxatemyram.com/

관련 문제