Sibprompost.ru

Стройка и ремонт
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Счетчик производительности создан, но не работает до перезапуска windows

Счетчик производительности создан, но не работает до перезапуска windows

У меня есть странная проблема с созданием новых счетчиков в существующей группе. У меня есть служба windows, которая выполняет некоторую работу и позволяет мне контролировать ее состояние с помощью счетчика производительности. У меня есть группа счетчиков производительности и некоторые счетчики производительности. Группа создается на этапе установки службы (с правами администратора), а счетчики инициализируются при запуске службы (как пользователь LocalSystem). Все работает нормально, группа существует, счетчик тоже существует, я могу следить за ними и записывать в журнал счетчиков производительности. Сервис постоянно работает.

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

Это конец обычной, неинтересной части истории. Странные вещи начинаются здесь.

Я захожу в PerMon, добавляю все счетчики в представление системного монитора. Я вижу свою группу счетчиков производительности, я вижу все счетчики производительности, включая NEW счетчиков производительности, которые я только что добавил. Я могу добавить их в представление системного монитора. И я вижу, что старые счетчики работают. Но новые счетчики не работают, Они не собирают никаких данных. Ну ладно, возможно, это была моя ошибка, я переключаюсь на просмотр журнала и пытаюсь записать данные счетчиков производительности. Старые счетчики регистрируются так же, как и раньше. Но когда я пытаюсь добавить новый счетчик, я нахожу в средстве просмотра событий следующее предупреждение:

Службе не удалось добавить счетчик «AGENTMyCountersGroupNameMyNewCounter » в журнал или предупреждение NewCountersLog. Этот журнал или предупреждение будут продолжаться, но данные для этого счетчика не будут собраны. Возвращается ошибка: указанный счетчик не может быть найден.

Я попытался переустановить сервис, удалить старые счетчики, добавить их снова, и ничего не изменилось. Старые счетчики работают, а новые не работают. Затем я перезапустил Windows, и новые счетчики начали работать! В сервисе ничего не изменилось, я просто перезапустил сервер. Я столкнулся с этой проблемой на 2 серверах, оба они работают под управлением Windows Server 2003 SP1. Код для всех счетчиков производительности идентичен, потому что я создаю их с помощью кода с генераторами.

Вы можете сказать: «Эй, не беспокойтесь, перезапускайте свой Windows каждый раз, когда вам нужно добавить новые счетчики производительности», но я не могу. Мой сервис работает на сервере вместе с другими сервисами, и нам нужно, чтобы эти сервисы работали постоянно, мы не можем перезапускать сервер каждый раз, когда я меняю один сервис.

Кто-нибудь может помочь с этим вопросом?

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

Код для установки и удаления (вызывается на этапе установки): PerformanceCountersManagerBase.GetCreationData()-это универсальная оболочка для получения сбора данных для создания счетчиков производительности.

Код для инициализации счетчиков в сервисе и обновления:

Читайте так же:
Как сделать красивый счетчик

Обновление 3 я изменил код для установки счетчиков через компонент .NET PerformanceCounterInstaller, и ничего не изменилось. Старые счетчики работают так, как они работали, а вновь созданные не работают, и попытка зарегистрировать их приводит к точному сообщению об ошибке (предупреждении) в журнале событий. Код создания установщика выглядит следующим образом:

3 ответа

  • счетчик производительности

Я создал счетчик производительности для своего приложения C#. Его тип- NumberOfItems32 . Я не знаю почему, но монитор производительности показывает меня на оси y только как максимальное значение только 100 , когда мой счетчик намного больше этого наверняка. Знаете ли вы, правильно ли это поведение.

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

Счетчики производительности основаны на сегментах общей памяти. Я видел подобные проблемы, когда у кого-то все еще есть дескриптор сегмента общей памяти. Это может включать в себя сам инструмент perfmon. Возможно, вы сможете использовать утилиту handle, чтобы узнать, кто удерживает общую память. Вам не нужно перезагружаться, поэтому попробуйте посмотреть, исчезнет ли эта проблема, если вы сначала выключите perfmon, а затем заново создадите счетчики. Также убедитесь, что ваша служба не запущена.

До ответа Майка я сам справился с этой проблемой. Но у меня нет времени выяснять причину проблемы. Я решил эту проблему, выполнив следующие действия:

  1. остановите ведение журнала perfmon (я зарегистрировал все свои счетчики с помощью регистратора perfmon)
  2. закрыть perfmon
  3. служба удаления (service uninstaller удаляет счетчики производительности всей группы)
  4. установка службы с добавленными счетчиками производительности

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

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

К моему удивлению, решение состояло в том, чтобы использовать инструмент CLOSE Монитор производительности windows, а затем создать счетчики. Проблема заключалась в used-shared-memory, который был заблокирован.

Похожие вопросы:

У меня есть этот кусок кода : Где я создаю свой счетчик производительности. Он работает нормально, если не существует, он также создает счетчик производительности, но я не могу найти этот счетчик.

