Ubuntu продолжает зависать

Вопрос или проблема

У моего ноутбука есть SSD и 16 ГБ ОЗУ, поэтому я знаю, что проблема не в характеристиках.

Этот ноутбук раньше работал на Windows, и у меня никогда не было проблем с производительностью, но это изменилось с тех пор, как я перешел на Ubuntu.

Я сделал это, потому что работаю с Docker, а он работает быстрее на Linux.

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

У кого-нибудь есть идеи, что может вызывать это? Это происходит как минимум 3 раза в день, и я в ярости.

Я обычно использую Docker, Firefox, Discord и VSCode одновременно. Я использовал все это на Windows и никогда не имел проблем (за исключением того, что Docker работает гораздо лучше на Linux).

Есть какие-либо мысли?

Я сообщаю, что наблюдаю такую же проблему на более старом ноутбуке с SSD и всего 3 ГБ ОЗУ. Я следил за использованием ОЗУ и свопа, и временно увеличивал ОЗУ, но это не повлияло на проблему. У меня работал Docker с Portainer, но ничего не делал. Зависание происходило очень быстро в любой сессии Firefox или Vivaldi, но не в сессии Dillo. Зависание также происходило в Thunderbird в тот момент, когда Thunderbird, возможно, пытался выйти в интернет.

Когда начинается зависание, браузер и большинство операций на рабочем столе становятся неотзывчивыми, но мышь все еще перемещает указатель. Клавиатура со временем окончательно становится неактивной. Например, индикатор Caps Lock работает до какого-то момента. Время от времени возникают краткие моменты жизни, пока не произойдет еще одно зависание, как неотзывчивое всплывающее сообщение. Если я достаточно быстр и подготовлен, я могу переключиться в режим TTY и завершить браузер в HTOP. Жизнь восстанавливается после этого. Если я ничего не делаю, вся система в конечном итоге становится неотзывчивой. Неважно, используем ли мы рабочий стол Ubuntu или Kubuntu. Я сейчас использую Kubuntu 22 с “nomodeset” и без Docker. Это более старый ноутбук. “Nomodeset” принес другие улучшения. Пока зависаний не было без запущенного Docker (я бы никогда не смог бы опубликовать это сообщение), но я пока его не запускал. Я хотел бы больше информации для устранения неполадок и также больше времени без зависаний в текущем состоянии, прежде чем снова начать работать с Docker. Во всех моих тестах я запускал только браузер и уделял внимание использованию ОЗУ. Я также увеличил доступное пространство для свопа, но это тоже не помогло.

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

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

У меня есть такая же модель, переработанный ноутбук, работающий на Ubuntu 20.4 в режиме постоянной работы над задачами Docker. Я никогда не видел этой проблемы с ним. Единственное физическое различие между ними, кроме ОЗУ, заключается в том, что в этом, у которого есть проблемы, нет аккумулятора. Я не помню, тестировал ли я его с батареей другого ноутбука.

Я вижу много случаев этой проблемы, т.е. зависание в браузере или почтовом приложении, которые сообщаются в интернете. Некоторые из них уходят далеко в прошлое. Я никогда не вижу никаких определенных объяснений того, что происходит или что именно диагностически проверить. Я думаю, что мой пост может быть полезным. Мой личный опыт с этой проблемой, должно быть, поможет. Это противоречит тому, что Ask Ubuntu говорит о том, что должно быть в “ответе”. Думаю, мне стоит извиниться за такое мнение.

Это довольно неясно, но в случае, если это связано с чрезмерным использованием ОЗУ, вы можете ограничить размер сегмента данных процессов по вашему выбору. Один из простых способов сделать это — открыть окно терминала bash, ввести, скажем, ulimit -d 4194304 (размер сегмента данных ограничен до 4 ГБ). Все, что запускается из этого окна (не из меню менеджера сессий или другого окна терминала), будет иметь ограниченный размер сегмента данных, а значит, и использование ОЗУ. Если запросы на выделение памяти выйдут из-под контроля по какой-то причине, запросы brk() в какой-то момент будут отклонены, что может либо заставить процесс адаптироваться к этой ограниченной среде, либо (более вероятно) завершиться с ошибкой.

