Моніторинг заліза в linux, linuxoid

Літо в минулому році було дуже спекотне. Вентилятори знаходяться в системному зв'язку з великими труднощами справлялися з охолодженням, хоча шум видають пристойний. Як дізнатися, що відбувається там всередині всередині, не вдаючись до контактного методу тобто перевірки пальцями. Може пора вже ставити ще один кулер? У складі будь-якого дистрибутива Linux знайдеться кілька утиліт, які допоможуть отримати відповідь на ці та інші питання.

Файлова система / proc

Взагалі велика кількість інформації можна отримати звернувшись безпосередньо до файлової системи / proc, тим більше велика частина утиліт робить те ж саме тільки виводить результат більш наочно. Для прикладу перевіримо чи включений кулер на процесорі:

$ Sudo cat / proc / acpi / fan / FAN / state

$ Sudo cat / proc / acpi / thermal_zone / THRM / temperature

temperature: 29 C

У trip_points можна вважати або задати політику управління охолодженням системи:

$ Sudo cat / proc / acpi / thermal_zone / THRM / trip_points

critical (S5): 65 C

passive: 63 C: tc1 = 4 tc2 = 3 tsp = 60 devices = 0xdf852338

active [0]: 63 C: devices = 0xdf85ff90

Можливі три варіанти політики: critical (критична температура після якої можливий автоматичний перехід в сплячий режим), passive (зменшення частоти процесора) і active (активний режим роботи кулера). При чому останніх може бути кілька ступенів від 0 до 9, кількість знову ж таки залежить від обладнання. Команда на зміну цих параметрів виглядає так "echo -n« critical: hot: passive: active0: ...: activeX »> trip_points". наприклад:

$ Echo "105: 100: 100: 78: 70: 60: 50»> / proc / acpi / thermal_zone / TZ0 / trip_points

$ Sudo cat / proc / acpi / thermal_zone / THRM / cooling_mode

cooling mode: active

Встановлювати пасивний режим дозволено не у всіх пристроях. Хоча сучасні ноутбуки його зазвичай підтримують. Частота опитування сенсорів вказується в polling_frequency. Але зазвичай він відключений:

$ Sudo cat / proc / acpi / thermal_zone / THRM / polling_frequency

Це означає, що сам пристрій здатне генерувати асинхронні переривання, в разі змін, тому спостерігати за ним немає сенсу. Більш детальну інформацію про thermal_zone можна знайти на сайті acpi.sourceforge.net/documentation/thermal.html. Тепер перейдемо до спеціалізованих утиліт.

Утиліта lm-sensors

Раджу перш ніж кидатися в Інтернет спочатку подивіться, що є в репозитарії пакетів, наприклад в Debian, Ubuntu і інших дистрибутивах використовують apt, команда:

$ Sudo apt-cache search monitoring

$ Sudo apt-get install lm-sensors sensord

Заодно встановимо і демон sensord, його завдання збирати інформацію в syslog. Він же може в разі неприємностей видати попередження. Для початкового налаштування системи моніторингу слід використовувати утиліту sensors-detect:

Після запуску утиліти тобі буде влаштований справжній допит з пристрастю, слід відповідати чесно, нічого не приховуючи.

Хоча в разі сумніву можна вирішувати всі тести. Утиліта пройдеться по всіх шинам і пристроїв, перебере всі скомпільовані модулі і вибере ті, від яких є хоч якийсь зиск. Якщо буде виведена хоч пара «Success!» Вважай, що пощастило. А значить моніторингу бути. Після закінчення утиліта запросить створити настройки відповідно до знайденим обладнанням «I will now generate the commands needed to load the required modules» і видасть рядок, яку необхідно вставити в файл / etc / modules. Вибравши на наступному кроці Yes можна дозволити їй зробити це самостійно. Раджу перевірити наявність в /lib/modules/2.6.x/modules всіх модулів, які порекомендував завантажити sensors-detect, скрипт іноді біжить попереду поїзда або навпаки відстає. Тому цілком можливо, що таких модулів в системі просто немає. Як варіант можна спробувати завантажити модулі вручну за допомогою «modprobe названіе_модуля». Тепер, щоб отримати інформацію від сенсорів, викликаємо утиліту sensors без параметрів, можна вже під звичайним користувачем:

Adapter: SMBus I801 adapter at c800

VoltA1_5: +1.49 V (min = +1.42 V, max = +1.58 V)

Volt1_5: +1.52 V (min = +1.45 V, max = +1.60 V)

Volt3_3: +3.23 V (min = +3.13 V, max = +3.47 V)

Volt5: +5.20 V (min = +4.74 V, max = +5.26 V)

Volt12: +12.01 V (min = +11.38 V, max = +12.62 V)

FanCPU: 3540 RPM (min = 4000 RPM)

TempCPU: + 28C (low = + 10C, high = + 55C)

TempMB1: + 31C (low = + 10C, high = + 55C)

