메모리 사용량을 기록 할 수있는 도구가 있습니까?


18

프로세스의 메모리 사용량을 모니터링하고이 데이터를 기록하려고합니다. 그러한 도구가 있습니까?


1
프로그래밍 방식으로 프로세스 메모리 사용량을 모니터링하는 방법 에 대한이 링크가 귀하의 요구를 해결하는 데 유용 할 것입니다.
Sen

답변:



12

때때로 필요가 생길 때 나는 단지 :

$ top -d 1 -b |grep <process> >>somefile

그것은 우아한 해결책은 아니지만 가설을 검증하기 위해 빠른 원유 가치를 원한다면 작업을 수행합니다.


나는 그것이 생각 입니다 그것의 단순 우아한. grep --line-buffered <process> >>somefile버퍼링없이 grep이 각 라인을 출력 하도록 할 수 있습니다.
Ott Toomet

7

sarsysstat 패키지의 ( System Activity Reporter )는 다음과 같은 경우 친구입니다.

또 다른 방법은 Munin, pnp4nagios, rrdtools 등과 같은 기록 데이터와 결합 된 모니터링입니다.


1
그러나 sar하나의 프로세스에만 집중할 수 있습니까? 대부분 시스템을 전체적으로 모니터링하는 것 같습니다
xenoterracide

3
pidstatsysstat 패키지 의 명령은 단일 프로세스에 대한 통계를보고하기위한 상당히 훌륭한 인터페이스를 제공합니다.
Steven D

@xenoterracide Steven D가 대답했습니다. 나는 전에이 명령을 몰랐다.
Christian

4

상기 특별 행정구 외에도, 내가 권하고 싶습니다 꼭대기 . 나중에 사용할 수있는 이진 로그를 저장하고 메모리 외에 다른 많은 정보도 저장합니다.


3

Valgrind 시도해 볼 수 있습니다.

Valgrind는 동적 분석 도구를 구축하기위한 계측 프레임 워크입니다. 많은 메모리 관리 및 스레딩 버그를 자동으로 감지하고 프로그램을 자세하게 프로파일 링 할 수있는 Valgrind 도구가 있습니다. Valgrind를 사용하여 새로운 도구를 만들 수도 있습니다.

Valgrind 배포판에는 현재 메모리 오류 감지기 , 2 개의 스레드 오류 감지기, 캐시 및 분기 예측 프로파일 러, 콜 그래프 생성 캐시 및 분기 예측 프로파일 러 및 힙 프로파일 러 등 6 가지 프로덕션 품질 도구가 포함되어 있습니다.


이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
saji89

이 문서는 대량으로 설명되어 있습니다.
Shawn Xie

0

나는 Sridhar의 간단한 대답을 좋아하지만 시도하기 전에 내 자신을 굴렸다.

import json, psutil, datetime, time

with open('log.txt', 'w') as f:
  while True:
    json.dump((datetime.datetime.now().isoformat(),
               psutil.Process(7274).memory_info()._asdict()), f)
    f.write('\n')
    f.flush()
    time.sleep(1)

기본적으로 구조적 출력을 원하는 경우에만 유용합니다. 7274를 적절하게 변경하십시오. 또한 Python 3.5.something이 중단 _asdict()되었으므로 Python 2를 사용하십시오.

출력 파일은 다음과 같습니다.

["2019-03-19T11:21:53.784670", {"rss": 220389376, "vms": 538984448, "shared": 15724544, "text": 303104, "lib": 0, "data": 221364224, "dirty": 0}]
["2019-03-19T11:21:54.786136", {"rss": 220438528, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:55.787555", {"rss": 220495872, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:56.788754", {"rss": 220528640, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.