
지난 24시간 동안 어떤 프로세스가 높은 CPU 사용률을 유발했는지 확인할 수 있는 명령이나 방법이 있습니까? 어젯밤 오후 11시 30분(2022년 11월 30일)에 CPU 사용률이 높다는 알림을 받았기 때문에 알아내야 합니다. 어떤 프로세스가 높은 활용도를 유발하는지.
답변1
사르
당신이 사용할 수있는사르. sysstat의 일부로 포함되어 있습니다. 설치하기 위해서:
sudo apt-get install sysstat
그런 다음 /etc/default/sysstat를 편집하고 "ENABLED"를 true로 설정하여 활성화합니다.
이렇게 하면 시스템을 모니터링하고 10분마다 보고서를 생성하여 일주일 후에 교체합니다. /etc/cron.d/sysstat에서 sysstat crontab을 편집하거나 /etc/sysstat/sysstat의 sysstat 설정에서 회전 설정을 변경하여 이 동작을 수정할 수 있습니다.
다음 명령을 사용하여 실시간 보고서를 생성할 수 있습니다.
sar -u 1 3
sysstat는 매분마다 백그라운드 CPU 사용량 데이터를 수집하여 /var/log/sysstat/에 저장합니다. 그런 다음 스프레드시트 프로그램이나 sargraph와 같은 사용자 정의 도구를 사용하여 분석을 위해 이 데이터를 가져올 수 있습니다.
꼭대기에
대안은 다음을 사용하는 것입니다.꼭대기에시스템 수준에서 장기적인 분석을 위해 원시 카운터를 파일에 저장할 수 있으며프로세스 수준. 기본적으로 일일 로그 파일은 28일 동안 보존됩니다. atopsar 명령을 사용하여 로그 파일에서 시스템 활동 보고서를 생성할 수 있습니다.
atop은 다음을 통해 우분투 저장소에서 사용할 수 있습니다.sudo apt install atop
답변2
최고 명령
배치 모드의 상단
top -b -n 1
그런 다음 Sed와 함께 낚시해 보세요.
top -b -n 1 | sed -n 8,8p
답변3
로그 파일에 직접 액세스
/var/log/syslog
grep으로 끓인다
cat /var/log/syslog | grep Nov | grep 30 | grep 11: | grep pid=
답변4
프로세스 명령
프로세스 상태(ps)
ps
ps -eo lstart,pid,time,user,comm,pcpu |\ grep 2022 |\ grep 11월 |\ grep 오후 |\ grep 11 |\ 정렬 -n -k 10 -r |\ 헤드 --라인 1
설명
ps(프로세스 상태) -e (모든 프로세스) -o(출력 형식 지정) lstart(긴 시작) pid(프로세스 식별) 시간(시간) 사용자(사용자) 통신(명령) pcpu(CPU 사용률)
출력은 다른 프로그램인 grep으로 파이프됩니다.
grep 2022 | grep 11월 | 오후 grep | 그렙 11
그런 다음 숫자와 CPU 비율이 포함된 열을 기준으로 정렬됩니다.
정렬 -n -k 10 -r -n(숫자) -k(열) -r (역방향)
그런 다음 첫 번째 라인만 통과할 수 있도록 헤드에 파이프를 연결합니다.
헤드 --라인 1