TempMB2: + 34C (low = + 10C, high = + 55C)

vid: +1.525 V (VRM Version 9.1)

Результат в різних системах буде відрізнятися і залежить від підтримки обладнання. Якщо зовсім вже глухо, тоді за відповіддю доведеться звернутися до документації проекту. Параметри виведення на екран налаштовуються у файлі /etc/sensors.conf. Наводити його повністю немає сенсу. Все там все зрозуміло, та й все настройки суто індивідуальні. Шукаємо рядок відповідну своєму чіпу, в нашому прикладі це lm85 і правимо при необхідності:

$ Sudo mcedit /etc/sensors.conf

chip «lm85c- *» «adm1027- *» «adt7463- *» «lm85- *» «lm85b- *»

label in0 «V1.5»

label in1 «VCore»

label temp1 «CPU Temp»

label temp2 «Board Temp»

label fan1 «CPU_Fan»

# Установка ліміту вольтажа

set in0_min 1.5 * 0.95

# Set in0_max 1.5 * 1.05

set fan1_min 4000

І так далі. Хотілося б звернути увагу на утиліту KSensors (ksensors.sourceforge.net), яка є графічним інтерфейсом до sensors для середовища KDE. В Ubuntu встановлюється він звичайним чином:

$ Sudo apt-get install ksensors

Тепер запускаємо через меню K або з командного рядка. Клацаємо по з'явився значку і вибираємо Configure.

Потім просто переходимо по вкладках і включаємо прапорець Visible в тих параметрах які хочемо бачити. Результат буде виведений в панелі завдань (якщо активований Dock) і в окремому вікні, яке відкривається подвійним клацанням по значку KSensors. Крім параметрів контрольованих за допомогою утиліти lm-sensors, можна виводити стан пам'яті, swap і деяку іншу інформацію. Для кожного параметра можна виставити інтервал оновлення, і реакцію системи при перевищенні деякого значення (виконати команду або програти звук). Щоб KSensor автоматично запускався при завантаженні системи, не забудь встановити «Autostart KSensors on KDE startup» у вкладці «Global settings».

Налаштування демона sensord виробляються в файлі / etc / default / sensord.

$ Sudo mcedit / etc / default / sensord

# Інтервал для сканування на попередження (30s, 1m, 1h)

# Інтервал між вимірами для запису в журнал

# Чіп беремо з sensors.conf

# Інтервал, за замовчуванням 5 хвилин

У комплекті lm-sensors є утиліта pwmconfig, яка перевірять можливість зміни швидкості кулерів. Якщо така функціональність є, для настройки швидкості враження слід використовувати утиліту fancontrol. Конфігураційний файл для неї створюється за допомогою pwmconfig.

Утиліта (x) mbmon

$ Sudo apt-get install mbmon xmbmon

Тепер можна запускати без будь-яких налаштувань:

Temp. = 30.0, 24.0, 127.0; Rot. = 3308, 0, 6026

Vcore = 1.14, 1.52; Volt. = 3.28, 5.00, 11.49, -6.62, -1.83

Запустивши xmbmon всю цю інформацію можна побачити у вікні програми.

комбайн GKrellM

Популярна програма моніторингу GKrellM (www.gkrellm.net) вміє виводити інформацію про завантаження процесора, пам'яті, роботу мережевих інтерфейсів, наявність пошти, управляти програвачами та інше.

Всі можливості реалізуються за допомогою підключення плагінів, тому можна відібрати те що дійсно потрібно. Для самостійної збірки потрібно gtk 2.0, gdk 2.0, glib 2.0, але в репозитарії Ubuntu він вже є, ввівши комманду «sudo apt-cache search gkrellm», ви знайдете не тільки саму програму, але і велика кількість плагінів і тим до неї, здатних задовольнити найвишуканіші запити користувачів. Нас же цікавить моніторинг температури процесора і робота кулерів, тому клацаємо один раз правою кнопкою мишки по даті і у вікні настройки вибираємо Вбудовані-Датчики. Розгортаємо всі пункти і встановлюємо прапорець навпроти тих датчиків які нас цікавлять. Після активації датчика в вікні праворуч можна встановити інше значення множника і вказати розташування датчика в вікні GKrellM. Для температурних датчиків переконайтеся, що у вкладці Параметри знятий прапорець Температура-За Фарангейт. Тут же можна вказати і команду для запуску mbmon, і контролювати з його допомогою параметри в тому числі і на віддаленій системі. Натиснувши кнопку Сигнали, вказуємо допустимі параметри для конкретного датчика, при перевищенні якого буде видаватися сигнал попередження або тривоги. Тут взагалі то все просто ви швидко розберетеся, що до чого тим більше інтерфейс локалізовано.

Ось в принципі і все про що хотілося сьогодні розповісти, хоча це далеко не все, що є в Linux. Але тепер ви будете завжди знати що відбувається з вашим процесором. Linux forever!

Схожі статті