Отслеживать температуру с течением времени
Есть ли приложение, которое позволяет отслеживать температуру процессора с течением времени? Я знаю о том, что приложение датчиков от lm-sensors
делает, но что, если я хочу сравнить тепловую нагрузку с загрузкой процессора с N-недель назад до сегодняшнего дня?
Я мог бы написать один на C, но мне интересно, если такое программное обеспечение уже существует.
3 ответа
Мы создали инструмент для этого, который называется s-tui. Это позволяет отслеживать частоту температуры и загрузку процессора с течением времени. Вы также можете сохранить данные в CSV.
Код доступен на github: https://github.com/amanusk/s-tui
Вот как выглядит снимок экрана
Простейшая установка с помощью pip (менеджер пакетов python)
sudo pip install s-tui
Установите pip, если у вас его нет
sudo apt-get install python-pip
Установка также доступна через ppa, но она не имеет последних версий необходимых библиотек python.
sudo add-apt-repository ppa:amanusk/python-s-tui
sudo apt-get update
sudo apt-get install python-s-tui
Тогда беги s-tui
или же sudo s-tui
Ключевые особенности:
- Работает в терминале
- Позволяет запустить стресс-тест для проверки стабильности системы (требуется
stress
быть установленным) - Отслеживание температуры и максимальной температуры за сеанс
Вы можете скачать и запустить исполняемый файл напрямую
https://github.com/amanusk/s-tui/releases/
chmod +x s-tui
./s-tui
Все эти инструкции доступны в README на github.
Существует простой в использовании пакет мониторинга monitorix, написанный на Perl. Оно использует rrdtool
сохранить старые данные и предоставляет собственный мини-веб-сервер, чтобы вы могли легко просматривать графики последних действий, см. скриншоты.
Для Ubuntu нет пакета, но, поскольку он не требует компиляции, его довольно просто установить, смотрите github.
Он регистрирует температуру процессора и нагрузку, и предоставляет их отдельные графики, но я не знаю, насколько просто было бы создать свой собственный график. Вы всегда можете напрямую использовать rrdtool для отображения данных, но для его правильного использования требуются некоторые усилия.
Просто запустите работу cron.
- Создайте папку как temp_logs.
Поместите следующий файл в качестве сценария оболочки в эту папку, например,
temp_logging.sh
, Сделайте скрипт исполняемым.#!/bin/bash # Log temperatures of all cores individually. # Log temperature over some time using this script run as cron job. # Set your interval given as days, hours, minutes or seconds as the cron job itself. #---------------------------------------------------------------------- # log might become big, hence remove one line each after 5000 lines. lines=$(wc -l < temp_log.txt) if ["$lines" -gt 5000 ] then sed -i '1d' temp_log.txt fi #---------------------------------------------------------------------- #output will be a txt file `temp_log.txt` which will have n columns for n cores and day and time. ( sensors | grep -A 0 'Core' | cut -c18-21|xargs | awk '{ sum += $1; n++ } END { if (n > 0) print sum / n; }' ; sensors | grep -A 0 'Core' | cut -c18-21|xargs; echo $(date +"%m/%d/%Y %T" )) | xargs
Установите задание cron для запуска этого скрипта в соответствии с вашими требованиями. Получить журнал, накопленный в файле
temp_log.txt
Например, для каждой регистрации каждые 5 минут. тогда линия cron будет.
*/5 * * * * /path/to/script/temp_logging.sh
Вывод: первый столбец - средний, следующие 6 - для отдельных ядер, а затем день и время.
25 25.0 25.0 26.0 25.0 27.0 25.0 06/10/2017 14:54:59
25 25.0 25.0 26.0 25.0 27.0 25.0 06/10/2017 14:55:00
25 25.0 25.0 25.0 25.0 26.0 26.0 06/10/2017 14:55:01
25 25.0 25.0 25.0 25.0 26.0 26.0 06/10/2017 14:55:01
26 26.0 25.0 25.0 25.0 26.0 25.0 06/10/2017 14:55:02