Моя система Linux таинственно зависает время от времени. Что я могу сделать?

907
einpoklum

Я использую GNU / Linux Mint 18.3 с версией ядра 4.10.0-42. В течение последних нескольких недель, время от времени моя система зависает, без каких-либо признаков возможной проблемы (которую я заметил).

Я пробовал переключать версии ядра (раньше были 4.4.0 и 4.8.0), но безрезультатно.

Что я могу сделать, чтобы решить или обойти эту проблему?

Дополнительная информация

  • BIOS моей системы - «ASUS UEFI BIOS 3016.»
  • Мой рут находится на SSD, который не видел много действий записи
  • Зависания не начались (сразу) после некоторой перебои оборудования.
  • Кажется, никогда не бывает, когда я за компьютером, всегда или почти всегда, когда я далеко / сплю. Но, опять же, не всегда, то есть в большинстве дней этого не происходит.
  • Я запускаю XFCE со встроенной графикой, но у меня также есть nVIDIA GTX 650 Ti, не используемая для графики (которая простаивает, когда происходят такие зависания). Версия драйвера nVIDIA сейчас 387,26.
  • Когда происходит зависание, монитор продолжает отображать последнее изображение, но ничего не реагирует. Ctrl+ Alt+ Fnне работает, и компьютер не реагирует на сетевой трафик.

Моя машина

(Я добавлю любую дополнительную информацию ниже по запросу.)

/var/log/syslog до и после последнего зависания:

