ps -o pcpu
실제로 오래된 CPU 사용량을 표시해야 합니다.
user@comp:~/acr/bin$ ps -o pid,pcpu,comm k-pcpu -u `whoami` | head
PID %CPU COMMAND
3709 34.7 R
15292 34.4 R
3603 33.8 R
3593 33.1 R
3864 33.1 R
3833 32.8 R
3623 32.4 R
3723 32.3 R
3809 32.3 R
현재 사용량은 0입니다. top
약간의 비율이 표시 되지만 실제로 이러한 프로세스는 이제 사용자 입력을 기다리고 있습니다.
user@comp:~/acr/bin$ top
top - 21:39:03 up 55 days, 6:01, 4 users, load average: 0.89, 0.79, 0.81
Tasks: 648 total, 2 running, 646 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.5 st
KiB Mem : 23920025+total, 19068168+free, 43706008 used, 4812568 buff/cache
KiB Swap: 8265724 total, 8232252 free, 33472 used. 19399897+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8431 user 20 0 778708 293092 13932 S 2.3 0.1 54:05.37 R
8504 user 20 0 765680 279928 13904 S 2.3 0.1 47:20.29 R
9217 user 20 0 766256 280460 13884 S 2.3 0.1 48:35.28 R
12921 user 20 0 763716 278040 13924 S 2.3 0.1 34:58.31 R
12998 user 20 0 765096 279276 13892 S 2.3 0.1 129:13.39 R
13026 user 20 0 764736 280960 13884 S 2.3 0.1 130:57.73 R
13093 user 20 0 765824 280056 13884 S 2.3 0.1 22:41.56 R
13208 user 20 0 765696 279884 13920 S 2.3 0.1 39:41.12 R
13325 user 20 0 776420 290744 13912 S 2.3 0.1 35:56.80 R
13832 user 20 0 765244 279424 13888 S 2.3 0.1 128:38.19 R
30% 이상 표시 ps
- 이 프로세스는 지난 12시간 동안 아무 것도 처리하지 않았으므로 최소 24시간이라는 터무니없이 긴 시간 내에 완료되어야 합니다! 이전에는 작업률이 100%였습니다.
질문:
- 문제가 무엇인가요? 버그가 있나요?
- 현재 사용량을 표시하려면 어떻게 해야 합니까?
내 시스템은 32 CPU 가상 머신의 CentOS Linux 버전 7.6.1810(코어)입니다.
답변1
man ps는 %CPU에 대해 다음과 같이 말합니다.
현재는 사용된 CPU 시간을 프로세스가 실행된 시간(CPU 시간/실시간 비율)으로 나누어 백분율로 표시합니다.
따라서 프로세스가 시작된 이후로 역사적입니다.
상단에는 각 지연 시간 조각의 값이 표시됩니다.
top에는 ncurses를 사용하는 대신 텍스트 형식으로 보고서를 출력하는 -b(배치) 옵션이 있습니다. -d 및 -n 옵션을 적절하게 고려하여 원하는 것을 선택할 수 있습니다.