5

Я использую Ubuntu 9.04 64 бит на AMD. Он регулярно зависает на несколько минут в то время, когда некоторые из используемых ЦП процессов% переходят в «спящий режим». В течение этого времени я не могу запускать новые программы, и большинство программ на рабочем столе перестают отвечать на запросы.

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

1 ответ1

7

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

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

  1. Полностью использует время и распределяется по расписанию, или
  2. Необходимо дождаться ответа операции, обычно ввода-вывода, и запросов, которые нужно перенести в очередь ожидания, ожидая события.

Процессы, которые планируются из-за # 2, также указывают планировщику, должны ли они быть прерваны или нет, пока они ожидают события. Если они не могут продолжить надлежащую работу, если их прерывает сигнал (обычно это драйверы устройств), они указывают, что они должны быть разбужены только событием. Они находятся в режиме непрерывного сна и будут перемещены в очередь ожидания.

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

  • Багги драйвер устройства
  • Неисправности на вашем оборудовании (Дисковод?)
  • Монтируемые файловые системы медленно реагируют.

Я видел это снова и снова с файловыми системами NFS. Если по какой-либо причине отклик устройства будет потерян, процесс останется в спящем режиме, что сделает практически невозможным использование устройства / устройства до перезагрузки.

Если вы считаете, что доступ к жесткому диску приводит к зависанию ввода-вывода, возможно, было бы целесообразно проверить, есть ли на диске поврежденные блоки или сектора.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .