«Пиковое» использование ЦП на контроллерах домена


25

У нас есть два контроллера домена Windows Server 2008 с пакетом обновления 2 (к сожалению, не 2008 R2) в небольшом 150 клиентском домене, которые демонстрируют очень «пиковую» загрузку ЦП. Контроллеры домена демонстрируют одинаковое поведение и размещаются на vSphere 5.5.0, 1331820. Каждые две или три секунды загрузка ЦП увеличивается до 80-100%, а затем быстро падает, остается низкой на секунду или две, а затем поднимается вверх опять таки.

Производительность диспетчера задач DC3


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

Производительность виртуальной машины DC3



Нарушающим процессом является SVChost.exe, который упаковывает службы DHCP-клиента (dhcpcsvc.dll), EventLog (wevtsvc.dll) и LMHOSTS (lmhsvc.dll). Я, конечно, не эксперт по внутренним компонентам Windows, но я не могу найти что-то особенно неправильное при просмотре процесса с помощью Process Explorer, за исключением того, что EventLog вызывает тонну вызовов RpcBindingUnbind .

DC3 Process Explorer для SVCHost.exe



На данный момент у меня нет кофе и идей. Как мне продолжать устранять эту проблему?


Просто плеваться здесь: 1. У вас есть система мониторинга, которая запрашивает журналы событий на контроллерах домена? 2. Есть ли у вас какой-либо тип аудита, который может привести к интенсивной активности журнала событий на контроллере домена?
Joeqwerty

1
Хотел вмешаться, так как эта тема появилась в поиске Google для журнала событий с высоким процессором. Эта проблема все еще присутствует на Server 2012. Только что решена та же проблема на DC Server 2012. Проверьте размеры файла журнала. Путь к журналу по умолчанию:% SystemRoot% \ System32 \ Winevt \ Logs \ Параметр перезаписи радио сталкивается с проблемами при работе с файлами журнала большего размера. Я установил мой, чтобы заархивировать журнал, когда заполнен и ролловер.
KraigM

Для тех, кто приходит сюда из Google, эта проблема службы журнала событий относится и к компьютерам с Windows Server, не относящимся к контроллеру. В моем случае наличие достаточного количества пользователей с mmc.exeоткрытым окном «Диспетчер серверов» (возможно, по умолчанию)?
Николай

Ответы:


25

TL; DR: файл EventLog переполнен. Перезапись записей обходится дорого и / или не очень хорошо реализована в Windows Server 2008.


На @pk. и предложение @joeqwerty, и, посмотрев вокруг, я решил, что, скорее всего, забытая реализация мониторинга очищает журналы событий.

Я установил сетевой монитор Microsoft на одном из контроллеров домена и начал фильтровать MSRPC с помощью ProtocolName == MSRPCфильтра. Было много трафика, но все это было между RODC нашего удаленного сайта и, к сожалению, не использовало тот же порт назначения, что и прослушивающий процесс EventLog. Штопать! Там идет эта теория.

Чтобы упростить задачу и упростить запуск программного обеспечения для мониторинга, я решил развернуть службу EventLog из SVCHost. Следующая команда и перезагрузка контроллера домена выделяют один процесс SVCHost для службы EventLog. Это немного облегчает расследование, поскольку к этому PID не подключено несколько служб.

SC config EventLog Type= own

Затем я прибегнул к ProcMon и настроил фильтр, чтобы исключить все, что не использовало этот PID. Я не видел тонны неудачных попыток EventLog для открытых отсутствующих ключей реестра , как указано в качестве возможной причины здесь ( по- видимому , дрянные приложения могут зарегистрироваться в качестве источников событий в крайне плохих отношениях). Как и ожидалось, я видел множество успешных записей ReadFile в журнале событий безопасности (C: \ Windows \ System32 \ WinEvt \ Logs \ Security.evtx).

ReadFile Security.evtx