Как я могу определить и использовать два счетчика производительности AverageTimer32 в одном приложении (.exe)? дополнительное Примечание: Я пытаюсь так измерить затраченное время на разные части.

Читайте так же:
Внешний тарификатор для счетчика

Я пытаюсь получить счетчик производительности windows и отобразить его на странице ASP.NET. Однако мне трудно получить средний тип счетчика. Скажем, я хочу получить счетчик, например, сколько.

Я создал счетчик производительности для своего приложения C#. Его тип- NumberOfItems32 . Я не знаю почему, но монитор производительности показывает меня на оси y только как максимальное значение.

Я хотел бы использовать аппаратный счетчик производительности , в частности x86 CPUs, чтобы получить промахи кэша или неправильное предсказание ветвей. Счетчики производительности широко.

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

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

Я пытаюсь из приложения ASP.NET MVC (с VS 2012 на Windows 8 x64 PC) добавить счетчик производительности, но у меня есть проблема, что если я проверю, что категория существует или добавлю новую.

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

По какой-то причине мой счетчик производительности не работает. Я видел, как этот счетчик производительности работал на ноутбуке других людей & desktop, но не на моем. У него нет списка, чтобы.

Как измерить фактическое использование жесткого диска в Windows

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

Хотя большинство современных дисков подходят для 600 ТБ записей или более того, он по-прежнему не предоставляет вам информацию о том, сколько времени это занимает. Один год, десять лет или больше?

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

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

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

Настройка монитора производительности

Монитор производительности — это родной инструмент Windows. Вы можете запустить программу следующим образом:

  1. Нажмите на клавишу Windows.
  2. Введите Системный монитор.
  3. Выберите результат, чтобы загрузить его.

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

1. Щелкните Производительность> Группы сборщиков данных> Определено пользователем. Щелкните правой кнопкой мыши «Определено пользователем» и выберите «Создать»> «Группа сборщиков данных».

2. Введите имя, выберите «Создать вручную (Дополнительно)» и нажмите «Далее».

3. Выберите «Счетчик производительности» и нажмите «Далее».

Читайте так же:
Счетчик аэрозольных частиц dylos dc 1100

4. Выберите PhysicalDisk, затем жесткий диск или диски, которые вы хотите отслеживать, выбрав их и нажав «Добавить». После этого нажмите ОК, а затем закончите.

Будет создан новый трекер производительности, но он еще не запущен. Вы найдете новый трекер в разделе User Defined. Щелкните правой кнопкой мыши имя, которое вы ему дали, и выберите начало.

Монитор производительности отслеживает использование жесткого диска с этого момента, пока вы не остановите его, щелкнув правой кнопкой мыши и выбрав в меню пункт «Стоп», или не выключите компьютер.

Доступ к отчетам осуществляется в разделе «Отчеты»> «Пользовательские» в интерфейсе. Перед посещением раздела отчетов рекомендуется остановить мониторинг.

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

На экране отображаются график и легенда. Что вас может заинтересовать больше всего, так это среднее значение, а может быть, и максимальное значение.

Все значения отображаются в байтах в секунду, поэтому разделите значение на 1000, чтобы получить приблизительное преобразование в килобайт (точнее, разделите его на 1024), чтобы получить килобайты, на 1048576, чтобы получить мегабайты, и на 1073741824, чтобы получить гигабайты). Среднее использование, указанное выше, составляет около 20 килобайт в секунду, что составляет 1728000 килобайт в день, если компьютер работает 24 часа в сутки. Разделите это на 1000, и вы получите примерно 1700 мегабайт в день использования.

Если вы предположите, что твердотельный накопитель способен записывать 600 ТБ, вы получите 600000 / 1,7 = 352941 день использования. Обычно это меньше, потому что износ обычно не равномерно распределяется по приводам.

Теперь ваша очередь : вы используете твердотельные накопители? Какой у вас опыт?

Счетчики производительности

Счетчики производительности Windows являются важнейшим компонентом операционной системы для анализа производительности аппаратной и программной платформы . К текущему времени функционал счетчиков является исчерпывающим и необходимости в каких-либо других средствах отпадает в 99% случаев. Необходимость в стороннем ПО возникает лишь в случаях отслеживания специфических аппаратных компонентов (например средства мониторинга состояния RAID-контроллеров от их официальных производителей). Тем не менее и в этих случаях можно получить многие данные с помощью счетчиков.

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

В этой статье я собираю воедино все встретившиеся мне полезные ресурсы в интернете и, главным образом, статьи по тематике perf. counters на моем блоге.

Если вам интересна тематика Windows Server, рекомендую обратиться к рубрике Windows Server на моем блоге.

Счетчики производительности процессора

Центральный процессор — один из основных компонентов аппаратной платформы и отслеживание его производительности необходимо осуществлять на постоянной основе, ведь он чаще других подвержен динамическим нагрузкам и в норме загруженность процессора может варьироваться от 1-2 в простое по вечерам и утрам и вплоть до 95-100% загрузки во время рабочего дня, когда все пользователи интенсивно используют сервис, который предоставляет данный сервис.

Читайте так же:
Счетчик маяк 301арт 131т

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

