간단한 Bash 스크립트의 모호하거나 정의되지 않은 동작

간단한 Bash 스크립트의 모호하거나 정의되지 않은 동작
[root@localhost ~]# time cpumode 
Driver:   acpi-cpufreq
Boost:    disabled
Governor: ondemand
Average and maximum frequencies now: 2159MHz 2929MHz
Maximum allowed frequency is 3800MHz (out of 4928MHz)

real    0m0.214s
user    0m0.017s
sys 0m0.011s
[root@localhost ~]# time cpumode 
Driver:   acpi-cpufreq
Boost:    disabled
Governor: ondemand
Average and maximum frequencies now: 2431MHz 2738MHz
Maximum allowed frequency is 3800MHz (out of 4928MHz)

real    0m0.024s
user    0m0.018s
sys 0m0.013s

스크립트를 실행하는 데 걸리는 시간에는 거의 큰 차이가 있으며 무작위로 발생합니다.

어떻게 가능한지 모르겠습니다. 디버깅이 활성화되면(처음 두 줄은 주석 처리되지 않음)스크립트항상 0.134초 정도에 실행됩니다.

PC/노트북에서 재생이 불가능하더라도 걱정하지 마세요. 이것은 내 인생에서 한 번도 본 적이 없고 설명할 수 없는 이상한 현상이다. 다음을 통해 실행할 수 있지만 strace -f -t지금은 그렇게 하고 싶지 않습니다 ;-)


Linux 5.19.4에서는 더 이상 이 동작을 재현할 수 없습니다.

답변1

비슷한 차이점이 있는데 이는 CPU 전체에서 프로세스가 예약되는 방식과 관련된 것 같습니다.

"느린" 실행 시 출력은 다음과 같습니다.

./cpumode > /dev/null  0.03s user 0.01s system 19% cpu 0.189 total

또는

0.03user 0.01system 0:00.20elapsed 21%CPU (0avgtext+0avgdata 4004maxresident)k
0inputs+0outputs (0major+5720minor)pagefaults 0swaps

( zshs time와 GNU를 각각 사용합니다 . 출력에 신경 쓰지 않고 요인인 경우 터미널 지연을 제거하기 위해 둘 다로 time리디렉션합니다 .)> /dev/null

빠르게 달리는 동안 나는

./cpumode > /dev/null  0.03s user 0.02s system 125% cpu 0.035 total

또는

0.03user 0.01system 0:00.03elapsed 125%CPU (0avgtext+0avgdata 4092maxresident)k
0inputs+0outputs (0major+5668minor)pagefaults 0swaps

CPU 할당의 차이를 확인하세요.

관련 정보