Я систематически использую это для своих сессий Firefox с тех пор, как у меня был плохой опыт, посещая сомнительный сайт, из-за которого вся моя система замерзла несколько лет назад. Я настроил эквивалентный скрипт на Windows, используя Job Objects.

Ответ или решение

Причины зависания Ubuntu и их решение

Зависания операционной системы Ubuntu, как у вас, могут быть вызваны многими факторами, несмотря на достаточные аппаратные характеристики (SSD и 16 ГБ ОЗУ). Ниже приведены основные возможные причины и способы их устранения.

1. Программные конфликты

Ваш случай использования включает Docker, Firefox, Discord и VSCode. Эти приложения могут конфликты между собой или с драйверами. Рекомендуется:

  • Отключите Docker: Поскольку вы отметили, что система не зависает без его работы, попробуйте запускать Docker только тогда, когда это необходимо, минимизировав его влияние на систему.
  • Проверьте расширения браузера: Иногда плагины могут вызывать зависания. Отключите их и проверьте на наличие улучшений.
  • Обновите ПО: Убедитесь, что вы используете последние версии всех приложений и самой системы Ubuntu. Это может устранить известные ошибки.

2. Использование ресурсов

Хотя 16 ГБ ОЗУ достаточно для большинства задач, одновременное использование ресурсов может привести к замедлению системы. Учтите следующее:

  • Статистика ресурсов: Используйте команды htop или top, чтобы проверить использование ресурсов системой. Возможно, какие-то процессы потребляют много ОЗУ или ЦП, что приводит к зависаниям.
  • Ограничение использования ОЗУ: Установка лимитов для процессов, как вы уже обсуждали, может помочь. Выполнив ulimit -d 4194304 в терминале перед запуском Firefox, вы сможете ограничить его потребление ОЗУ, что может снизить вероятность зависания.

3. Проблемы с драйверами

Недостаточно совместимые или устаревшие драйверы могут быть причиной зависаний. Чтобы предотвратить это:

  • Установите драйвера из PPA: Попробуйте установить обновленные драйверы для графической карты через PPA, такие как ppa:graphics-drivers/ppa. Это может улучшить работу системы.

4. Логи и диагностика системы

Вы упомянули, что просматривали логи, но не находили никаких признаков проблем. Рекомендуется:

  • Распределение журналов: Посмотрите в /var/log/syslog и /var/log/kern.log. В них могут содержаться ошибки, которые произошли до или во время зависания.
  • DNS или сеть: Возможно, зависания связаны с сетевыми проблемами. Проверьте настройки сети и попробуйте использовать другой DNS (например, Google DNS – 8.8.8.8).

5. Температурные проблемы

Хотя вы говорите, что система, скорее всего, не перегревается, стоит проверить:

  • Мониторинг температуры: Установите утилиты, такие как lm-sensors, чтобы контролировать температуры компонентов системы и убедитесь, что они находятся в пределах нормы.
  • Очистка вентиляции: Убедитесь, что воздухозаборники и вентиляторы ноутбука не забиты пылью, так как это может вызвать перегрев.

Заключение

Зависания в Ubuntu могут быть вызваны сочетанием программных и аппаратных проблем, начиная от конфликтов программ до неправильной конфигурации драйверов. Следите за использованием ресурсов, протестируйте приложения поочередно, поддерживайте систему в актуальном состоянии и контролируйте закрытые процессы и логи для лучшей диагностики. Если проблемы продолжатся, рассмотрите возможность обращения на специализированные форумы или в техподдержку для дальнейшей диагностики.

Оцените материал
Добавить комментарий

Капча загружается...