top 또는 htop을 사용하여 필터링된 시계열을 수집하는 방법

top 또는 htop을 사용하여 필터링된 시계열을 수집하는 방법

내 목표는 쉽게 분석할 수 있는 시계열에서 특정 명령의 리소스 사용량을 추적하는 것입니다. 다음은 node3개의 배치에 대한 모든 명령을 추적하는 예입니다.

top -b -n3 | grep node                
 222097 root      20   0  954444 672616  32452 S 105.9   4.1  46:23.02 node
 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node
 222097 root      20   0  954444 672616  32452 S 159.8   4.1  46:27.83 node
 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node
 222097 root      20   0  954444 672616  32452 S 167.1   4.1  46:32.86 node
 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node

문제는 배치를 구별하는 쉬운 방법이 없다는 것입니다. 이 간단한 예에서는 중단점을 쉽게 볼 수 있지만 더 긴 시리즈나 더 많은 프로세스가 있는 시리즈에서는 중단점을 확인하기가 어렵습니다.

약간의 무거운 스크립팅을 사용하면 멋진 작업을 수행할 수 있지만 저는 단순하게 유지하고 싶었습니다. 원하는 출력:

 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node
------------------------------------------------------------------------------
 222097 root      20   0  954444 672616  32452 S 159.8   4.1  46:27.83 node
 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node
------------------------------------------------------------------------------
 222097 root      20   0  954444 672616  32452 S 167.1   4.1  46:32.86 node
 221922 root      20   0  305792  51408  23900 S   0.0   0.3   0:00.58 node
 222113 root      20   0  554304 343092  23736 S   0.0   2.1   0:26.25 node

답변1

이 불완전한 bash 스크립트는 이 기사를 작성하는 것보다 시간이 덜 걸렸습니다.

# /bin/bash

echo "Monitor process $1"
echo " for $2 batches"


for i in $(seq 1 $2); do 
    top -b -n 1 | grep $1
    echo "-------------------------------------------------";
    sleep 1
done

관련 정보