Вот взгляд на стек на одном из этих событий: RpcBindingUnbind

Вы заметите сначала RPCBinding, а затем RPCBindingUnbind. Их было много . Как тысячи в секунду. Либо журнал безопасности действительно занят, либо что-то не работает с Security.evtxжурналом.

В EventViewer журнал безопасности регистрировал только 50-100 событий в минуту, что казалось подходящим для домена такого размера. Штопать! Есть теория номер два, что у нас было какое-то приложение с очень подробным аудитом событий, включенным слева в забытом углу, все еще покорно пыхтя. Было записано еще много (~ 250 000) событий, хотя частота регистрируемых событий была низкой. Размер журнала возможно?

Журналы безопасности - (Щелкните правой кнопкой мыши) - Свойства ... и максимальный размер журнала был установлен для 131 072 КБ, а размер журнала в настоящее время удерживается на уровне 131 072 КБ. Был установлен переключатель «Перезаписать события по мере необходимости». Я подумал, что постоянное удаление и запись в файл журнала, вероятно, была тяжелой работой, особенно когда он был настолько заполнен, поэтому я решил очистить журнал (я сохранил старый журнал на тот случай, если он понадобится для последующего аудита) и позволил службе EventLog создать новый пустой файл. Результат: загрузка ЦП вернулась к нормальному уровню около 5%.


Хорошо сделано. Кроме того, переместите TL; DR в начало ответа?
Златко

Просто к сведению ... это просто поразило группу наших контроллеров домена, большинство из которых 2012/2012 R2. Таким образом, он выглядит не очень хорошо реализованным в новых версиях Windows Server.
HopelessN00b

Так что это моя проблема, НО я установил архив при заполнении и не перезаписывал. Максимальный размер журнала составляет 1 ГБ, а текущий размер составляет 639 МБ. В тупик от того, что делать, кроме, может быть, очистить журнал как тест. Это на 2008 R2 Std и влияет на PDC и вторичный DC. Оба ВМ. Я должен был выделить 2 сокета / 1 ядро ​​для каждого контроллера домена, или они оба отключат распределение 1/1 и больше не будут отвечать. Добавление дополнительной оперативной памяти ничего не сделало. На данный момент он постоянно использует 60-100% ЦП.
Трэвис

Сохранен / очищен журнал безопасности. Все еще работает 74% загрузки процессора.
Трэвис

5

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

  • Откройте системный монитор и создайте новый пользовательский набор сборщиков данных.
  • Выберите Вручную (без шаблона) и выберите только данные трассировки событий .
  • Добавьте доменную службу Active Directory: основные данные и сохраните набор.
  • Измените условие остановки в разделе « Свойства» на 1 минуту.
  • Начни съемку и жди.
  • По завершении конвертируйте сохраненный файл .etl в файл .csv, используяtracerpt –l “file.etl” –of CSV
  • Проанализируйте данные summary.csv и dumpfile.csv в Excel. Вы можете скачать этот документ Import-DC-Info.xlsm, чтобы помочь вам с анализом.

Если моя догадка верна, вы увидите, что некоторые устройства (IP: порт) работают с вашим DC.


1

Конечно, сложный. Помимо того, что вы оставили его в покое (1 процессор / 50% нагрузки ... кого это волнует?), Вы можете попытаться настроить новый контроллер домена и через несколько дней посмотреть, будет ли этот режим работать так же. Если это произойдет, вы можете попробовать использовать трассировку Wireshark (очевидно, что-то из Сети вызывает это)

Следующее, что приходит на ум, - это простой звонок в Microsoft.


-2

Трэвис, «архив» тебе не помог. На самом деле, даже очистка журнала событий, когда он вырос на 2/3, не помогла вам. Но «архив» действительно помог KraigM.

