Мониторинг sharepoint 2013/2016: ключевые счетчики производительности

Консоль Server Manager в Windows Server 2012

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

По сути, консоль Server Manager является графической оберткой для генерации скриптов PowerShell (эта функционал не понаслышке знаком администраторам Exchange 2010). Например, в консоли управления AD — Active Directory Administrative Center появилась специальная панель — PowerShell History,в которой генерируются и отображаются скрипты, дублирующие действия администратора в GUI, и данный код можно использовать в дальнейшем для автоматизации некоторых задач по управлению параметрами и объектами Active Directory.

В новой консоли Server Manager появились следующие возможности:

Консоль Server Manager запускается автоматически при входе на сервер и первое, что видит администратор – это панель Dashboard. На данной панели отображается текущее состояние серверов, подключенных к данной консоли Server Manager. В том случае, если наблюдались какие-либо проблемы с сервером или группой серверов, около элементов, требующих внимания администратора появляются красные значки (если присутствуют только зеленые элементы – все ОК).

В верхнем тулбаре окна располагаются несколько иконок и пункты меню: Manage, Tools, View и Help.

С помощью иконки Refresh можно вручную обновить информацию на панели Dashboard. Кроме того тут расположена иконка в виде флажка, если он красного цвета, то щелчок по нему покажет все обнаруженные на серверам проблемы.

В меню управления (Manage) присутствуют пункты Add Roles and Features, Remove Roles and Features (установка/удаление ролей и функций), Add servers (добавление серверов в группу управления), Create Group (создать группу серверов) и Server Manager Properties (настройки консоли Server Manager: периодичность обновления, автоматический запуск).

В меню Tools присутствуют ссылки на различные MMC консоли и другие утилиты администрирования. В данное меню можно добавить собственные инструменты (Как добавить собственные утилиты в Server Manager).

В правой панели содержаться следующие элементы: Dashboard, Local Server, All Servers и несколько групп серверов, созданных администратором. В центральной панели можно осуществить настройку локального сервера, управлять ролями и функциями и управлять группами серверов.

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

В разделе All Servers содержится практически та же самая информация, что и у локального сервера, отличия в том, что из данного раздела можно просмотреть параметры сразу нескольких серверов.

В консоли можно создать несколько групп серверов по какому-либо признаку, например, “сервера филиала в Рязани”, все контроллеры домена, Exchange или Web сервера. Причем на данные сервера совсем не обязательно должна стоять Windows Server 2012, это могут быть и Windows 2008/R2/2003/R2, главное, чтобы на них был установлен и активирован пакет WinRM 3.0.

Добавить сервера в консоль можно с помощью соответствующего меню.

Щелкнув правой кнопкой по любому серверу в группе серверов, можно открыть меню, позволяющее запустить установку ролей, rdp клиент, открыть консоль управления сервером и т.д.

Этап III. Получение данных и их обработка в 1С

 Теперь нужно получить данные из этой БД и как-то интерпретировать. Для этого нам понадобятся 2 функции:

Подключение к БД:

СоединениеADO = Новый COMОбъект("ADODB.Connection");
ConnectionString = "Provider=SQLOLEDB.1;Data Source='"+СокрЛП(Сервер)+"';Initial Catalog='"+СокрЛП(База)+"';uid="+СокрЛП(Пользователь)+"; pwd="+СокрЛП(Пароль)+";";
СоединениеADO.Open(ConnectionString); 

Получение данных из БД

НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");		
НаборЗаписей.ActiveConnection= СоединениеADO;			
НаборЗаписей.Open(ТекстЗапроса);

 В описываемом примере используется только 1 счетчик, но на самом деле их может быть много, поэтому сначала получим их список из таблицы :

ТекстЗапроса = "SELECT 
 | ,
 | ,
 | ,
 | ,
 | ,
 | FROM 
 | ORDER BY ObjectName, CounterName, instanceName";

 Результат разбиваем на 3 списка (можно одним, но не наглядно):

  1. Список объектов контроля (ОЗУ, процессор и т.д.)
  2. Список счетчиков
  3. Список экземпляров (Например нагрузку на процессор можно отслеживать в общем, а можно по ядрам)

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

