Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33202

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Зависание и плохая производительность  

Глава 17  413 

Открыв журнал, первым делом я отфильтровал события, относящиеся к 

StockViewer.exe, найдя его первую операцию и щелкнув ее правой кнопкой, 
чтобы быстро установить фильтр (рис. 17-11).

Рис. 17-11.  Установка фильтра для StockView.exe

Затем я просмотрел временные отметки первого (2:27:20) и последнего 

(2:28:32) элементов, что соответствовало минутной задержке, о которой пи-
сал Джейсон. В результатах трассировки я увидел много ссылок на крипто-
графические разделы реестра и папки файловой системы, а также ссылки на 
параметры TCP/IP, но я знал, что должен быть минимум один промежуток, 
соответствующий длительной задержке. Я просмотрел журнал с начала и 
обнаружил промежуток примерно в 10 секунд (рис. 17-12).

Рис. 17-12.  10-секундный промежуток между событиями StockViewer

Рис. 17-13.  12-секундный промежуток между событиями StockViewer

Непосредственно перед этим были ссылки на библиотеку Rasadhlp.dll, 

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

SIN_ch_17.indd   413

27.12.2011   14:41:25


background image

414  Часть 

III   

Поиск и устранение сбоев: загадочные случаи

и приложение ждало истечения таймаута какого-то сетевого компонента 
около 10 секунд. Я продолжил просмотр и нашел 12-секундный интервал 
(рис. 17-13).

Перед этим промежутком снова была сетевая активность и «криптографи-

ческая» после. Следующий промежуток тоже длился 12 секунд (рис. 17-14).

Рис. 17-14.  Еще один 12-секундный промежуток между событиями

Следующие несколько промежутков были практически идентичными. 

В каждом случае непосредственно перед паузой было обращение к HKCU\
Software\Microsoft\Windows\CurrentVersion\ lnternet Settings\Connections, 
поэтому я установил фильтр для этого пути и для операции RegOpenKey и, 
конечно же, нашел пять промежутков по 12 секунд каждый (рис. 17-15).