Jan 7 23:09:55 my_pc smartd[966]: Device: /dev/sda [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 70 to 69 Jan 7 23:39:55 my_pc smartd[966]: Device: /dev/sda [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 69 to 68 Jan 8 00:03:48 my_pc rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="947" x-info="http://www.rsyslog.com"] start Jan 8 00:03:48 my_pc rsyslogd: rsyslogd's groupid changed to 108 Jan 8 00:03:48 my_pc rsyslogd: rsyslogd's userid changed to 104 

/var/log/syslog до и после второго до последнего зависания:

Jan 7 16:07:49 my_pc smartd[933]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 111 to 112 Jan 7 16:37:49 my_pc smartd[933]: Device: /dev/sdc [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 58 to 59 Jan 7 16:37:49 my_pc smartd[933]: Device: /dev/sdc [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 42 to 41 Jan 7 16:37:49 my_pc smartd[933]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 112 to 111 Jan 7 17:07:49 my_pc smartd[933]: Device: /dev/sdb [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 69 to 70 Jan 7 17:07:49 my_pc smartd[933]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 111 to 112 Jan 7 17:37:49 my_pc smartd[933]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 112 to 111 Jan 7 17:56:58 my_pc systemd[1]: Starting Daily apt download activities... Jan 7 17:57:04 my_pc systemd[1]: Started Daily apt download activities. Jan 7 17:58:05 my_pc inadyn[1376]: . Jan 7 17:58:05 my_pc inadyn[1376]: Checking for IP# change, connecting to ip1.dynupdate.no-ip.com(34.196.162.199) Jan 7 17:58:05 my_pc inadyn[1376]: No IP# change detected, still at 11.22.33.44 Jan 7 18:07:49 my_pc smartd[933]: Device: /dev/sdb [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 70 to 69 Jan 7 19:09:55 my_pc rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="967" x-info="http://www.rsyslog.com"] start Jan 7 19:09:55 my_pc rsyslogd: rsyslogd's groupid changed to 108 Jan 7 19:09:55 my_pc rsyslogd: rsyslogd's userid changed to 104 

В /dev/sddзаписи журнала температуры странные. Вы видите, я не имеюsdd . То есть, sdaэто мой SSD, sdbи sdcэто магнитные HDD, и /dev/sr0это DVD-плеер. /dev/sddдаже не существует как специальный файл в /dev.

Строки из других журналов:

auth.log показывает некоторые китайские IP-адреса, пытающиеся подключиться к моей машине через SSH, например:

Jan 7 23:39:53 my_pc sshd[19697]: message repeated 3 times: [ Failed password for root from 218.65.30.53 port 51732 ssh2] Jan 7 23:39:56 my_pc sshd[19697]: Failed password for root from 218.65.30.53 port 51732 ssh2 Jan 7 23:39:59 my_pc sshd[19697]: Failed password for root from 218.65.30.53 port 51732 ssh2 Jan 7 23:39:59 my_pc sshd[19697]: error: maximum authentication attempts exceeded for root from 218.65.30.53 port 51732 ssh2 [preauth] Jan 7 23:39:59 my_pc sshd[19697]: Disconnecting: Too many authentication failures [preauth] Jan 7 23:39:59 my_pc sshd[19697]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.53 user=root 

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

2
Есть ли в журналах что-нибудь подозрительное? choroba 6 лет назад 1
Проверьте системные журналы, прежде чем делать что-то вроде - честно - то, что вы уже сделали. Нет никакой причины для понижения ядра, как это, в современной системе. Поскольку вы упоминаете, что эти зависания не происходят во время работы над ним, как вы узнали, что система зависла? То есть ты просыпаешься утром и видишь, что что-то не так? Может быть, проблема энергосбережения / сна? JakeGould 6 лет назад 0
@JakeGould: я возвращаюсь к этому, и он зависает, вот откуда я знаю ... Это не может быть проблемой сна - я думаю - так как система всегда включена, и большинство ночей она не зависает. einpoklum 6 лет назад 0
@choroba: вроде, но я не уверен, что это настоящая проблема или просто красная сельдь, см. редактирование. einpoklum 6 лет назад 0
Вы работаете в режиме графика / X-Windows или консоли? Когда он «завис», у вас все еще остается последнее содержимое экрана (и просто нет ответа на мышь или клавиатуру)? Или это черный экран? Можете ли вы с помощью Ctrl-Alt-Fx переключиться на другие консоли и получить там какие-либо действия? Как насчет сетевой активности - можете ли вы пропинговать компьютер из другой коробки? Dave M. 6 лет назад 0
@DaveM .: Да; да, последнее содержимое экрана; нет, не может переключиться на другую консоль, ни подключиться удаленно, ни пинговать. einpoklum 6 лет назад 0

2 ответа на вопрос

3
EvilTorbalan

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

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

#!/bin/bash    date echo "Starting device data dump"  for drive in sda sdb sdc sdd do echo "Dumping data for drive $" fdisk -l smartctl -a /dev/$ dmesg -T | tail -n50 done echo "Ended device data dump" 

Поместите это в cron, работающий каждую минуту и ​​записывающий вывод в файл с

crontab -e 

Crontab строка для добавления:

* * * * * /usr/local/bin/logcommand.sh >> /var/log/disk-problem.log 

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

Также проверьте, записан ли ваш dmesg в какой-либо файл в / var / log. dmesg должен распечатать устройство отключений и обнаружений.

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

Спасибо за подробный ответ, и я попробую это. Конечно, мне нужно подождать до следующего зависания результатов, и здесь может даже возникнуть эффект Гейзенберга, но посмотрим. einpoklum 6 лет назад 0
Проверьте все свои журналы, это всегда первое, что нужно сделать, некоторые могут содержать ответ;) Получить дату / время, когда произошло зависание, и найти его в своих журналах, что произошло до замораживания, последние строки перед смертью :) EvilTorbalan 6 лет назад 0
Таким образом, в журналах есть еще одна вещь - некоторые китайцы пытаются взломать мой ящик, используя SSH как root-пользователя. einpoklum 6 лет назад 0
@einpoklum Включен ли `root` в вашей системе? Вот как покончить с этим навсегда: Juts создает нового пользователя с привилегиями `sudo`, блокирует учетную запись root и продолжает свою жизнь. Я сомневаюсь, что взлом вызван тем, что происходит SSH-зондирование, но, возможно, стоило бы просто устранить подобные вещи, чтобы вы могли с уверенностью знать, что то, что отображается в журналах, действительно стоит обратить внимание. JakeGould 6 лет назад 0
@JakeGould: root-логин через SSH никогда не был включен в моей системе. Но, думаю, я установлю fail2ban и, возможно, изменит свой номер порта SSH. Тем не менее, я уверен, что зависания не связаны с этим. Посмотрим, что говорят журналы на диске. einpoklum 6 лет назад 0
@einpoklum Welp, вы правы ... Это не имеет никакого отношения к вашим зависаниям. Но если `root` отключен, это нормально. Fail2Ban тоже хорошо, но у меня смешанные чувства. Основная причина, по которой я его использую, заключается не в том, чтобы блокировать нежелательный доступ, а в том, что я использую данные, которые он собирает при блокировании атак, чтобы показать клиентам: «Эй! Системы проверяются все время. Не думайте, что вы не потенциальная цель. JakeGould 6 лет назад 0
Трюк "запускать скрипт каждую минуту" ... удивительно эффективен для подобных задач! Только не забудьте выключить его после того, как решите проблему. Dave M. 6 лет назад 0
Я больше не вижу / dev / sdd нигде, в любое время. Скрипт детального информационного дампа работает, но не проявляет никакого странного поведения. Журналы каждый раз показывают что-то другое, но я всегда вижу строку, такую ​​как `9 января 16:57:13 my_pc smartd [880]: Устройство: / dev / sda [SAT], SMART Атрибут использования: 190 Airflow_Tempera_Cel изменен с 68 на 69` einpoklum 6 лет назад 0
Изменение температуры должно быть нормальным в рабочих пределах, в конце концов, вы используете привод. EvilTorbalan 6 лет назад 0
Итак, до сих пор испытываю эту проблему. А теперь - я даже не получаю сообщений о температуре в журнале. einpoklum 6 лет назад 0
1
Mike

Я не знаю, помогает ли это, но у меня похожая ситуация. Система представляет собой Intel NUC под управлением Linux Mint 18.3 (XFCE) с 8 ГБ ОЗУ и твердотельным накопителем M2, очень похожим на OP.

Мои проблемы показывает только при запуске Thunderbird. Я перенаправляю все свои данные Thunderbird на другой компьютер Linux Mint, который я использую в качестве сервера. Небольшие учетные записи Thunderbird работают (просто), но большие приводят к нестабильной работе системы, а Thunderbird на самом деле не запускается вообще.

Linux Mint 18.3 (XFCE) поставляется с Linux Kernel 4.10.0-38, и это прекрасно работает в моей системе - Thunderbird работает так же, как и в других системах. Однако, если я обновлю ядро ​​Linux до 4.10.0-42 с помощью встроенного пакета обновления Mint, Thunderbird вызовет проблемы, упомянутые выше.

Я должен подчеркнуть, что эта проблема (с использованием более нового Ядра - 4.10.0-42) происходит только на моем компьютере NUC - другие системы работают нормально с обновленным Ядром.

Мое временное решение - придерживаться ядра 4.10.0-38 и полностью протестировать любые обновления перед использованием.

+1 за усилие. Я немного беспокоюсь об использовании более ранних ядер. einpoklum 6 лет назад 0
Это не похоже на работу. Я попытался переключить свою версию ядра здесь и там, и не сильно эффект. Также получаю эту проблему с 4.13.x einpoklum 6 лет назад 0

Похожие вопросы