3

Я наблюдал это много раз: одна программа не отвечает, а все остальные процессы работают правильно, а затем зависает вся система.

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

Но не должно ли это быть только для больших программ, которые занимают всю доступную память (RAM)?

Почему тогда это происходит, когда я просто запускаю Firefox или Internet Explorer, которые кажутся меньшими программами?

Есть ли способ не дать программам и компьютеру зависнуть?

4 ответа4

3

Зависания, как правило, вызваны не только использованием ресурсов.

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

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

Зависания обычно вызваны водителями.

Представьте себе 8 ГБ, процессор Octa Core и SSD RAID. Мы склонны к зависаниям сейчас? Нет.

Драйверы (и особенно сетевые) обычно являются основными виновниками, которые приводят к зависанию, поскольку из-за ошибки в них они ожидают определенного действия, которое должно быть выполнено немедленно по истечении времени ожидания. Даже для кратковременных зависаний, для которых вы не видите никакого использования ресурсов, DPC Latency Checker и более подробный LatencyMon отлично справляются с задачей выяснения, какие отложенные вызовы процедур вашими драйверами являются медленными.

Проблема здесь в том, что люди не знают, как решить эту проблему, я бы сказал, что вы можете проанализировать любую проблему с производительностью в Windows в этом посте, объясняющем XPerf. Но люди обычно в лучшем случае используют Resource Monitor, который не дает столько подробностей, как такие инструменты, как Process Explorer, Process Monitor и XPerf ...

Позвольте мне привести пример того, как разрешается типичное зависание.

  • Мой брат пожаловался на то, что закрытие одной из его вкладок в интернете вызвало 10-секундное замораживание.

  • Он не мог двигать мышью после закрытия вкладки.

  • Я использовал XPerf из Windows SDK, чтобы проанализировать производительность его системы на очень низком уровне.

    • Запустил трассировку и убедился, что она отследила столько информации, сколько могла.

    • Зашел в браузер, попросил его некоторое время пролистать и позвонить мне, когда возникнет проблема.

    • Сразу остановился след.

  • Закрытие вкладки Facebook вызвало такое поведение. Закрытие гугл вкладки нет.

  • На сетевом драйвере был виден всплеск.

    • В более подробном анализе это было связано с одновременным закрытием слишком большого количества соединений.

      Это имеет смысл, Facebook делает много асинхронных вызовов AJAX.

    • Когда соединение закрыто, драйвер должен отправить пакет FIN или RST к месту назначения. Возможно, ожидание подтверждения завершения или сброса соединения было плохо реализовано ...

  • Обновлен сетевой драйвер, проблема решена.

2

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

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

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

Это не только вызывает повышенный износ самого накопителя, но и существенно влияет на производительность компьютера. Почти все носители данных достигают максимальной скорости, выполняя одно действие за раз (поскольку вы можете одновременно читать и записывать только один сектор).


Теперь, когда у вас заканчивается ОЗУ, может случиться нечто подобное, но по другой причине. Когда у вас заканчивается физическая память, ОС попытается записать некоторые страницы ОЗУ на жесткий диск. Все жесткие диски (твердотельные или механические) работают намного медленнее, чем ОЗУ, поэтому всегда следует избегать подкачки файлов на жесткий диск.

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

2

Firefox, Internet Explorer и другие веб-браузеры на самом деле, вероятно, являются одними из "самых больших" программ на вашем компьютере в плане использования ресурсов.

В то время как другие программы могут занимать больше места на жестком диске, современные веб-браузеры, как правило, запускаются с объемом системной памяти (ОЗУ) более 100 МБ и очень быстро увеличиваются. Сеанс Firefox с 20 вкладками, открытыми в течение нескольких дней подряд, часто использует более 1 ГБ системной памяти.

Для сравнения, Microsoft Excel, занимающий сотни мегабайт на жестком диске, использует всего около 15 мегабайт памяти независимо от размера открытой таблицы.

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

Что касается сбоя: ваша система обычно зависает, потому что она обнаружила ошибку, а не потому, что у нее закончились ресурсы.

Например, если у вас неисправный чип памяти и Firefox или Internet Explorer, при открытии попытайтесь устранить эту неисправную память, вероятно, весь компьютер заблокируется и выйдет из строя.

Тем не менее, Windows довольно умна и должна быть в состоянии сказать вам, вызывает ли конкретный аппаратный сбой.

Я бы порекомендовал протестировать память вашего компьютера с помощью такого инструмента, как Memtest x86 или аналогичного, если у вас возникают частые необъяснимые сбои.

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

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

0

Firefox запускает flash в отдельном процессе.

Обычно я убиваю процесс прошивки через диспетчер задач, а firefox разблокируется.

В плагинах я установил для вспышки значение "Попросить активировать". Это останавливает запуск видео на YouTube, когда я восстанавливаю свой предыдущий сеанс Firefox.

Альтернативой "попросить активировать" являются надстройки блока Flash для Firefox.

Во всяком случае, когда-нибудь, я должен перезагрузить Windows.

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