프로세스별 상세한 분석

프로세스별 상세한 분석

저는 CPU, I/O, 시간 경과에 따른 메모리 사용량, 선택적으로 시스템 호출에 소요된 시간 등 단일 프로세스를 프로파일링하는 방법을 찾고 있습니다.

몇 가지 기본 프로파일링 기능을 제공하라는 지시를 받았지만 callgrind디버깅 정보만 제공하고 언급된 다른 정보는 대부분 부족합니다.

나는 strace -c모든 시스템 호출과 필요한 CPU 시간에 대한 요약을 제공하는 것을 알고 있습니다.

(io)top와 같은 여러 IO 관련 도구를 알고 있지만 iostat모두 vmstat개별 프로세스에 대한 자세한 통계가 부족합니다. 또한 /proc/$PID/io개별 프로세스에 대한 일부 IO 통계를 제공하지만 시간이 지남에 따라 IO 정보를 수집하려면 정기적으로 읽어야 합니다.

pidstatCPU 로드, IO 통계 및 메모리 사용률은 제공되지만 시스템 호출은 제공되지 않으며 시간 경과에 따른 것이 아니라 높은 세분성에서만 제공된다는 것을 알고 있습니다 .

물론 설명된 여러 도구를 조합하여 시간이 지남에 따라 이 정보를 수집할 수 있지만 이는 세부성이 부족하여 중요한 정보가 손실됩니다. 내가 찾고 있는 것은 시간이 지남에 따라 언급된 정보의 전부(또는 적어도 대부분)를 제공할 수 있는 단일 도구입니다. 그런 도구가 존재하나요?

답변1

그동안 나는 나만의 프로그램을 작성했습니다.오드리아- 현재/평균 CPU 사용량, 가상 메모리 사용량, IO 로드 및 기타 정보를 포함하여 하나 이상의 프로세스의 리소스 사용량을 모니터링할 수 있습니다.

답변2

시도해 봤어?Remotetaskmonitor.com? 단일 프로세스나 스레드를 선택하고 시간 경과에 따른 CPU 사용량을 캡처할 수 있습니다. CPU 및 메모리 사용량 그래프가 생성됩니다.

또 다른 옵션은 다음과 같습니다.cpuprofiler.com. 하지만 이렇게 하면 CPU 데이터가 클라우드에 저장되며 웹 브라우저에서 로그인하여 CPU 보고서를 볼 수 있습니다.

답변3

오스트리아 섹션대부분의 배포 저장소에서 사용할 수 있는 패키지인 는 CPU의 하드웨어 성능 카운터를 사용하여 프로세스별 또는 시스템 전체 이벤트 및 프로세스 분석을 선택적으로 제공합니다.

관련 정보