LINUX.ORG.RU
ФорумAdmin

Коллеги, у кого есть доступ к многопроцессорному Linux серверу?

 


0

1

Здравствуйте, коллеги!

Если у кого есть доступ к многопроцессорному (2 или более физических процессоров), то не могли бы вы кинуть сюда вывод нескольких команд?

ls /sys/devices/platform/
ls /sys/devices/platform/coretemp.0/
ls /sys/devices/platform/coretemp.0/hwmon

У меня, в данный момент, нет доступа к многопроцессорной машине, а мне нужно собрать информацию по температуре ядер.

С однопроцессорной многоядерной машиной, вроде, разобрался. Теперь хочу понять где и что искать в многопроцессорной системе.


Ответ на: комментарий от targitaj

Что-то я не понял…

# ll /sys/devices/platform/
total 0
drwxr-xr-x 10 root root    0 Jan 16 16:11  ./
drwxr-xr-x 13 root root    0 Jan 16 16:11  ../
drwxr-xr-x  3 root root    0 Jan 16 16:11  alarmtimer/
drwxr-xr-x  4 root root    0 Jan 16 16:11 'Fixed MDIO bus.0'/
drwxr-xr-x  5 root root    0 Jan 16 16:11  i8042/
drwxr-xr-x  3 root root    0 Jan 16 16:11  pcspkr/
drwxr-xr-x  3 root root    0 Jan 16 16:11  platform-framebuffer.0/
drwxr-xr-x  2 root root    0 Jan 16 16:11  power/
drwxr-xr-x  4 root root    0 Jan 16 16:11  reg-dummy/
drwxr-xr-x  4 root root    0 Jan 16 16:11  serial8250/
-rw-r--r--  1 root root 4096 Jan 16 16:11  uevent

Следующий пост:

#ll /sys/devices/platform/
total 0
drwxr-xr-x 19 root root    0 May 24  2022  ./
drwxr-xr-x 21 root root    0 May 24  2022  ../
drwxr-xr-x  4 root root    0 May 24  2022 'Fixed MDIO bus.0'/
drwxr-xr-x  3 root root    0 May 24  2022  GHES.0/
drwxr-xr-x  3 root root    0 May 24  2022  GHES.1/
drwxr-xr-x  3 root root    0 May 24  2022  PNP0C0C:00/
drwxr-xr-x  4 root root    0 May 24  2022  coretemp.0/
drwxr-xr-x  4 root root    0 May 24  2022  coretemp.1/
drwxr-xr-x  4 root root    0 May 24  2022  dmi-ipmi-si.0/
drwxr-xr-x  3 root root    0 May 24  2022  eisa.0/
drwxr-xr-x  5 root root    0 May 24  2022  i8042/
drwxr-xr-x  3 root root    0 May 24  2022  ipmi_bmc.0/
drwxr-xr-x  3 root root    0 May 24  2022  kgdboc/
drwxr-xr-x  3 root root    0 May 24  2022  microcode/
drwxr-xr-x  3 root root    0 May 24  2022  pcspkr/
drwxr-xr-x  2 root root    0 Jan 16 16:17  power/
drwxr-xr-x  4 root root    0 May 24  2022  reg-dummy/
drwxr-xr-x  4 root root    0 May 24  2022  serial8250/
-rw-r--r--  1 root root 4096 May 24  2022  uevent
drwxr-xr-x  3 root root    0 May 24  2022  vesa-framebuffer.0/

Что-то я не понимаю в этой жизни…

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)
Ответ на: комментарий от firkax

Тем что это скриптота с кучей лишнего парсинга строк во время выполнения.

Если использовать opendir & readdir, то почти то же самое придется делать мне.

Да! Я согласен, что он парсит дольше, в силу понятных причин, но намного ли это дольше?

Я натолкнулся еще на проблему:

cat /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp2_label
Core 0

Я думал, что после "Core " идет «номер» по которому я могу узнать температуру, типа:

cat /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp0_input
cat: /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp0_input: Нет такого файла или каталога

Получается мне нужно номер выпарсивать из temp2_label? Т.е. 2. Но это как-то сомнительно.

cat /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp1_label
Package id 0

cat /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp1_input 
36000
HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 2)
Ответ на: комментарий от HighMan

Если использовать opendir & readdir, то почти то же самое придется делать мне.
Да! Я согласен, что он парсит дольше, в силу понятных причин, но намного ли это дольше?

Нет, не намного. Но в Си такие методы использовать это дурной тон.

Надо логическую структуру ответа сооружать по мере обхода, а не сначала составлять список файлов по шаблону, а потом парсить его ещё раз чтобы уже данные получить.

Нет, номер из label не нужен, там такое же бесполезное число как и в имени файла (но другое). Из label можно узнать категорию датчика - температура ядра (Core) или температура под крышкой (видимо Package id) или может ещё что-то. temp2_label соответствует temp2_input.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Нет, номер из label не нужен, там такое же бесполезное число как и в имени файла (но другое). Из label можно узнать категорию датчика - температура ядра (Core) или температура под крышкой (видимо Package id) или может ещё что-то. temp2_label соответствует temp2_input.

Я тоже так подумал, т.к. «Package id 0» совсем не похоже на «Core ХХ». Получается, что temp1_input - это температура под крышкой. Тем более что:

ls -la /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp*_input 
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp1_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp2_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp3_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp4_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp5_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp6_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp7_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp8_input
-r--r--r-- 1 root root 4096 янв 12 11:07 /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp9_input

А честных ядер у меня всего 8.

Но какому ядру тогда соответствует temp2_input? По логике выходит, что первому, но как это понять программе?

