CentOS에 일정 기간 동안 CPU / RAM 사용 로그 쓰기


8

프로세스를 관찰하고 많은 변수에 정보를 저장 한 다음 수집 된 정보를 파일에 넣을 수있는 응용 프로그램이나 코드 줄을 찾고 있습니다.

나는 변이를 시도 top했지만 운이 없다. 여러 CentOS 가상 서버를 실행 중이며 VM은 2GB RAM, 2 프로세서입니다.

텍스트 파일에 정보가있는 줄을 쓰는 동안 지정된 시간 동안 작동하는 스크립트는 결국 데이터가있는 일종의 테이블을 가질 수 있습니다.

서버에 스트레스 테스트를 해보고 통계를 만들 데이터를 갖고 싶습니다.

답변:


11

표준 ps으로 충분합니다.

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

결과:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

첫 번째 필드는 CPU 사용률 (%)이고 두 번째 필드는 물리적 메모리 사용량 (KB)입니다.


완벽하게, 나는 이미 최고 배치 출력에서 ​​모든 데이터를 정리하기 위해 긴 스크립트를 만들었지 만, 더 간단하고 효과적입니다.
keponk

PS는, 나에게 빠른 구글 검색이 더 많은 정보를 원하시면 CPU의 %로 일반적으로 동일하지만 규칙 아닌 평균 부하를 제공하기 때문에 마지막에 내가 내 스크립트를 사용하여 유지
keponk

1
여기서 % CPU는 간격 동안 사용 된 %가 아니라 프로그램의 전체 실행 시간에 대한 평균 백분율입니다. 나는 이것이 오도라고 생각합니다.
Will Sewell

2

정확한 타이밍에 관심이 있고 CPU 비율을 원하는 경우 :

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'

1

나는 sadc/ 을 제안 할 것이다 sar.


시스템 전체에만 해당되지 않습니까?
whitequark

@whitequark :의 버전에 따라 다릅니다 sar. 일부 버전은 sar -x PID다른 버전을 사용 합니다 pidstat -p PID.
추후 공지가있을 때까지 일시 중지되었습니다.

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

0

특정 프로세스에 필요한 CPU 시간을 관찰하려고합니다.

CentOS 용 CPU 통계 도구 를 제안하려고 했습니까? 그러나 이것은 하나의 프로세스가 아니라 전체 시스템에 적용됩니다.

하나의 프로세스는 ps 출력에 CPU 시간을 표시합니다.

$ ps -ef | egrep blah
root     13988 11152  0 Dec16 ?        00:00:05 sshd: xxx [priv]
xxx      14024 13988  0 Dec16 ?        00:06:00 sshd: xxx@pts/0
xxx      14032 14024  0 Dec16 pts/0    07:00:00 -bash
root      1194   679  0 Apr24 ?        2-05:15:14 [kswapd0]
root      1195   679  0 Apr24 ?        2-06:35:49 [kswapd1]
  • 00:00:00은 CPU의 시간 / 분 / 초입니다. 축적됩니다.
  • 사용자가 아닌 경우이를 볼 수있는 권한이 필요합니다.
  • 이 값이 하루 이상되면 형식이 변경됩니다. 2 일이 지났습니다. 구문 분석 루틴이이를 처리해야합니다.

이 시점에서 출력을 파이썬으로 구문 분석하고 날짜 계산을 해보십시오. 황금입니다.


0

다음 명령은 특정 프로세스에 대해 40 초마다 평균 CPU 및 메모리 사용량을 가져옵니다 (pid)

pidstat 40 -ru -p <pid>

내 경우에 대한 출력 (CPU 사용을 위해 처음 두 줄, 메모리를 위해 두 번째 두 줄) :

02:15:07 PM       PID    %usr %system  %guest    %CPU   CPU  Command
02:15:47 PM     24563    0.65    0.07    0.00    0.73     3  java

02:15:07 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
02:15:47 PM     24563      6.95      0.00 13047972 2123268   6.52  java
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.