Рейтинг:0

Как отладить медленную гибернацию

флаг sd

У меня есть несколько ПК/ноутбуков, на которых установлена ​​последняя версия Ubuntu 20.04 с 64-битным ядром 5.4.0-74-generic, как это предусмотрено репозиториями Ubuntu по умолчанию. Один из них, довольно обычный ПК с процессором Intel i3, уходит в спящий режим чуть более 2 минут, так как я обновился с 18.04 до 20.04.

Различные ресурсы, которые я нашел об отладке спящего режима, в основном охватывают пробуждение или полный отказ от приостановки, но не приостановку на диск, которая занимает очень много времени. Пробуждение работает нормально и занимает всего несколько секунд. Как я могу узнать, что так долго уходит в спящий режим? Есть ли что-то вроде systemd-анализировать вину для гибернации?

Пока я добавил initcall_debug no_console_suspend к GRUB_CMDLINE_LINUX_DEFAULT в /etc/по умолчанию/жратва и это действительно показывает консоль, однако ничего не показывается, что объясняет долгое время. Он показывает «Обнаружено зависание аппаратного блока» для сетевого интерфейса. Но это появляется в самом начале гибернации, и я думаю, что это ожидаемое поведение.

я использую спящий режим systemctl чтобы инициировать его. Отключение питания занимает 2 минуты даже при запуске от имени пользователя root на консоли без других зарегистрированных пользователей или пользовательских процессов.

Рейтинг:0
флаг sd

Мой совет:

  1. Решить задать вопрос @ askubuntu.com и относитесь к этому серьезно ;) Собирайте данные, воспроизводите проблемы с минимальными настройками и будьте конкретными.

  2. Убедитесь, что места подкачки достаточно. Команда бесплатно дает объем оперативной памяти ("Mem") и Swap. Общий объем подкачки должен быть больше, чем общий объем ОЗУ. Я понял, что в какой-то момент добавил ОЗУ, но не увеличил размер раздела подкачки. Редактировать (2021-06-07): Разница в размере составила ~ 1 ГБ.После увеличения размера гибернация была многократно быстрее, но я все же думаю, что это был артефакт, вызванный изменением скорости записи SSD, содержащего раздел подкачки. (См. также следующий пункт.)

  3. Насколько быстрым должен быть спящий режим? По сути, во время приостановки на диск вся оперативная память записывается на диск. Объем оперативной памяти и скорость записи на диск определяют необходимое время. Я искал свой раздел подкачки и проверил, сколько времени потребуется, чтобы обнулить его, используя дд, если=/dev/ноль. дд сообщил о скорости 108 МБ/с. Запись 7 ГБ заняла ~ 65 с. У меня на компе 8 Гб. Таким образом, я должен ожидать, что спящий режим займет не менее минуты.

  4. Попробуй отладка путем удаления частей системы: Отсоедините оборудование, которое не требуется. Спящий режим сразу после новой загрузки, с предварительным входом в систему или без него.

  5. Добавлять initcall_debug no_console_suspend в командную строку ядра, как описано в вопросе.

На данный момент я предполагаю, что причины медленного перехода в спящий режим следующие: я добавил ОЗУ (поэтому спящий режим занимает больше времени), я забыл увеличить пространство подкачки, чтобы оно соответствовало добавленному ОЗУ (у меня было 7 ГБ подкачки, но 8 ГБ ОЗУ), и скорость записи SSD деградировал со временем (как минимум в 2 раза).

Дальнейшее и рекомендуемое чтение:

флаг sd
После добавления второго твердотельного накопителя SATA и его использования в качестве раздела подкачки переход в спящий режим занимает всего 10-15 секунд.

Ответить или комментировать

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