Разумеется самым полезным и информативным счетчиком является % Processor Time (% загруженности процессора), но есть и множество других, без которых вам просто не обойтись. Подробнее о них читайте в статьях ниже.

  • Изменения счетчиков производительности CPU — в статье описаны изменения, которые произошли со счетчиками производительности процессора (группа Processor Information) в Windows Server 2012 R2 по сравнению с предыдущими версиями ОС;
  • Анализ счетчиков производительности CPU — основная статья по анализу счетчиков CPU. В статье даны рекомендации и описана последовательность проведения анализа производительности процессорной нагрузки, даны рекомендации по поиску узких мест производительности ЦП, а также рассмотрены решения проблем;
  • Счетчики производительности процессора — статья описывает наиболее известные на текущий момент автору счетчики производительности CPU, приводятся ссылки на другие полезные ресурсы;
  • Processor Queue Length — Самый важный счетчик ЦП — описание счетчика Processor Queue Length и описание подходов к его анализу. Счетчик имеет важное значение в диагностике производительности ЦП;
  • Мониторинг CPU хоста Hyper-V — в статье рассмотрен вопрос отслеживания производительности ЦП хоста виртуализации, ведь это отдельная сложная задача.

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

Server Manager на Windows Server 2012 R2

А вы пользуетесь Server Manager? Server Manager появился в операционной системе Windows Server 2008. Однако, в версии Windows Server 2012 внешний вид Server Manager был радикально изменён. Когда я иногда обращал на него внимания, то не понимал, как такая разноцветная программа может управлять чем-то на сервере, то есть с точки зрения моего мозга, привыкшего к серости серверных операционок Server Manager казался несерьезной побрякушкой. Я не понимал, что Server Manager под Windows Server 2012 – это потомок Server Manager под Windows Server 2008

В принципе не мудрено запутаться, ведь привычная древовидная структура, в виде которой были представлены все роли, фичи, логи и т.д. были заменены на простой список ролей в левой части окна. Лишь через полгода после первой встречи с Server Manager на Windows Server 2012, я начал понимать, что эта программа может служить не только для добавления ролей, консолей и фич. Оказывается, благодаря Server Manager можно держать под контролем всю серверную (и не только) инфраструктуру организации. Даже не представляю, как раньше я обходился без этого менеджера.

Читайте так же:
Подключения счетчика отдельно ноль

Прозрение по поводу полезности сервер менеджера пришло ко мне после настройки RDS. Там четко указывалось, что настройку нескольких серверов надо производить с одного сервера. Я сразу оценил удобство, не надо ходить с одного сервера на другой, а можно установить все роли тут же с одного сервера, просто запуская процессы на остальных, даже не видя их рабочие столы и это с использованием GUI, а не Powershell. Затем я заметил, что в разделе Dashboard отображаются проблемы, которые есть на сервере, при этом если в Server Manager добавить несколько серверов, то отображаются уведомления со всех серверов.

Кроме всего прочего, после установки RSAT на Windows 8, Server Manager доступен и здесь. Я решил попытаться мониторить серверы прямо с рабочего места. Добавил все серверы организации в сервер менеджер, доустановил, где это было необходимо WinRM 4. Конечно, не без проблем, но со временем в дашборде Server Manager появились уведомления о проблемах. Особенно полезным мне показалось наличие уведомлений о превышении порога нагрузки на центральный процессор и оперативную память. Тут нет возможности настроить уведомления на почту или в линк, однако, достаточно несколько раз в день заглянуть в Server Manager, чтобы быть в курсе происходящего на серверах.

О чем уведомляет Server Manager:

  1. необходимость перезагрузки сервера (после установки обновлений или ролей);
  2. ошибки в журнале событий Windows;
  3. службы Windows находятся в неположенном состоянии;
  4. превышение порога загрузки процессора и памяти;
  5. не соответствие рекомендациям BPA.

И всё это в одном окне. Как я уже ранее упоминал, самым полезным мне показалось возможность получать уведомление о проблемах с производительностью на сервере. Для того, чтобы получать эти уведомления, необходимо на сервере запустить счётчики производительности. Они будут сохранять показатели загрузки процессора и памяти в папку C:PerfLogs на сервере, где запущены счетчики производительности. При этом размер папки при сборе недельной статистики не превышает 50Мб.

Если на каком-то сервере возникли проблемы с производительностью, через Server Manager даже можно посмотреть, какие процессы сколько процессорного времени использовали в критический момент.

После того как Server Manager настроен, туда добавлены серверы, необходимо как-то обновлять этот список серверов. Оказалось, для того, чтобы автоматизировать этот процесс необходимо изменять XML файл, в котором хранится список управляемых серверов. Логично для этого использовать Powershell. Ниже скрипт, который по расписанию запускается каждый день пока я хожу на обед и автоматически обновляет список серверов в Server Manager.

Вот и всё, чем я хотел поделить с миром о Server Manager. Надеюсь, и читатель найдёт полезным этот инструмент администрирования, хотя он, конечно не заменит Saqwel Remote Administration Tool.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector