Мониторинг температуры CPU. FreeBSD

Рубрика: FreeBSD Автор: Hottab :: Понедельник 28 сентября 2009 в 20:50

Озадачился мониторингом температуры процессора на серверах.
Сам парк серверов представляет из себя сборную солянку, а ОСи - в основном FreeBSD, 6.2 и 7.2. Процессоры - Intel.

На FreeBSD 7.2 все решилось достаточно просто.
1. Собираем ядро с поддержкой coretemp

device coretemp

2. Перезагружаемся и смотрим:

# sysctl -a | grep hw.acpi.thermal.tz0.temperature
hw.acpi.thermal.tz0.temperature: 40.0C

Подробности:

# man coretemp
CORETEMP(4) FreeBSD Kernel Interfaces Manual CORETEMP(4)

NAME
coretemp -- device driver for Intel Core on-die digital thermal sensor
...
HISTORY
The coretemp driver first appeared in FreeBSD 7.0.

UPDATE: Не все так просто оказалось. Работа этого варианта зависит от реализации acpi производителя метринской платы.
Собранная статистика .

Самое интересное - это FreeBSD 6.2 , на материнских платах Intel ( SE7520JR2 ).
Сразу скажу - использование healthd, lmmon, mbmon - вменяемых значений не дало.

Найдено и опробовано следующее решение (IPMI, пакет freeipmi):

# uname -rpm
6.2-RELEASE-p12 i386 i386

1. Пересобираем ядро с поддержкой следующих девайсов:

device smb
device smbus # System management bus
device intpm # Intel power management
device iicbus # I2C bus system
device iicsmb # I2C to SMB bridge
device iicbb # I2C generic bit-banging driver

2. Загружаем два ipmi модуля:

# kldload ichsmb.ko
# kldload ipmi.ko
# kldstat
Id Refs Address Size Name
1 11 0xc0400000 529f78 kernel
6 1 0xca101000 4000 ichsmb.ko
7 1 0xca10d000 a000 ipmi.ko
....

После добавления этих модулей смотрим /var/log/messages:

# tail /var/log/messages
kernel: ichsmb0: port 0×540-0×55f irq 17 at device 31.3 on pci0
kernel: ichsmb0: [GIANT-LOCKED]
kernel: smbus0: on ichsmb0
kernel: smb0: on smbus0
kernel: ipmi0: on smbus0
kernel: ipmi0: SSIF mode found at address 0×42 on smbus
kernel: ipmi0: IPMI device rev. 1, firmware rev. 2.81, version 1.5
kernel: ipmi0: Number of channels 0
kernel: ipmi0: Attached watchdog

3. Если все прошло хорошо, значит осталось установить утилиты для работы с IPMI. Я использовал пакет freeipmi.

# cd /usr/ports/sysutils/freeipmi
# make install clean

4. Проверяем работает ли то что нам нужно.
Все сенсоры:

# ipmi-sensors

...
25: Sys Fan 2A (Fan): 10593.22 RPM (NA/4237.29): [OK]
26: Sys Fan 2B (Fan): 7369.20 RPM (NA/3026.63): [OK]
27: Sys Fan 3A (Fan): 10593.22 RPM (NA/4237.29): [OK]
28: Sys Fan 3B (Fan): 7369.20 RPM (NA/3026.63): [OK]
29: Sys PCI Fan (Fan): 11299.44 RPM (NA/3531.07): [OK]
30: CPU 1 Therm Ctrl (Temperature): 0.00 unspecified (NA/79.95): [OK]
31: CPU 2 Therm Ctrl (Temperature): 0.00 unspecified (NA/79.95): [OK]
32: Proc1 Core Temp (Temperature): 43.00 C (5.00/99.00): [OK]
33: Proc2 Core Temp (Temperature): 44.00 C (5.00/99.00): [OK]
34: CPU1 12V (Voltage): 12.21 V (10.91/13.14): [OK]
35: CPU2 12V (Voltage): 12.15 V (10.91/13.14): [OK]
36: FrontPanel Temp (Temperature): 25.00 C (0.00/48.00): [OK]
37: Scrty Violation (Platform Chassis Intrusion): [OK]

Или только те что интересуют:

# ipmi-sensors -s 32,33
32: Proc1 Core Temp (Temperature): 43.00 C (5.00/99.00): [OK]
33: Proc2 Core Temp (Temperature): 44.00 C (5.00/99.00): [OK]

Не забываем добавить в /boot/loader.conf загрузку модулей:

# echo 'ichsmb_load="YES"' >> /boot/loader.conf
# echo 'ipmi_load="YES"' >> /boot/loader.conf

Вот собственно и все :)


4 комментариев »

  1. Comment от Anatole — 24 октября 2009 @ 14:41

    епрст! hw.acpi.thermal.tz0.temperature: 78.0C

  2. Comment от Hottab — 26 октября 2009 @ 19:03

    ну а что.. быват :)

  3. Comment от c0re — 27 ноября 2009 @ 14:45

    А у меня не работает ;(

    sysctl -a | grep hw.acpi.thermal.tz0.temperature
    hw.acpi.thermal.tz0.temperature: 8.3C

    ipmi-sensors
    1: UID Light (OEM Reserved): [OEM State = 0000h]
    2: Int. Health LED (OEM Reserved): [OEM State = 0000h]
    3: Ext. Health LED (OEM Reserved): [OEM State = 0000h]
    4: Power Supply 1 (Power Supply): [Presence detected]
    5: Power Supply 2 (Power Supply): [Presence detected]
    6: Power Supplies (Power Supply): [Fully Redundant]
    8: VRM 1 (Power Unit): [Device Inserted/Device Present]
    9: VRM 2 (Power Unit): [Device Inserted/Device Present]
    10: Fan Block 1 (Fan): [transition to Running]
    11: Fan Block 2 (Fan): [transition to Running]
    12: Fan Block 3 (Fan): [transition to Running]
    13: Fan Blocks (Fan): [Fully Redundant]

  4. Comment от Hottab — 29 ноября 2009 @ 12:15

    да..
    вот это - “sysctl -a | grep hw.acpi.thermal.tz0.temperature”
    работает далеко не везде…
    насколько я понял - это зависит от производителя и реализации acpi.
    Сейчас собираю статистику где работает , где нет.
    Pentium(R) D CPU 3.20GHz , MSI MS-9218 - не работает
    Pentium(R) D CPU 3.00GHz , MSI MS-9218 - не работает

    Celeron(R) CPU 2.40GHz , MSI MS-9249 - работает
    Pentium(R) 4 CPU 3.00GHz , MSI MS-9249 - работает
    Pentium(R) 4 CPU 3.00GHz , MSI MS-7037 - работает
    Core(TM)2 Duo CPU E7400 @ 2.80GHz, Asus P5KPL-AM - работает

    а ipmi - работает только если есть поддержка ipmi на материнской плате
    пока на всех intel материнках работало

Оставить комментарий

CAPTCHA изображение Аудио версия
Перезагрузить изображение

Copyright © 2009 Горячий [TAB].