kce: очистил 131-мегабайтный файл «перезаписи» и увидел снижение производительности, скажем, с 55% до 5%, но ВОПРОС: возможно, вы в конечном итоге снова увидели высокое использование, так как это может (а) сработать только при достижении условия перезаписи или (б) Это может линейно ухудшаться, когда размер очищаемого файла увеличивается с 0 МБ до 131 МБ.

Некоторые видят это для security.evtx, а другие - для журнала операций планировщика задач. Я предлагаю полностью удалить ваш AV (который вы используете) и попробовать. Злоумышленники должны скрывать свои треки, а их треки выполняются в запланированных задачах, которые они устанавливают, или при входе в систему. Поэтому они будут скрывать свои треки, ломая дескрипторы этих журналов событий и переписывая их, чтобы пропустить их треки. Возможно, AV обнаруживают это с ошибкой, поскольку, если бы это была Microsoft, было бы сообщено о большем использовании, но я вижу лишь несколько сообщений, когда Google гуглит. Я также вижу это на сервере 2008 R2 для журнала security.evtx. Нет подписчиков журнала событий, нет внешних мониторов. Я наблюдал, как работало несколько AV-сервисов (McAfee), и у них очень низкое общее использование сервера в течение многих дней, поэтому я подозреваю, что он был удален и только частично (вероятно, требуется специальный деинсталлятор McAfee), и мне интересно, есть ли зацепки работающие драйверы службы (или даже обычно установленные) службы McAfee или фильтра McAfee, которые каким-то образом выполняют нормальную запись в журнал событий и в своей фильтрации принимают решение, что им нужно превратить это в полное чтение всего журнала событий. Поверьте мне, сторонние драйверы фильтров от некоторых AV-компаний глючат и, конечно, в 10000 раз хуже, чем реализация журналирования событий Microsoft, что, скорее всего, идеально. Таким образом, 100% удалить ВСЕ из ваших AV и Увидеть, если проблема решена. Если так, работайте с вашей компанией AV, чтобы исправить их AV. Не рекомендуется делать исключения для файлов.

Кроме того, при использовании procmon обратите внимание на вызовы WriteFile, потому что именно Writefile заставит менеджер фильтров прочитать весь файл. В моем случае чтение было начато приблизительно через 30 секунд после завершения записи, что может быть задуманно. Но это было непротиворечиво, и в моем случае файл занимал 4 ГБ, а чтение файла занимало 64 КБ Readfiles длиной по 64 КБ, и для этого использовалось 35% ЦП. Очень грустный.


Обновление 23.03.2016 Я посмотрел на драйверы фильтров на этом компьютере после того, как пришел к выводу, что это должно быть вызвано одним из них (механизм журнала событий никогда не может быть неисправен сам по себе, или количество отчетов такого рода будет ошеломляющим и Нет). Я видел некоторые драйверы фильтров от AV и от известной сторонней компании, которая повышает производительность диска виртуальной машины с помощью заблаговременного чтения, и спросил их главного архитектора (который был очень добрым и любезным), может ли его продукт чрезмерно агрессивно читать все журнал событий безопасности (который явно происходил по procmon). Это было бы полезно для небольших журналов безопасности, но не для размеров, указанных здесь. Ни за что не сказал. Он согласился, что это может быть AV.

Как я сказал собеседнику по Azure ниже, у нас нет продолжения из исходного плаката, если проблема вновь возникла после очистки журнала событий, потому что это распространенное и ошибочное решение, поскольку производительность со временем снова падает. Это называется «продолжение», и я вижу, что собственное решение автора из первых рук может обмануть тех, кто не верит, что они решили проблему. Меня тоже почти одурачили. Я очистил журнал событий и улучшил производительность, но я использовал procmon и увидел, что проблема будет расти и расти со временем, пока не станет проблематичной. По какой-то причине сотрудник Azure резко критикует меня, когда оригинальный постер не последовал (возможно, умер, был уволен, ушел или занялся). Парень из Azure ниже думает, что если оригинальный постер не последовал, это должно быть исправлено. Это досадно и озадачивает, потому что я не могу думать ни о ком, кто так технически высоко ценится, кто занял бы эту позицию. Прошу прощения, если я укололся. Возможно, из-за моей активности в Интернете, где я вызываю людей, я действовал ему на нервы - здесь (ошибка сервера) я просто проявляю доброту и делюсь глубокими техническими знаниями, и в результате г-н Лазур запугивает вопрос, является ли мой технический вклад даже необходимо или для некоторого моего блога (у меня нет такого блога). Я пока не собираюсь разослать эту ссылку примерно полдюжине ключевых знакомых в Microsoft и спросить их, что происходит с этим типом издевательств со стороны ключевого сотрудника MSFT, потому что я в основном сосредоточен на том, чтобы иметь наилучшие интересы о сообществе и ответах г-на Азура ниже, в нескольких словах, это невероятно, яростно, нервировать и издеваться - что я уверен, что некоторые люди любят делать с другими. Я был изначально обижен, но нахожусь над этим и знаю, что пассивные или активные читатели оценят то, что я говорю, и оценят мои комментарии - я поддерживаю это на 100%, не обращая внимания на юридические причины, почему это здесь неуместно или нет. Г-н Лазурный, пожалуйста, проявляйте доброту и воздерживайтесь от моих комментариев в плохом свете Просто преодолеть это и проявить сдержанность и не комментировать еще раз. пожалуйста, проявляйте доброту и воздерживайтесь от моих комментариев в плохом свете. Просто преодолеть это и проявить сдержанность и не комментировать еще раз. пожалуйста, проявляйте доброту и воздерживайтесь от моих комментариев в плохом свете. Просто преодолеть это и проявить сдержанность и не комментировать еще раз.

Гарри


Похоже, вы обращаетесь к людям, которые прокомментировали, а не к ОП и исходному вопросу. И вы делаете предложения, как удаление AV. Оператор уже решил свою проблему и определил ее как проблему журнала событий. Я не вижу в этом верного ответа.
Дэвид Макогон,

Это было не решено, если вы внимательно прочитали плакаты и мое резюме. Вы должны страдать от этой проблемы, чтобы разобрать их слова гораздо более тщательно, чем вы это сделали, и увидите это. Мне жаль, что вы не можете этого сделать, и судите меня так строго. Например, ОП сказал, что он вернулся к нормальным 5%, но он легко мог вернуться после очистки журнала, и он не следил - на самом деле это случилось с другим комментатором. Поэтому ничего не было решено, так как он не подтвердил, что результаты остались на уровне 5% навсегда.
Гарри

Прости Гарри - это не ответ; вы заявляете о неисправном программном обеспечении и приказывает ОП сотрудничать с их антивирусной компанией. Это отлично подходит для вашего личного блога или статьи, но редакционная статья не является ответом на двухлетний вопрос с принятым ответом, с основной причиной, не связанной с антивирусом.
Дэвид Макогон,

@ удивительно, Гарри, я вернулся сюда снова и снова, чтобы понять это :) В системе нет AV. Я сделал несколько обновлений Windows и изменил максимальный размер файла журнала на 500 МБ с 1 ГБ. Даже на 1 ГБ он переворачивается только один раз в 8 месяцев, тогда как мой другой DC переворачивает немного больше. Я следовал предложению «SC config EventLog Type = own», чтобы разбить файл журнала. После перезагрузки процесс Evenlog упал до уровня ниже 1%. «Dhcp и lmhosts», которые были присоединены к процессу, также имеют процессор ниже 1%. Я регистрировал только около 15 событий безопасности в секунду.
Трэвис

Я подозревал, что агент SSO, который у меня работал, как-то связан с ним, поскольку в нем было много ошибок, но отключение службы не привело к падению загрузки ЦП даже после перезагрузки. Агент единого входа резервируется, а процессор все еще не загружен, так что, кто знает.
Трэвис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.