Помогите пожалуйста справится с одной проблемой: не так давно я поменял жесткий диск на SSD от Kingston (серия A400). Работать ПК стал быстрее, однако появилась неприятная "штука": один раз в 5-10 минут (всегда по-разному) происходит зависание на 1-3 сек., затем снова всё работает нормально.

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

Вообще, судя по описанию, наиболее вероятна проблема с накопителем (некоторые SSD, кстати говоря, именно так себя и ведут: при нагрузке на диск через небольшой промежуток времени скорость чтения/записи на них падает до очень низких значений, а затем — снова вырастает (связано с работой контроллера) ).

В статье приведу несколько рекомендаций, которые (возможно) смогут помочь вам диагностировать и найти причины подобного поведения компьютера/ноутбука.

Причины вероятного подвисания ПК (на 1-3 сек.)

Состояние накопителя: проверка SMART, тесты

Как уже рекомендовал выше, при подобной "симптоматике" логичнее всего начать разбор с накопителя (в конкретном случае — с SSD).

Во-первых, при этих подвисаниях обратите внимание на "шум": нет ли каких-нибудь скрежетов, щелчков и пр. странных звуков от жесткого диска, CD/DVD привода, внешних накопителей и т.д. (SSD, конечно, бесшумны, но возможно у вас 2 разных диска?) . Нередко, появление таких шумов от жесткого диска может указывать на наличие проблем с механикой.

Во-вторых, стоило бы взглянуть на показания SMART всех дисков, подключенных к ПК (встроенная само-диагностика накопителя) . Для этого лучше всего использовать утилиту CrystalDiskInfo (ссылка на офиц. сайт) . Она не только покажет таблицу с различными параметрами (в которых не так просто разобраться начинающему пользователю), но и оценит их (см. техсостояние, в идеале должно быть 100%).

Если техсостояние диска оставляет желать лучшего — вы увидите предупреждение от CrystalDiskInfo, в таблице параметров будут выделены красным те строки, с которыми есть проблемы (в качестве примера см. скриншот ниже).

В качестве примера: как выглядит диск, с которым не все в порядке (CrystalDiskInfo)

Кстати, весьма неплохую оценку "здоровью" диска дает утилита Hard Disk Sentinel. Она также работает в авто-режиме, не требуя от пользователя каких-то специфических знаний (достаточно посмотреть на строку "Health") .

Hard Disk Sentinel — диагностика диска

В-третьих, рекомендую проверить с помощью бенчмарка как "держит" скорость чтения/записи диск. Для корректных результатов, кстати, тестируемый накопитель лучше подключить к другому ПК (у которого зависаний нет). Хотя, если с диском что-то не так — тест в любом случае будет показательным.

Для этого я рекомендую использовать утилиту HD Tune. В ее арсенале есть спец. проверка скорости чтения/записи в течении продолжительного времени. Тест позволяет выявить стабильность работы диска в режиме реального времени. Для начала тестирования — просто выберите диск, откройте вкладку "Benchmark" и нажмите Start . См. скрин ниже.

HD Tune — тестирование работы диска (так работает норм. диск)

Если с диском все в порядке — то скорость должна установиться в определенном диапазоне (либо плавно снижаться, без резких просадок). Для наглядности я привел 2 скриншота: сверху — с диском все в порядке; снизу — проблемный накопитель с бэдами. Обратите внимание, какие у него просадки: со 100 МБ/с до 0.

HD Tune — а вот так выглядит диск, с которым не все в порядке — прыжки от 0 до 100 МБ/сек

Нет ли процессов, вешающих систему

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

Причем, желательно запустить диспетчер задач (Ctrl+Shift+Esc) еще до того как произошло подвисание (чтобы увидеть в этот момент, что за процесс подвешивает систему. Смотреть нужно в первую очередь на столбцы "ЦП" и "Диск") .

Диспетчер задач — нагрузка на ЦП и диск

Гораздо лучше диспетчера задач (да и объективнее) утилита Process Hacker (ссылка на офиц. сайт) . Она позволяет не только просмотреть все запущенные процессы, но и мониторить их состояние в режиме реального времени. Вообще, рекомендую открыть вкладку "System Information" и после спокойно заниматься своими делами.

Process Hacker — просмотр служб, нагружающих ЦП

Далее, когда произойдет подвисание, перейдите во вкладку "System Information" и посмотрите не было ли высокой нагрузки на диск (Disk), процессор (CPU), и пр.

Кстати, очень похожая утилита на предыдущую — Process Explorer (ссылка на сайт Microsoft). Пользоваться ей — аналогично Process Hacker.

Проверьте (обновите) драйвера

После того, как Windows 8/10 начали очень активно подбирать и устанавливать драйвера в авто-режиме для большинства оборудования — многие пользователи даже не вспоминают о них. Между тем, часто все дело в том, что драйвер на SATA контроллер просто не обновлен (и как следствие, нестабильность в работе с накопителем) .

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

Driver Booster — поиск и обновление драйверов в авто-режиме

Перегрев устройства

