У меня есть доступ к 8-ядерному узлу кластера Linux. При входе на узел я вижу список процессоров, использующих эту команду:
more /proc/cpuinfo
В моем 8-ядерном узле процессоры пронумерованы от 0 до 7. Каждый процессор - это процессор Intel Xeon (E5430 @ 2,66 ГГц).
Теперь предположим, что я вызываю программу fooс некоторыми аргументами args:
foo args
Выполнение программы fooзанимает много времени (например, часы или дни). Позвонив foo, можно ли определить конкретный процессор (т. Е. От 0 до 7), на котором fooработает? В topпрограмме показывает мне идентификатор процесса и подобную информацию, но я не вижу процессор номер . Доступна ли такая информация?
fooдвум разным процессорам. Когда я звоню fooодин раз, он работает %CPUочень близко к 100% (согласно top). Но когда я вызываю fooвторой раз, оба fooпроцесса запускаются так, что %CPUдля обоих процессов сумма составляет менее 100% (обычно около 45% для каждого fooпроцесса). Для меня это говорит о том, что два вызова fooвыполняются на одном процессоре (хотя доступно восемь процессоров); Я хотел бы убедиться, что это так.