ТекстЗапросаСч = "SELECT 
 | 
 | ,
 | FROM 
 | WHERE CounterID = '" + IDСчетчика + "' AND ( >= '" + Формат(ДатаСарт, "ДФ='yyyy-MM-dd HH:mm:ss.000'") + "' AND  <= '" + Формат(ДатаФиниш , "ДФ='yyyy-MM-dd HH:mm:ss.999'")+ "')
 | ORDER BY CounterDateTime ASC";

Для построения графика достаточно выбрать CounterDateTime и CounterValue.

В итоге получилась обработка следующего вида.

Для удобства помимо графика на форму выведены таблицы результатов запросов.

Настройки подключения к БД видны на закладке «Настройки». В событии»ПриСозданииНаСервере» можно прописать их автозаполнение

Дополнительно:

При контроле сервера каждому требуется свой состав счетчиков. Каждый для себя определяет границы счетчиков, превышение которых не желательно (это могут быть рекомендованные показатели или выбранные для себя эмпирически). Чтобы всё это не держать в голове, было принято решение вести в обработке таблицу соответствия:

1. Имя счётчика (в нижнем регистре)

2. Значение которое будет отчерчено на графике зеленой линией

3. Описание счетчика.

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

Стр = ТаблицаЭталонов.Добавить();
Стр.Имя = "pages/sec";
Стр.Значение = 1000;
Стр.Описание = "Указывает скорость чтения и записи страниц на диск для разрешения серьезных сбоев страниц. Этот счетчик является основным указателем типов сбоев, которые приводят к задержкам во всей системе. Он показывает количество полученных страниц для компенсации сбоев страниц в кэше файловой системы. Эти страницы обычно требуются приложениями. Значение этого счетчика не должно превышать 1000 в любое время.";

Никаких уникальных технологий не применялось, всё сделано именно на уровне «для чайников», из-за этого кому-то код может показаться «не на уровне». Так что пожелания и конструктивная критика — приветствуются. 

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

В Windows 10 вы найдете не менее пяти способов доступа к системному монитору. Лично я использую только первый метод, но не стесняйтесь использовать тот, который вам наиболее знаком и удобен.

  • С помощью поиска Windows: Открой Стартовое меню, ищи Монитор производительности, и запустите системный монитор (который должен быть помечен как настольное приложение).
  • С помощью административных инструментов: Открой Панель управления и перейдите к Система и безопасность> Администрирование, затем дважды щелкните ярлык системного монитора.
  • С помощью подсказки «Выполнить»: Использовать Windows ключ + R ярлык для запуска подсказки запуска (один из многих сочетаний клавиш Windows для изучения

    ), затем введите Perfmon и нажмите Хорошо.

  • Через командную строку: Использовать Windows ключ + X ярлык, чтобы открыть меню Power User (одна из многих сверхспособностей Windows для изучения

    ), затем нажмите на Командная строка. В командной строке введите Perfmon и ударил Войти.

  • Через Windows PowerShell: запуск PowerShell используя ваш метод выбора, затем введите Perfmon и ударил Войти. Этот метод наиболее полезен, если вы уже являетесь обычным пользователем PowerShell.

    ,

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

Системный монитор

Системный монитор позволяет отслеживать счетчики различных системных объектов операционной системы. Например, объект “Физический диск” содержит счетчики “Процент активности диска” и “Средняя длина очереди диска”, а объект “Память” — счетчик “Вывод страниц/с”.

Способы запуска:

  • выбрать “Системный монитор” в меню “Средства” диспетчера серверов;
  • выполнить команду “perfmon” в командной строке или окне “Выполнить”;
  • выбрать “Системный монитор” в группе “Администрирование” панели управления.

Системный монитор состоит из трех основных компонентов: “Средства наблюдения”, “Группы сборщиков данных” и “Отчеты”. В разделе “Средства наблюдения” находится системный монитор, с помощью которого можно наблюдать показания счетчиков в реальном времени или просматривать ранее сохраненные отчеты. Раздел “Группы сборщиков данных” содержит набор счетчиков за которыми будет вестись наблюдение. Для диагностики можно воспользоваться двумя готовыми системными группами или создать собственные. В разделе “Отчеты” сохраняются результаты мониторинга.

Рассмотрим диагностику используя готовую группу сборщиков данных “System Performance (Производительность системы)”

1. Переходим в раздел “Группы сборщиков данных” — “Системные” и запускаем группу “System Performance (Производительность системы)”

2. Ожидаем завершения сбора данных, продолжительность по умолчанию 1 минута, и открываем отчет в разделе “Отчеты” — “System Performance”

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

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

Отчеты хранятся в обычных файлах в папке “c:\Perflog”, поэтому их легко можно перенести на другой компьютер.

Встроенные группы сборщиков данных недоступны для редактирования, но для групп созданных вручную можно задавать различные параметры, например общую длительность сбора данных или время запуска по расписанию.
Для создания группы нужно щелкнуть правой кнопкой мыши по папке “Особые” в разделе “Группы сборщиков данных”, выбрать “Создать” — “Группа сборщиков данных” и следовать указаниям мастера. Если на созданной группе щелкнуть правой кнопкой мыши и выбрать “Свойства”, откроется окно в котором можно изменить параметры по умолчанию.

Мониторинг на SQL Server

Контроль дисковой подсистемы

Контроль использования ЦП

  • компиляции и рекомпиляции планов выполнения;
  • сортировки;
  • хеширования.

<Экземпляр SQL Server>SQL Statistics\SQL Compilations/sec

  • Изменением схемы, включая базовые изменения (добавление в таблицу столбцов или индексов) или статистической схемой (вставка или удаление значительного числа строк в таблице);
  • Изменением среды (инструкцией SET). Изменениями параметров сеанса (например, повторную компиляцию запроса может вызвать предложение ANSI_PADDING или ANSI_NULLS).

Пример показаний счетчиков мониторинга ЦП

Batch Requests
/sec
SQL Compilations
/sec
SQL ReCompilations
/sec
Workfiles Created
/sec
Processor Queue Length
19,998 0,675 0,006 1,267 0,151
  • Соотношение между SQL Compilations/sec и Batch Requests/sec
    0,6/19 = 0.03
    Показывает, что в 3% случаев выполнения процедур выполняются компиляции новых запросов. Это говорит о том, что в БД присутствует минимальное число динамических запросов. Рекомендуемое значение SQL Compilations/sec должно составлять менее 10% от значения Batch Requests/sec. Показатель в пределах нормы.
  • Соотношение между SQL ReCompilations/sec и SQL Compilations/sec
    0,006/0,6 = 0.01
    Показывает, что в 1% случаев выполняется повторная компиляция ранее скомпилированных запросов. Рекомендуемое значение SQL Recompilations/sec должно составлять менее 10% от значения SQL Compilations/sec. Показатель в пределах нормы.
  • Соотношение между Workfiles Created/sec и Batch Requests/sec
    1/19 = 0.05
    Показатель в пределах нормы.
Batch Requests/sec Отношение SQL Compilations/sec к Batch Requests/sec Отношение SQL ReCompilations/sec к SQL Compilations/sec Отношение Workfiles Created/sec к Batch Requests/sec
Средний показатель в рассматриваемой системе в рабочее время 0,034 0,01 0,06
Рекомендуемое значение показателя Не более 0.1 Не более 0.1 Не более 0.2
Выполняемость рекомендаций в рассматриваемой системе да да да

Мониторинг использования памяти

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

SQL максимальный размер ОЗУTotalPhyMemNumOfSQLThreadsThreadStackSizeNumOfCoresRAMOSReserveRAMForOtherApps

  • TotalPhyMem – общий физический размер ОЗУ на сервере.
  • NumOfCores – кол-во ядер процессоров.
  • NumOfSQLThreads – кол-во потоков, использующихся на сервере для обработки запросов к базам данных. При кол-ве ядер до 4 значение NumOfSQLThreads всегда постоянно и равно 256. При кол-ве ядер свыше 4 расчет выполняется по формуле: NumOfSQLThreads = 256 + (NumOfCores- 4) * 8.
  • ThreadStackSize = 2Мб для серверов x64. Для серверов IA64 ThreadStackSize=4Мб.
  • RAMOSReserved – ОЗУ для операционной системы. 20% для серверов с TotalPhyMem не более 15 Гб и 12,5% для большего объема.
  • RAMForOtherApps – ОЗУ для других экземпляров SQL-сервера и приложений.
  • TotalPhyMem = 98276 Мб.
  • NumOfCores = 32.
  • NumOfSQLThreads = 256 + (32- 4) * 8 = 480.
  • ThreadStackSize = 2 Мб.
  • RAMOSReserved = 12,5% * 98276 Мб = 11793 Мб.
  • RAMForOtherApps – Заказчик должен самостоятельно определить это значение. В текущих расчетах предполагаем значение в 8 000 Мб на второй экземпляр SQL.

