LINUX.ORG.RU

Странное поведение компьютера при выключении

 ,


0

1

Есть компьютер, он же является сервером 1С+PostgreSQL на Ubuntu Server 22.04.

Характеристики компьютера:

  • Материнская плата: MSI X299 RAIDER
  • Процессор: Intel Core i7-7820X
  • ОЗУ: 64 Гб
  • Накопители: 2 NVMe накопителя, объединенные в software-raid для операционной системы; 2 SSD накопителя для базы данных PostgreSQL, также объединены в software-raid; 1 HDD для бекапов.

Ситуация следующая: при первом выключении компьютера, не важно как оно произошло, физически через кнопку в корпусе или командой poweroff в терминале - компьютер выключается, а потом сразу же снова сам включается. Поведение его похоже будто я послал команду reboot, а не poweroff. То есть нет такого, что тухнут все лампочки, останавливаются вентиляторы и через 1 секунду он запускается. И только во второй раз он штатно и точно выключается.

Посмотрел все пункты в BIOS в разделе Power Management и Wake Up, все выключено, так что BIOS точно тут ни при чем. BIOS стоит самой последней версии. Блок питания недавно заменял на новый и качественный, так что он тоже тут ни при чем. До замены блока питания эта проблема тоже была.

Под подозрением остается только ОС, а именно Ubuntu Server 22.04. Помню, что при настройке сервера вводил вот эту команду:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

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

Также при настройке я ещё в /etc/sysctl.conf добавил строку vm.swappiness=1, для того чтобы система использовала файл подкачки только в случае крайней необходимости. Но эта настройка тоже, по идее, не может вызывать такое поведение компьютера.

Заметил еще один нюанс, что если компьютер работает недолго (где-то до 8 часов) - то первое выключение происходит штатно и без проблем. Описанная выше проблема начинается только тогда, когда компьютер проработает достаточно долгое время (где-то от 12 часов и более).

Может у кого какие идеи есть, куда и в какую сторону копать… Заранее благодарю за отклик и помощь!

Ситуация следующая: при первом выключении компьютера, не важно как оно произошло, физически через кнопку в корпусе или командой poweroff в терминале - компьютер выключается, а потом сразу же снова сам включается. Поведение его похоже будто я послал команду reboot, а не poweroff. То есть нет такого, что тухнут все лампочки, останавливаются вентиляторы и через 1 секунду он запускается. И только во второй раз он штатно и точно выключается.

Похоже на сбой ACPI. Я бы обновил BIOS, как советуют выше, и еще проверил бы на всякий случай подключение ACPI-кабеля к матернике. Еще можно посмотреть логи ядра на предмет чего-то необычного на этапе отключения.

Также при настройке я ещё в /etc/sysctl.conf добавил строку vm.swappiness=1, для того чтобы система использовала файл подкачки только в случае крайней необходимости. Но эта настройка тоже, по идее, не может вызывать такое поведение компьютера.

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

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

Это недавно такое случилось иди всегда было?

Ну история такова: раньше на этой системе стояла Ubuntu Server 18.04. Пришел час все обновлять, как Ubuntu, так и 1С, так и PostgreSQL. И в итоге сейчас стоит Ubuntu Server 22.04 настроенная с нуля. Если мне память не изменяет, то когда стояла Ubuntu Server 18.04 такой проблемы не было, но могу ошибаться.

Биос последний? Батарейка на плате не севшая?

Перед тем как накатывать новую Ubuntu Server 22.04 с нуля - я поменял батарейку на новую и обновил биос до последней версии.

ethernal_store
() автор топика
Ответ на: комментарий от annulen

Похоже на сбой ACPI. Я бы обновил BIOS, как советуют выше, и еще проверил бы на всякий случай подключение ACPI-кабеля к матернике. Еще можно посмотреть логи ядра на предмет чего-то необычного на этапе отключения.

Биос обновлен до последней версии. Что за ACPI кабель, первый раз слышу? Имеется в виду питание материнской платы 24-пин?

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

Спасибо за замечание, учту. Я вообще зачем эту настройку сделал - чтобы постгрес не скидывал ничего в своп, тем самым не уменьшал ресурс SSD накопителей, на которых стоит Ubuntu Server.

ethernal_store
() автор топика
Ответ на: комментарий от ethernal_store

Выложи dmesg на pastebin.

и обновил биос до последней версии

Посмотри, не выходило ли исправления. Если интересно разобраться - попробуй откати до версии, где нормально работало.

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

Выложи dmesg на pastebin.

Вот: ссылка

Посмотри, не выходило ли исправления. Если интересно разобраться - попробуй откати до версии, где нормально работало.

