Вопрос или проблема
Я хочу протестировать нагрузку на ноутбук с установленной Linux Mint и lm-sensors
. Я хочу записать температуру ЦП и ГП в файл и попробовал это решение, которое выводило только временной штамп UNIX в одной строке; никаких данных о температуре и без новой строки для каждого временного штампа. Пример:
Время; temp1; temp2; Физический id 0; Ядро 0; Ядро 1; Ядро 2; Ядро 3; Температура SIO; temp3
1729536016; 1729536018; 1729536020; 1729536022; 1729536024;
Как я могу изменить этот скрипт, чтобы выводить данные о температуре для каждой #-секундной метки на новой строке?
Вот один вывод $ sensors
в терминале для справки:
iwlwifi_1-virtual-0
Адаптер: Виртуальное устройство
temp1: +49.0°C
pch_cannonlake-virtual-0
Адаптер: Виртуальное устройство
temp1: +66.0°C
ucsi_source_psy_USBC000:001-isa-0000
Адаптер: ISA адаптер
in0: 35.20 V (min = +35.20 V, max = +0.00 V)
curr1: 3.00 A (max = +0.00 A)
BAT0-acpi-0
Адаптер: ACPI интерфейс
in0: 16.47 V
coretemp-isa-0000
Адаптер: ISA адаптер
Идентификатор пакета 0: +56.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 0: +48.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 1: +49.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 2: +56.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 3: +47.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 4: +51.0°C (макс = +100.0°C, крит = +100.0°C)
Ядро 5: +48.0°C (макс = +100.0°C, крит = +100.0°C)
thinkpad-isa-0000
Адаптер: ISA адаптер
fan1: 2485 об/мин
fan2: 2158 об/мин
ЦП: +49.0°C
ГП: +45.0°C
temp3: +0.0°C
temp4: +0.0°C
temp5: +0.0°C
temp6: +0.0°C
temp7: +0.0°C
temp8: +0.0°C
ucsi_source_psy_USBC000:002-isa-0000
Адаптер: ISA адаптер
in0: 0.00 V (min = +0.00 V, max = +0.00 V)
curr1: 0.00 A (max = +0.00 A)
nvme-pci-7100
Адаптер: PCI адаптер
Компонент: +41.9°C (крит = +84.8°C)
Датчик 1: +41.9°C (крит = +65261.8°C)
Датчик 2: +46.9°C (крит = +65261.8°C)
acpitz-acpi-0
Адаптер: ACPI интерфейс
temp1: +49.0°C (крит = +128.0°C)
Примечание: Я неудачно пробовал добавить дополнительные ядра (думаю, это было написано для четырехъядерного устройства, а у этого ноутбука шести ядер), в строке 2 скрипта.
Ответ или решение
Чтобы логировать температуры ЦП и ГПУ в файл во время стресс-теста на ноутбуке с Linux Mint, вы можете воспользоваться инструментом lm-sensors
. Ваша задача заключается в том, чтобы создать скрипт, который будет записывать данные о температурах в файл с необходимым форматированием и обновлениями.
Шаги по созданию скрипта для логирования температур
1. Убедитесь, что lm-sensors установлен и настроен
Сначала убедитесь, что у вас установлены пакеты lm-sensors
и sysstat
(для использования утилиты sensors
, которая помогает в мониторинге). Если вы еще этого не сделали, можете установить их с помощью следующих команд:
sudo apt update
sudo apt install lm-sensors sysstat
После установки выполните команду:
sudo sensors-detect
Следуйте инструкциям на экране, чтобы настроить lm-sensors
для вашей системы.
2. Написание скрипта для логирования
Создайте новый файл скрипта, например log_sensors.sh
:
nano log_sensors.sh
Вставьте в файл следующий код:
#!/bin/bash
# Укажите путь к файлу, в который будут записываться данные
LOGFILE="sensor_log.csv"
# Запись заголовка в файл
echo "Время; CPU Температура; GPU Температура" > $LOGFILE
# Функция для получения температур
get_temperatures() {
CPU_TEMP=$(sensors | grep -E 'Core 0|Package id 0' | awk '{print $3}' | tr -d '+°C' | head -n 1)
GPU_TEMP=$(sensors | grep 'GPU:' | awk '{print $2}' | tr -d '+°C')
if [ -z "$CPU_TEMP" ]; then
CPU_TEMP="N/A"
fi
if [ -z "$GPU_TEMP" ]; then
GPU_TEMP="N/A"
fi
echo "$(date +%s); $CPU_TEMP; $GPU_TEMP"
}
# Бесконечный цикл записи температур каждые 5 секунд
while true; do
get_temperatures >> $LOGFILE
sleep 5
done
3. Делаем скрипт исполняемым
Сохраните изменения и выйдите из редактора. После этого сделайте скрипт исполняемым:
chmod +x log_sensors.sh
4. Запуск скрипта
Теперь вы можете запустить скрипт для начала логирования:
./log_sensors.sh
Скрипт будет обновлять файл sensor_log.csv
каждые 5 секунд с текущими температурами процессора и графического процессора.
5. Остановка скрипта
Чтобы остановить скрипт, просто нажмите Ctrl + C
в терминале, где он выполняется.
6. Проверка данных
После завершения работы скрипта, вы можете открыть созданный файл sensor_log.csv
с помощью текстового редактора или команды cat
для просмотра записанных данных:
cat sensor_log.csv
В результате вы получите лог, где для каждого временного штампа будет указана температура ЦП и ГП, что поможет вам в мониторинге работы системы во время стресс-теста.
Заключение
Используя вышеописанный подход, вы сможете эффективно записывать и анализировать температуры вашего ноутбука во время стресс-тестирования. Этот метод прост, но обеспечивает все необходимые данные для анализа его работы. Не забудьте адаптировать скрипт под ваши индивидуальные условия, если это потребуется.