Image by Compound Eye via Flickr
Странные, странные, странные проблемы. Соседний компьютер, вдруг, ни с того ни с сего начал жутко тормозить. Мышка двигается рывками, дергается, замирает. Окошки отрисовываются очень медленно. Процессы запускаются долго и вдумчиво :). В общем, все совсем неприятно.
Решил немного разобраться с этим вопросом. Надо же было помочь коллеге. Короче говоря, первым делом был запущен process explorer. Он показал, что основным напрягающим фактором являются прерывания. Они поглощали от 60% процессорного времени. К сожалению, при помощи самого procexp нельзя посмотреть, какой компонент системы отвечает за возникающие прерывания. Однако для этой цели есть другой инструмент - xperf. Он является частью Windows Perfomance Toolkit, который в свою очередь можно скачать вместе с Windows SDK. В общем и целом, будем использовать его. Правда тут есть небольшой момент. Клиентская система, на которой все это происходило, работала на Windows XP. К сожалению для этой операционной системы нет xperf. Однако можно просто проинсталлировать Perfomance Toolkit на Vista или Windows 7, а затем скопировать папку с xperf на нашего клиента. Далее, на клиентской системе, в командной строке с правами администратора запускаем ETW трассировку при помощи xperf:
xperf -on latency -stackwalk profile
Теперь наша задача - добиться повторения. Ну в моем случае это не составило трудности. После того, как трассировка поработала какое-то время, делаем вот так:
xperf -d tracecpu.etl
Теперь открываем этот файл и смотрим в него. Видим мы примерно следующее:
Как видно из ролика, основным, так сказать, потребителем прерываний является драйвер, отвечающий за дисковую подсистему, atapi.sys.
После этого первым деля м внимательно посмотрел на винт. Оказалось, что шлейф, которым он подключен – поврежден. Замена шлейфа решила проблему.
Комментариев нет:
Отправить комментарий