Linux 프로세스 회계 - 'cp'와 'cpu' 필드의 차이점은 무엇입니까?

Linux 프로세스 회계 - 'cp'와 'cpu' 필드의 차이점은 무엇입니까?

나는 정기적으로 상단을 긁는 것과 같은 일을 시도하는 대신 우리 환경에서 문제가 있는 스크립트를 실행하는 다양한 사용자와 사이트를 추적하기 위해 프로세스 계정을 사용하는 방법을 살펴보았습니다.

특히 명확하지 않은 것은 어떤 필드인지입니다.정말사용된 CPU 초/분을 나타냅니다. 내가 읽은 매뉴얼 페이지에는 'cpu' 열이 몇 초 동안 소모된다고 나와 있지만, -m -으로 표시되는 'cp' 열도 있으며 다른 합계를 표시할 수 있습니다. 예를 들어:

-m 플래그를 사용하면 다음과 같은 결과가 나타납니다.

 $sa -m | grep username
 username 14944      65.53re      29.90cp     5308k

-u 플래그를 사용하고 'cpu'에 대한 열의 합계를 계산하면 다음과 같은 결과가 나타납니다.

 sa -u |grep username|awk 'BEGIN{TOTAL=0}{TOTAL=TOTAL+$2}END{print TOTAL}'
 1032.86

이 두 가지 모드에서 'cp'와 'cpu' 열의 차이점을 이해하도록 도와줄 수 있는 사람이 있습니까?

감사해요!

답변1

위의 결과가 무엇인지 설명하는 데 도움이 되는 예를 들어 보겠습니다.

첫째: 눈에 띌 정도로 시스템에 충분한 로드를 가하기 위해 사용자 patricr로 실행하는 bash 스크립트를 만들었습니다.

#!/bin/bash
#this file is named loop_script.sh
for i in {1..5000}
do
   echo "Welcome $i times"
done

둘째: /var/log/acct의 파일이 최신 상태가 되도록 acct를 제거한 다음 다시 설치했습니다. 나중에 올바른 형식의 파일로 파일을 쉽게 자를 수 있도록 /var/log/acct/pacct 파일의 복사본을 만듭니다. 파일을 삭제하고 다시 만들 수는 없습니다. 그렇게 하면 sa가 작동을 멈춥니다. ). 이 파일은 시스템의 모든 명령에 대한 로그이며 내가 알 수 있는 한 기간에 따라 로그의 일부를 가져올 수 있는 방법은 없습니다.

세 번째: 그런 다음 패트리커로 이 스크립트를 두 번 실행했습니다.

patrickr@hostname:~$ bash loop_script.sh

결과를 알려드린 후 설명하겠습니다.

루트(또는 patricr가 아닌 다른 사용자)로 실행했습니다. patricr로 첫 번째 루프를 수행한 후:

**sa -m**
                            24       0.09re       0.03cp         0avio       894k
root                        22       0.07re       0.02cp         0avio       853k
patrickr                    2       0.02re       0.01cp         0avio      1336k

**sa -u |grep patrickr**

patrickr   0.38 cpu     1336k mem      0 io bash             

patrickr로 두 번째 루프를 수행한 후:

**sa -m**
                            30       0.09re       0.03cp         0avio       850k
root                        27       0.07re       0.02cp         0avio       814k
patrickr                    3       0.02re       0.01cp         0avio      1178k

**sa -u |grep patrickr**

patrickr   0.38 cpu     1336k mem      0 io bash            
patrickr   0.35 cpu     1336k mem      0 io bash            
patrickr   0.00 cpu      863k mem      0 io ls  (I happened to also run ls at patrickr)

**sa -u**

The results returned 106 results for a total of 2.86cpu that averaged to 0.03cp

현재 보고 있는 내용은 다음과 같습니다.

sa -m은 이 서버의 초과 근무에 대한 모든 활동에 대한 평균을 표시합니다. 더 많은 명령이 실행될수록 이 파일은 시간이 지남에 따라 커집니다.

sa-u | grep patrickr는 특정 명령에 대한 시스템 및 사용자 시간의 합계를 CPU 분 단위로 표시합니다.

실행 중: sa -u |grep patricr|awk 'BEGIN{TOTAL=0}{TOTAL=TOTAL+$2}END{print TOTAL}'

사용자 patrick에 대한 총계를 제공하지만 sa -m 명령은 실제로 평균을 제공합니다. 두 번째 예가 필요하다면 메모리 값을 살펴보세요. 그것들도 평균입니다.

patrickr에 대해 위에 나열된 세 가지 결과인 .35 + .37 + .0을 더하고 106으로 나누고 가장 가까운 소수점 이하 자릿수로 반올림하면 0.01cp를 얻게 됩니다.

0.01cp의 결과는 acct 응용 프로그램이 설치된 시점(즉, /var/log/acct/pacct 파일이 추적을 시작한 이후)부터 시스템의 모든 로드와 비교한 시스템의 사용자 patricr의 평균 로드입니다.

Output Fields
cpu   -  sum of system and user time in cpu minutes
re    -  actual time in minutes
k     -  cpu-time averaged core usage, in 1k units
k*sec -  cpu storage integral (kilo-core seconds)
u     -  user cpu time in cpu minutes
s     -  system time in cpu minutes

당신에게 도움이 될 좋은 자료는 다음과 같습니다.startlinux.com(원본 링크를 찾았습니다.여기).

관련 정보