SQL максимальный размер ОЗУ

<Экземпляр SQL Server> Memory Node \Total Server Memory

Пример показаний счетчиков мониторинга использования памяти

Target Server Memory (КiВ) Total Server Memory (КiВ) Buffer cache hit ratio Page Life Expectancy Lazy Writes
/sec
Memory Grants Pending
5312958 3683571 99,92% 9 905 712 10,739 0,018

подробнее здесь

Дополнительные сведения

Чтобы войти в журнал данных и создавать оповещения на удаленном компьютере без входа на него, выполните следующие действия:

Примечание

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

  1. Установите набор Windows NT 4.0 на удаленном компьютере.

  2. На локальном компьютере Windows NT performance Monitor (Perfmon.exe) для создания файла рабочего пространства:

    1. Запустите монитор производительности и нажмите кнопку Войти в меню Просмотр.
    2. Добавьте соответствующие счетчики, указав все объекты, которые необходимо ввести, и оповещения, которые необходимо создать.
    3. В меню Параметры нажмите кнопку Журнал.
    4. В поле Имя файла укажите имя файла журнала с помощью расширения журнала.
    5. Щелкните один из параметров интервала ведения журнала и нажмите кнопку Сохранить, чтобы сохранить параметры ведения журнала.
    6. В меню File нажмите кнопку Сохранить рабочее пространство.
    7. В поле Имя файла введите имя файла рабочей области с помощью расширения .pmw и нажмите кнопку Сохранить.
    8. Выход монитора производительности.
  3. Скопируйте только что созданный файл рабочего пространства и файл Datalog.exe, включенный с набором ресурсов Windows NT 4.0 4.0 в папку %SystemRoot%\System32 на удаленном компьютере.

  4. На локальном компьютере установите службу ведения журнала данных для удаленного компьютера:

    1. В командной строке введите следующую команду, а затем нажмите клавишу ВВОД:

      Эта команда регистрирует службу с Windows NT Server 4.0. Вы должны выполнить команду только один раз для каждого компьютера, который вы хотите контролировать. Если вы получаете следующее сообщение об ошибке:

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

    2. Чтобы использовать файл рабочего пространства для ведения журнала, введите следующую команду и нажмите кнопку ENTER:

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

  5. Чтобы запустить процесс мониторинга, введите следующую команду и нажмите кнопку ENTER:

  6. Чтобы остановить процесс мониторинга, введите следующую команду и нажмите кнопку ENTER:

    После остановки процесса мониторинга можно просмотреть файл журнала в мониторе производительности. Инструкции по этому поводу см. в справке по мониторингу производительности.

    Кроме того, вы можете использовать службу Schedule и команду AT, чтобы запланировать мониторинг, который будет происходить в установленные сроки. Например, если сервер заметно замедляется между 02:40. и в 2:50. каждую неделю можно войти в журнал данных за этот период, не будучи физически присутствующими, введя следующие команды AT:

    Если вы хотите, чтобы вам напомнили о журнале, введите следующую команду и нажмите кнопку ENTER:

Методика оптимизации программного кода 1С: проведение документов

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

Просмотр заблокированных строк в 1С

Ввиду своей деятельности, мне часто приходится рассказывать про различные аспекты оптимизации и в том числе про блокировки.
Очень часто слушатели задают следующие вопросы:
Как посмотреть в реальном времени, какие именно данные сейчас заблокированы?
Как понять, что сейчас заблокировано в терминах 1С?
Если гранулярность блокировки страница, как увидеть, какие данные в ней находятся?

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

1 стартмани

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: