Как можно узнать число ядер, задействованных программой, в ОС Linux?
Подскажите, пожалуйста, можно ли как-то узнать, сколько ядер процессора задействует многопоточная программа?
Время ее работы занимает не более 1 секунды, поэтому получить такую информацию с помощью утилит вроде ps для меня проблематично. Возможно, есть какие-нибудь иные способы? Спасибо.
Ответы (2 шт):
Это можно сделать с помощью команды top
При запуске команды нажмите цифру 1
Также, можно использовать u для просмотра процесса определенного пользователя
Такую статистику можно получить командой time.
Тут правда не скажешь 8 ядер по 25% или 4 по 50% или 2 по 100%, но в целом можно судить о нагрузке
Запуск
$ /usr/bin/time --verbose 7za b
Вывод программы 7za
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz (406E3),ASM,AES-NI)
Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz (406E3)
CPU Freq: 64000000 - - - - - - - -
RAM size: 3780 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
^C22: 7786 313 2417 7575
Вывод команды time
Break signaled
Command exited with non-zero status 255
Command being timed: "7za b"
User time (seconds): 26.41
System time (seconds): 0.16
Percent of CPU this job got: 344%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.71
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 120140
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 5847
Voluntary context switches: 8434
Involuntary context switches: 5924
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 255
Тут видно что программа скушала все ядра (у меня их 4) Percent of CPU this job got: 344%