Вот как раз сейчас заходил и смотрел что есть по версиям биоса. Самая новая версия биоса там E7A94IMS.1H0, датированная 20-09-2022. А у меня сейчас стоит версия E7A94IMS.1H4, датированная 09-07-2022. И версии этой что у меня сейчас стоит на сайте нету. Хмм, странно. Попробую тогда обновить биос, если получится. Но если тебе не сложно будет, то посмотри мой вывод dmesg, может найдешь зацепку.

ethernal_store
() автор топика
Ответ на: комментарий от annulen

Не знаю, что можно вытащить из dmesg, в нем нет лога выключения. Было бы интереснее глянуть на /var/log/messages с полной сессией от включения до выключения

Имелось в виду /var/log/syslog? Если да, то вот кусок с него.

1 строка (13:00:12) - это я послал первую команду выключения.

97 строка (13:01:04) - это он сам включился.

2091 строка (13:01:42) - это я уже снова, во второй раз, послал команду на выключение, выключился уже нормально.

ethernal_store
() автор топика

У меня иногда подобное на одном из компов происходит при выключении кнопкой ещё до запуска ОС (т.е. комп запустился, но я вдруг решаю что включать его не надо, жму кнопку ещё раз чтоб он выключился назад, а он вместо этого ребутается). Раньше не было, и я ничего не обновлял и не менял. Думаю это «естественный износ» материнки (ей 13-14 лет) так может влиять.

Может какие wake up on keyboard/mouse/lan активируются ошибочно при каких-то обстоятельствах.

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

У меня иногда подобное на одном из компов происходит при выключении кнопкой ещё до запуска ОС (т.е. комп запустился, но я вдруг решаю что включать его не надо, жму кнопку ещё раз чтоб он выключился назад, а он вместо этого ребутается). Раньше не было, и я ничего не обновлял и не менял. Думаю это «естественный износ» материнки (ей 13-14 лет) так может влиять.

Материнская плата, можно сказать, относительно свежая. Точно не назовешь ее старой.

Может какие wake up on keyboard/mouse/lan активируются ошибочно при каких-то обстоятельствах.

Если абсолютно все wake up отключены в BIOS, то как ошибочно они могут активироваться? Разве что BIOS багнутый.

ethernal_store
() автор топика
Ответ на: комментарий от firkax

Я даже сделал фотографию этих настроек в биосе, когда сегодня их просматривал. ТЫК

Там, кстати, в Wake Up Event By есть выбор двух вариантов: BIOS и OS. При выборе OS все варианты Wake Up Event исчезают, то есть при выборе параметра OS операционная система управляет пробуждением компьютера.

ethernal_store
() автор топика

Если честно, не знаю зачем эту команду вводил

Не помешает.

ведь серверные версии Linux априори не переходят никогда в спящий/гибридный режим

Нет, не априори, отправишь — перейдёт, если поддерживается железом.

vm.swappiness=1

Это плохая идея, своп — это не расширение рамы, ты замедляешь систему.

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

Это плохая идея, своп — это не расширение рамы, ты замедляешь систему.

Просто во многих ресурсах читал, что на серверах где крутится какая-то БД и где много ОЗУ - то обрезают своп этим параметром. Якобы операции БД начинают при этом обрабатываться только в оперативной памяти, соответственно увеличивается быстродействие БД. То есть, лучше вернуть как было по стандарту при установке - 60?

ethernal_store
() автор топика
Ответ на: комментарий от ethernal_store

И версии этой что у меня сейчас стоит на сайте нету. Хмм, странно.

Ага, есть вероятность, что отозвали.

В dmesg ничего подозрительного вроде бы нет.

Вообще крайне весёлая материнка: https://forum-en.msi.com/index.php?threads/linux-does-not-boot-with-x299-raider-acpi-error.292271/

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

Если разработчики БД рекомендуют такую настройку, то ОК.

В своп идут давно неиспользуемые данные, которые иначе будут вообще выкинуты с твоей настройкой и потом снова считаны с диска, когда потребуются, а из свопа быстрее получается, в этом смысл. Если мало памяти, то надо добавлять память, а не запрещать своп.

Забей в гугл название БД, rhel и swapinness, и найдёшь рекомендованные варианты для энтерпрайза, это хорошая точка отсчёта для дальнейших экспериментов.

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

Забей в гугл название БД, rhel и swapinness, и найдёшь рекомендованные варианты для энтерпрайза, это хорошая точка отсчёта для дальнейших экспериментов.

Собственно, на хабре есть статья по этому поводу.