Зависания, тормоза, перезагрузки, выключение компьютера — могут быть связаны с высокой температурой (перегревом) процессора. Дело в том, что в современных процессорах двухкомпонентная система защиты:

  • когда температура доходит до определенного значения — процессор начинает работать медленнее (так называемый троттлинг);
  • если это не помогает и температура растет (доходит до критической) — то компьютер просто выключается. Благодаря этому процессоры достаточно редко выходят из строя (* если не "играться" с напряжением и разгоном) .

Узнать текущую температуру основных компонентов можно с помощью спец. утилит. Одна из самых известных в своем сегменте — это A >"Компьютер/датчики" .

Как узнать температуру процессора, видеокарты и жесткого диска, что считается нормой? Способы снижения температуры компонентов компьютера/ноутбука — https://ocomp.info/kak-uznat-temperaturu-cpu-gpu-hdd.html

Если температура выходит за пределы нормы, предпринимайте меры:

  • почистите компьютер/ноутбук от пыли — https://ocomp.info/kak-pochistit-kompyuter-ot-pyili.html
  • замените термопасту;
  • для ноутбуков, кстати, есть в продаже спец. охлаждающие подставки (для ПК можно установить доп. кулер / в летнее жаркое время — достаточно открыть крышку системного блока и напротив поставить обычный комнатный вентилятор) ;
  • оптимизируйте систему: закройте и удалите программы (которыми не пользуетесь), отключите службы/процессы, которые сильно нагружают ЦП и т.д.

Все ли в порядке с ОЗУ

При зависаниях, появлении "синих" экранов, ошибок и пр. — не могу не отметить, что совсем не лишним было бы проверить оперативную память. Проводить тестирование лучше всего с помощью спец. утилит (например, Memtest86+).

С памятью есть проблемы. (результаты тесты в Memtest86+)

Попробуйте запустить стресс-тест системы в целом

Иногда для выявления "слабых" мест компьютера приходится прибегать к стресс-тестам (например, те же подвисания могут никак не проявляться когда вы их "ждете", но как только начнете работать — "всплывут". ).

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

Тест стабильности системы / AIDA64

Далее нужно отметить галочками (слева, сверху) те компоненты, которые хотите протестировать и нажать кнопку "Start" . После внимательно наблюдайте за графиками, как ведет себя процессор, какие рабочие температуры и пр. Как правило, если с компьютером есть проблема — при стресс-тесте удается ее выявить и диагностировать.

Начало теста / Кликабельно

Более подробно о тесте можете почерпнуть из одной моей прошлой статьи, ссылка ниже.

Как выполнить стресс-тест процессора и системы в целом, держит ли он частоты, нет ли перегрева (AIDA 64) — https://ocomp.info/kak-vyipolnit-stress-test-videokartyi-noutbuka-v-aida-64.html

PS 1

Если вы пользуетесь ОС Windows 10 — проверьте службы телеметрии (это вопрос про слежку), защитника. На время тестирования и диагностики рекомендуется их выключить.

PS 2

Вообще, вопрос с периодическими подвисаниями достаточно "скользкий" и не всегда просто вот так в двух словах дать ответ.

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

Мышь дергается, можно переключать иногда окна через альт+таб, или мышью, можно печатать в аське например (но ничего не дойдет), вообщем, клава и мышь отвечают, процессы полностью замораживаются на какое-то время, будь то игра, торент, браузер и т.д. музыка продолжает играть.. зависает от 2-3 до 10-20 секунд.. при долгих зависаниях пропадает звук. +к этому бывают перезагрузки редкие непонятно из-за чего, иногда с синим экраном, иногда просто как будто ресет нажал. Конфигурация ниже:

QuadCore AMD Phenom II X4 945, 3000 MHz (15 x 200)
AMD Radeon HD 6700 Series (1024 mb)
Мать: Gigabyte GA-870A-USB3L
Память: Kingston 2x4gb (1600 MHz)
Windows 7 64x

Кстати. комп определяет память как pc-10700 (1033 MHz) может ли память давать такие сбои?

Собственно, иногда при открытии «Мой компьютер» со списком дисков или при вставке флешки/DVD компьютер просто намертво замирает (мышка не двигается, клавиатура не реагирует на NumLock), т.е. полное отсутствие реакции на внешние раздражители. Спустя секунд 10-30 комп сам отмирает, как будто ничего и не было. Вопрос собственно в том, как определить причину такого подвисания системы и как с этим бороться.

OS: Windows 7 x64

Стоит обмолвиться, что система стоит на RAID и все известные ей винты включены в него. Раньше картинка была: RAID 1 (2х250 гиг) на системном диске и RAID 0 (2х640 гиг) на доп.хранилище. Сейчас всё это перекочевало в единый RAID 5 (4х640 гиг). В обоих конфигурациях симптомы были одинаковыми. Есть подозрение на глючность одного из дисков (ранее включенного в RAID 0, а затем в RAID 5), так как ранее подвисания случались чаще при обращении к доп.хранилищу. Но не SMART, ни какие либо другие быстрые тесты не показывают проблем ни с одним из дисков. Раид железный на интеловом чипсете встроенном в мать (ICH10R), от версии дров поведение не меняется.

  • Вопрос задан более трёх лет назад
  • 23014 просмотров

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