Какой идиот так придумал располагать данные???

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 2)
Ответ на: комментарий от HighMan

Но какому ядру тогда соответствует temp2_input? По логике выходит, что первому, но как это понять программе?

Отсортируй всё что «Core» по возрастанию номера файла и будет правильный порядок скорее всего. Или можно попробовать отсортировать по возрастанию числа после Core. Думаю обе сортировки всегда совпадут.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

2-socket Xeon Gold 6248R (24 core per socket, 2 thread per core):

# grep . /sys/class/hwmon/*/name
/sys/class/hwmon/hwmon0/name:pch_lewisburg
/sys/class/hwmon/hwmon1/name:i350bb
/sys/class/hwmon/hwmon2/name:coretemp
/sys/class/hwmon/hwmon3/name:coretemp

# realpath /sys/class/hwmon/hwmon{2,3}
/sys/devices/platform/coretemp.0/hwmon/hwmon2
/sys/devices/platform/coretemp.1/hwmon/hwmon3

# grep . /sys/class/hwmon/hwmon{2,3}/temp*_label |sort -V
/sys/class/hwmon/hwmon2/temp1_label:Package id 0
/sys/class/hwmon/hwmon2/temp2_label:Core 0
/sys/class/hwmon/hwmon2/temp3_label:Core 1
/sys/class/hwmon/hwmon2/temp4_label:Core 2
/sys/class/hwmon/hwmon2/temp5_label:Core 3
/sys/class/hwmon/hwmon2/temp6_label:Core 4
/sys/class/hwmon/hwmon2/temp7_label:Core 5
/sys/class/hwmon/hwmon2/temp8_label:Core 6
/sys/class/hwmon/hwmon2/temp10_label:Core 8
/sys/class/hwmon/hwmon2/temp11_label:Core 9
/sys/class/hwmon/hwmon2/temp12_label:Core 10
/sys/class/hwmon/hwmon2/temp13_label:Core 11
/sys/class/hwmon/hwmon2/temp14_label:Core 12
/sys/class/hwmon/hwmon2/temp15_label:Core 13
/sys/class/hwmon/hwmon2/temp18_label:Core 16
/sys/class/hwmon/hwmon2/temp19_label:Core 17
/sys/class/hwmon/hwmon2/temp20_label:Core 18
/sys/class/hwmon/hwmon2/temp21_label:Core 19
/sys/class/hwmon/hwmon2/temp22_label:Core 20
/sys/class/hwmon/hwmon2/temp23_label:Core 21
/sys/class/hwmon/hwmon2/temp27_label:Core 25
/sys/class/hwmon/hwmon2/temp28_label:Core 26
/sys/class/hwmon/hwmon2/temp29_label:Core 27
/sys/class/hwmon/hwmon2/temp30_label:Core 28
/sys/class/hwmon/hwmon2/temp31_label:Core 29
/sys/class/hwmon/hwmon3/temp1_label:Package id 1
/sys/class/hwmon/hwmon3/temp2_label:Core 0
/sys/class/hwmon/hwmon3/temp3_label:Core 1
/sys/class/hwmon/hwmon3/temp4_label:Core 2
/sys/class/hwmon/hwmon3/temp5_label:Core 3
/sys/class/hwmon/hwmon3/temp6_label:Core 4
/sys/class/hwmon/hwmon3/temp7_label:Core 5
/sys/class/hwmon/hwmon3/temp8_label:Core 6
/sys/class/hwmon/hwmon3/temp11_label:Core 9
/sys/class/hwmon/hwmon3/temp12_label:Core 10
/sys/class/hwmon/hwmon3/temp13_label:Core 11
/sys/class/hwmon/hwmon3/temp14_label:Core 12
/sys/class/hwmon/hwmon3/temp15_label:Core 13
/sys/class/hwmon/hwmon3/temp18_label:Core 16
/sys/class/hwmon/hwmon3/temp19_label:Core 17
/sys/class/hwmon/hwmon3/temp20_label:Core 18
/sys/class/hwmon/hwmon3/temp21_label:Core 19
/sys/class/hwmon/hwmon3/temp22_label:Core 20
/sys/class/hwmon/hwmon3/temp23_label:Core 21
/sys/class/hwmon/hwmon3/temp26_label:Core 24
/sys/class/hwmon/hwmon3/temp27_label:Core 25
/sys/class/hwmon/hwmon3/temp28_label:Core 26
/sys/class/hwmon/hwmon3/temp29_label:Core 27
/sys/class/hwmon/hwmon3/temp30_label:Core 28
/sys/class/hwmon/hwmon3/temp31_label:Core 29

Почему-то рабочих ядер 24, а температуру можно посмотреть на 30 ядрах. Нет, номера 7, 14, 15, 22, 23, 24 пропущены, так что таки 24.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от firkax

Добрый день.

Извините, не могли бы вы еще выложить /proc/stat?

Или у кого есть многопроцессорный сервер на линукс.

По температуре много копий поломали, а вот что у многопроцессорного сервера твориться в /proc/stat я выяснить забыл.

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)
Ответ на: комментарий от HighMan

А зачем ты вообще парсингом этих сомнительных директорий занимаешься? Они там еще небось окажутся разными в разных версиях ядер и прочее мозготрахание. Если программа все-равно с правами root исполняется, то может сразу с регистрами процессоров работать? Почитать даташиты на процессоры и посмотреть как это делается в ядре и скопипастить оттуда.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Извлечь температуру с датчиков мне кажется не так и просто через регистры. А что касается /proc/stat то это вообще софтовая информация (её сочиняет ядро от начала до конца).

firkax ★★★★★
()