как определить происхождение: одно ядро ​​должно быть на 100% и "заморозить" машину?

Создайте новую цель systemd для этих действий по обслуживанию системы, поскольку вполне вероятно, что блокировка входа пользователей в систему — не единственное системное действие, которое необходимо изменить. Эта цель должна зависеть от цели по умолчанию, чтобы вы не меняли текущий графический режим и не выходили из системы.

Создайте новую службу systemd для предотвращения входа в систему, создав или удалив файл /etc/nologin (см. использование pam _nologin в /etc/pam.d, чтобы узнать, как работает /etc/nologin ). Позаботьтесь об удалении только файла /etc/nologin, который вы создали (, например, проверив волшебную строку в содержимом ). Пусть эта служба будет WantedBy новой целью systemd.

Даже если вы сделаете это, все равно будут запущены «пользователи», такие как gdm, отображающий экран входа в систему. Большинство виртуальных машин существуют для поддержки служб, отличных от входа пользователя в командную строку; для тех, кому может потребоваться отменить -регистрацию машины из кластера распределения нагрузки -. Вы должны очень четко понимать, что вы имеете в виду, когда говорите «без пользователей».

Опыт работы с системными обновлениями показал, что лучше всего загружать и подготавливать их во время нормальной работы, а затем применять как часть -повторного запуска системы. В Systemd есть хуки для этого, которыми вы можете воспользоваться. См. систему pkcon, чтобы узнать, как их можно использовать. Вам может понадобиться состояние «слива», когда вам не даются или не разрешаются новые сеансы (, и это может происходить автоматически, как при отсоединении от кластера, или для этого может потребоваться новая цель, как описано выше ).

Была проделана значительная работа по управлению виртуальными машинами Linux с большими сообществами вокруг Ansible, Puppet и других. Так что я немного удивлен, что вы пишете еще один демон.

1
25.02.2017, 18:55
1 ответ

Да, вероятно, это видео io. Потому что там kworker на 100%, тоже есть переполнение прерывания.

Прерывания обрабатываются в Linux в два этапа: 1) прямой обработчик прерывания собирает все данные прерывания во временной очереди 2) рабочие работают не в обработчиках прерываний, а как отдельные потоки ядра. По сути, это процессы, но без пользовательского пространства они полностью выполняются в ядре.

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

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

Аудио youtube не останавливается, потому что это многопоточная вещь, и его поток обработки звука даже не знает, что видеоплеер завис.

Что в вашем dmesg?

Я подозреваю, что оборудование vga неисправно или проблема с драйвером.

2
27.01.2020, 23:34

Теги

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