Собственно, искать гада стоит начинать с установки WPT Kit
Так как проблема появляется нечасто, то придется постоянно крутить circular logging. Запускаем из elevated консоли:

xperf -on latency -stackwalk profile -maxfile 128 -filemode circular

Естественно, некоторая часть ресурсов будет отъедаться на постоянную запись лога, но по личным наблюдениям оно не особо мешает даже на относительно слабом low-middle end ноуте более чем двухлетней давности.
После того, как проблема зарепродюсится, нужно запустить из элевейченной консоли:

xperf -d trace.etl

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

и вывести «Summary table» на «Stack counts by type». С очень большой вероятностью можно будет обнаружить странности уже там.
Также стоит взглянуть на «Summary table» для «DPC CPU Usage» и «Interrupt CPU Usage». Вообще говоря полуофициальное требование к длительности ISR — не более 10 мкс, DPC — не более 25 мкс. Средние значения длительностей ISR и DPC должны быть близки к этим, пиковое значение может быть в районе миллисекунд или даже десятков миллисекунд. Если там сотни-тысячи — это уже проблема.

В общем, удачной охоты.

25%. Хотя в остальное время всплески если и есть, то очень маленькие. Так же я вижу, что в этот промежуток времени проц был занят процессом ccsvchst.exe (1960) (Похоже это процесс антивируса Norton Internet Security. По крайней мере этот файл принадлежит ему).

Можешь ли ты высказать какие либо комментарии… что я сделал не так и вообще, туда ли я смотрел. Заранее спасибо.

trace.etl создается в «merge» фазе (которая «xperf -d»). В ней в частности в лог засовывается информация о символах, так что отсутствие результата от прописывания srv*… вполне ожидаемо (symbol server есть, а вот собственно самой информации о том, какие же символы резолвить — нет). Но не все потеряно, Вы можете смержить etl уже после того, как он собран (но обязательно на той же машине):

xperf -merge kernel.etl trace.etl

После чего файл можно анализировать на любой другой (или на той же) машине.

Никакой активности, если она до этого была — это в любом случае странно. Иногда стоит зайти в summary table. И посмотреть на странности попристальнее.

100% процессорного времени, потраченного на обработку прерываний это тоже ОЧЕНЬ плохо. В summary table для этого графика можно увидеть какой именно обработчик вызывался (и сколько заняло исполнение). Есть довольно высокая вероятность, что это именно он привел к проблемам (причем проблемы могут быть как программные так и аппаратные, но в любом случае должно быть более менее понятно, какой компонент проблемный).

«DPC CPU Usage» показывает 1.5 секундный всплеск до

25%.
Уточняющий вопрос: у вас машина четырехядерная (подозреваю, что если есть аппаратный RAID, то и проц как минимум i7)? Если да, то 25% — это как раз 100% одного ядра, что тоже весьма нехорошо.

Кстати, profile interrupt — имеет один из самых высоких уровней, соответственно stack trace-ы могут показать чего нибудь очень интересное (не забудьте сделать zoom на проблемный участок). Я не думаю, что прерывания профайлера будут замаскированы (что случается при IRQL == HIGH_LEVEL, то есть практически не случается), но даже если так — такой результат тоже даст некоторое представление о происходящем.

Собранный ETL содержит PII (personally identifiable information), но не содержит никаких паролей и прочего. Если захотите, запакуйте смерженый лог с каким нибудь сложным паролем, выложите на файлохостинг с возможностью удаления (скайдрайв, дропбокс, этц) и черкните мне в личку url и пароль. Я хоть никогда и не сталкивался с подобного рода проблемами (аутпост подвешивал только текущий поток при обращении к файлам), есть некоторый шанс, что я замечу в логе чего нибудь странное, чего не заметили Вы.

Так же я вижу, что в этот промежуток времени проц был занят процессом ccsvchst.exe (1960) (Похоже это процесс антивируса Norton Internet Security. По крайней мере этот файл принадлежит ему).

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

Вспомнил одну деталь. Я ошибся в прошлом комментарии: xperf правильно обрабатывает события от прерываний. То есть он запоминает все входы и выходы в прерывания и никогда не записывает время, проведенное в прерывании на какой то процесс. Соответственно, если Вы видите кучу ISR до, кучу DPC после и ничего кроме ccsvchst в средине, это практически однозначно указывает на симантек. Если у Вас есть линцензия — можете обратиться в их саппорт. Но вообще MSE достаточно неплох: кроме того, что он неплохо показывает себя в тестах антивирусов, в MSFT знают как ПРАВИЛЬНО писать под винду и у меня нет вообще никаких нареканий к его работе (пользуюсь около года — еще с первых пререлизных версий).

Сносите, проверяйте, пишите саксесс стори на хабр 🙂