vm.swappiness — это еще один параметр ядра, который может влиять на производительность базы данных. Этот параметр используется для управления поведением подкачки (swappiness) (подкачки страниц в память и из нее) в Linux. Значение варьируется от 0 до 100. Он определяет, сколько памяти будет выгружено или выгружено. Ноль означает отключение обмена, а 100 означает агрессивный обмен.

Вы можете получить хорошую производительность, установив более низкие значения.

Установка значения 0 в более новых ядрах может привести к тому, что OOM Killer (процесс очистки памяти в Linux) убьет процесс. Таким образом, можно безопасно установить значение 1, если хотите минимизировать подкачку. Значение по умолчанию в Linux — 60. Более высокое значение заставляет MMU (блок управления памятью) использовать больше пространства подкачки, чем ОЗУ, тогда как более низкое значение сохраняет больше данных/кода в памяти.

Меньшее значение — хорошая ставка на улучшение производительности в PostgreSQL.

Поэтому, я и выставил этот параметр, исходя из подобных статтей.

ethernal_store
() автор топика
Ответ на: комментарий от Dimez

Вообще крайне весёлая материнка: https://forum-en.msi.com/index.php?threads/linux-does-not-boot-with-x299-raider-acpi-error.292271/

Я даже могу больше сказать, раньше ещё когда на системе стоял Ubuntu Server 18.04 - в биосе был отключен hyperthreading. Потому что с включенным hyperthreading сервак постоянно перезагружался. :) Как отключили hyperthreading, стал стабильно работать. После того как обновил биос, естественно включил назад hyperthreading, все ядра и потоки работают, система работает стабильно. Кроме, понятное дело, той проблемы с отключением.

ethernal_store
() автор топика
Ответ на: комментарий от ethernal_store

Я взял с вики Арча. https://wiki.archlinux.org/title/Wake-on-LAN#Fix_by_Kernel_quirks на форумах пишут, что помогает, независимо от состояния WOL.

А ваша ссылка интерестнее. Там написано, что ASRock H87 PRO 4 включается от клика мыши. Не написано какая мышь, но на материнке PS/2 только под клавиатуру. Получается, есть материки с включением от usb-мыши. Или эти материнки притворяются вылюченными, а на самом деле спят...

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

Бред собачий там написан про vm_swappiness. Этот параметр определяет приоритет выбора того, как получать свободную память - сносить кэш или сносить в свап страницы данных. И неосторожные действия с этим параметром могут легко скатить систему в трэшинг

no-dashi-v2 ★★
()
Ответ на: комментарий от Dimez

Эээ. А немного более linux friendly производителя матплаты нельзя было взять? :) Asus/Gigabyte/Asrock?

Ну подбором конфигурации компьютера не я занимался. :) Вот мне и приходится работать с тем что имеется. :)

Тут я думаю скорее проблема в самой модели материнской платы, что она изначально вышла не очень удачной. А в не в компании MSI. Среди тех же Asus/Gigabyte/Asrock тоже бывают встречаются неудачные модели материнских плат… Так что тут как повезёт.

ethernal_store
() автор топика
Ответ на: комментарий от amd_amd

и посмотри результат

Я в форуме MSI и в отзывах на эту материнскую плату читал, что у MSI есть «патологическая нелюбовь к спящему режиму». Что, мол, при выходе из спящего режима можно спалить процессор. Вроде бы выглядит абсурдно, но это имело место быть и это были не единичные случаи. Поэтому я и принудительно отключил любые спящие и гибридные режимы, «на всякий случай».

ethernal_store
() автор топика
Ответ на: комментарий от Rossiks

Яб смотрел в строну БП.

Я ж в первом посте писал…

Блок питания недавно заменял на новый и качественный, так что он тоже тут ни при чем. До замены блока питания эта проблема тоже была.

ethernal_store
() автор топика
Ответ на: комментарий от hargard

Ядро 5.17 ПК не выключается

Посмотрел твой топик, у тебя проблема была немного иная. Я так понял, у тебя компьютер вообще не хотел выключаться. У меня же компьютер выключается, но со второго раза. Плюс у тебя были включены опции пробуждения в BIOS, у меня же все выключено.

Заполни вручную содержимое файлов в /etc/systemd/network

У меня стоит Ubuntu Server 22.04, там управление сетью через netplan. В директории network пусто.

ethernal_store
() автор топика
Ответ на: комментарий от Rossiks

Привет! Была похожая проблема, причем проявлялась как на fedora так и на mint linux. При выключении комп перезагружается. Для себя я определил проблему, это кривые драйвера на блютуз. Когда включен режим полета то комп перезагружается. Стоит включить блютуз, или сделать так что он выключен, но не включен режим полета - то все нормально.

karr
()