{

{

{

{

{

Рис. 17-15.  Пять 12-секундных промежутков

В сумме эти промежутки (5 по 12) давали задержку, возникающую у 

Джейсона. Теперь я хотел убедиться, что повторные попытки доступа к 
сети были вызваны проверкой подписи, так что я стал просматривать сте-
ки вызовов различных событий, выбирая их и нажимая Ctrl+K для вызова 
окна свойств стека. Стек событий, относящихся к параметрам подключе-
ния к Интернету, показал, что причиной были криптографические функции 
(рис. 17-16).

Рис. 17-16.  Стек вызовов показал причастность криптографических операций

SIN_ch_17.indd   414

27.12.2011   14:41:26


background image

Зависание и плохая производительность  

Глава 17  415 

Наконец, я хотел убедиться, что эти проверки были вызваны средой 

.NET. Я еще раз просмотрел журнал и увидел события, подтверждающие, 
что StockViewer — приложение .NET (рис. 17-17).

Рис. 17-17.  Доказательство причастности .NET

Также я просмотрел стеки некоторых предшествующих событий, ссыла-

ющихся на «криптографические» разделы реестра, и увидел, что исполняю-
щая среда .NET вызывала WinVerifyTrust — функцию Windows для проверки 
цифровой подписи файла, запускающую серию попыток выхода в Интернет 
(рис. 17-18).

Рис. 17-18. Вызов 

WinVerifyTrust из .NET Framework

Теперь я точно знал причину задержки: среда .NET обнаруживала, что 

файл Stockviewer.exe имеет цифровую подпись, и пыталась проверить, не 
отозван ли сертификат. Я стал искать в Интернете способ пропустить эту 
проверку .NET, потому что знал, что компьютеры на конференции, скорее 
всего, не будут подключены к Интернету во время нашего выступления. 
Через несколько минут поиска я нашел статью Knowledge Base 936707 «FIX: 
A .NET Framework 2.0 managed application that has an Authenticode signature 
takes longer than usual to start» («Исправление: управляемое приложение 
.NET Framework 2.0, имеющее подпись Authenticode, запускается дольше 
обычного») (http://support.microsoft.com/kb/936707). В этой статье описыва-
лись точно те же симптомы, что и у нас, и говорилось, что .NET 2.0 (а, судя по 
путям к библиотекам DLL, указанным в данных трассировки, в StockViewer 
использовалась именно эта версия) поддерживает способ отключения обя-
зательной проверки цифровых подписей сборок. Для этого нужно создать 
в папке исполняемого файла файл конфигурации с тем же именем, что и у 

SIN_ch_17.indd   415

27.12.2011   14:41:27


background image

416  Часть 

III   

Поиск и устранение сбоев: загадочные случаи

исполняемого файла, но с расширением .config (например, StockViewer.exe.
config), содержащий следующий код XML:

<?xml version=»1.0» encoding=»utf-8»?> 
<configuration>
      <runtime>
               <generatePublisherEvidence enabled=»false»/>
      </runtime>
</configuration>

Примерно через 15 минут после получения письма от Джейсона я отпра-

вил ему ответ с объяснением и файлом конфигурации. Вскоре после этого 
он написал, что задержки исчезли, и выразил удивление тем, как быстро я 
решил проблему. Для него это казалось чем-то вроде магии, но я просто ис-
пользовал базовые приемы решения проблем с использованием Procmon и 
Интернета. И, конечно, демонстрация прошла на ура.

Случай с медленным открытием файлов Project

Все началось, когда клиент, сетевой администратор, обратился в службу 
поддержки Microsoft с жалобой пользователя на то, что файлы Microsoft 
Project, расположенные в общей папке в сети, открываются около минуты, и 
часто появляется ошибка, показанная на рис. 17-19.

Рис. 17-19.  Ошибка, возникающая при открытии файлов Project

Администратор убедился в наличии такой проблемы, проверил параме-

тры сети и задержки на файловом сервере, но не смог обнаружить ничего, 
что объясняло бы происходящее. Инженер службы поддержки попросил 
сделать трассировку Procmon и Network Monitor при открытии проблемно-
го файла. После получения данных он открыл журнал Procmon и установил 
фильтр, включающий только операции процесса Project, и еще один фильтр, 
включающий пути, ссылающиеся на целевую общую папку. В столбце File 
Time (Время файла)
 диалогового окна File Summary (Сводка по файлам)
открытого из меню Tools (Сервис), было показано, что на обращение к фай-
лам из общей папки тратится много времени (рис. 17-20).

Пути из данных трассировки показывали, что профили пользователей 

хранились на файловом сервере, и запуск Project приводил к активному об-
ращению к каталогу AppData профиля. Если многие пользователи хранили 
свои профили на одном сервере, используя перенаправление папок, и за-
пускали одинаковые приложения, хранящие данные в папке AppData, это, 

SIN_ch_17.indd   416

27.12.2011   14:41:28


background image

Зависание и плохая производительность  

Глава 17  417 

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

2

:

Особые соображения насчет папки AppData\Roaming:
Если папка AppData\Roaming перенаправляется, производительность не-

которых приложений может ухудшаться, так как они будут обращаться к 
этой папке по сети. В таком случае рекомендуется настроить следующий 
параметр групповой политики для синхронизации папки AppData\Roaming 
только при входе и выходе из системы и использования локального кеша во 
время сеанса работы пользователя. Это может замедлить вход и выход из 
системы, но  приложение будет работать быстрее, поскольку не будет ожи-
дать ответа из сети:

User configuration > Administrative Templates > System > User Profiles > се-

тевые_папки  > настройка для синхронизации только при входе и выходе.

Если проблемы с приложениями остаются, следует отменить перена-

правление AppData. Недостатком этого метода может быть замедление 
входа и выхода из системы.

Рис. 17-20.  Окно File Summary показывает, что на операции с файлами тратится много 
времени (имя домена скрыто)

Затем инженер проверил, генерирует ли Project весь трафик к таким 

файлам, как Global.MPT, или это связано с дополнениями. Для этого по-
надобились данные трассировки стеков. Установив фильтр, отображаю-
щий только обращения к Global.MPT (файлу с наибольшим временем 
ввода-вывода, как видно из окна сводки), он заметил, что тот открывался 
и читался несколько раз. Сначала он увидел пять или шесть длительных 
серий из коротких случайных операций чтения (рис. 17-21).

2

 «Профили пользователей служб удаленного рабочего стола Windows Server 2008 R2», http://

blogs.msdn.com/b/rds/archive/2009/06/02/user-profiles-on-windows-server-2008-r2-remote-desktop-
services.aspx

SIN_ch_17.indd   417

27.12.2011   14:41:28