Каждый опытный сисадмин знает, что лучший показатель ухудшения быстродействия 1С, это главный бухгалтер, движущийся в сторону ИТ отдела со скоростью, превышающей 1.1 м/с. Но только мудрейшие из них настраивают сбор счетчиков, чтобы эта встреча не застала их врасплох. Об этом и поговорим под катом…

Эпиграф:
Существуют две причины, по которым может тормозить компьютер:
1. Вирус.
2. Антивирус.
© советы бывалых сисадминов
Не ошибусь, если скажу, что каждый офисный админ сталкивался с вопросом: Почему тормозит 1С?
И опять же не ошибусь, если первое что он(а) при этом сделает, это откроет диспетчер задач.
Более продвинутые, конечно настроят сбор счетчиков Performance Monitor (Zabbix в данном контексте примерно то же самое).
Тем более, что инструкций, чек-листов по настройке более чем достаточно. Это то и пугает.
Попробую предложить вам обзор основных и свою компиляцию.
Внимание!
Название счетчиков отличается не только в зависимости от языка операционной системы, но и от ее редакции.
Добавим к этому видение и ошибки авторов публикаций и поймем, что простой копипаст может не сработать.
В случае же perfmon это усугубится тем, что никаких ошибок при создании счетчиков в командной строке вам выдано не будет, просто они не будут собираться.
Для того, чтобы увидеть список всех счетчиков производительности, имеющихся на текущем компьютере нужно в командной строке выполнить
Где необязательный параметр [object] это фильтр по виду счетчиков, например PhysicalDisk
Этот вывод можно переадресовать в файл и далее уже из него выбирать необходимое
typeperf -qx -y -o counters.txt
В дальнейшем, чтобы получить сводную статистику нужно заменить в случае ключа -qx имя конкретного экземпляра на (_Total), а чтобы получить статистику для каждого экземпляра отдельно на (*)
Например:
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
Рекомендуемый мной путь, это создать bat файл из 3 строк.
logman create counter 1C_counter -f bincirc
logman update counter 1C_counter -cf assembled.txt
logman update counter 1C_counter -si 15 -v mmddhhmm
А в файл assembled.txt добавлять названия счетчиков. По одному на строку. Рабочий и рекомендуемый мной пример для Windows Server 2012 R2 ENG будет внизу.
Собственно торопыжки могут дальше и не читать. Да они уже и не читают.
С остальными разберемся с рекомендациямилучших собаководов
Начнем с изучения советов самого вендора: microsoft.com
Публикация Windows VM health
Используя этот вариант вы точно не ошибетесь, но в нем присутствуют счетчики не совсем нужные для мониторинга именно сервера 1С.
Далее, а скорее и выше, в моем топе вариантов идет рекомендация от Евгения Валерьевича Филиппова
Настольная книга 1С: Эксперта по технологическим вопросам. Издание 2
Список небольшой, но все по делу и видно, что автор его использовал в работе.
Список книги Методическое пособие по эксплуатации крупных информационных систем на платформе «1С: Предприятие 8»
А. Асатрян, А. Голиков, А. Морозов, Д. Соломатин, Ю.Федоров
еще лаконичнее, в него добавлен мониторинг 1cv8, ragent, rphost, rmngr его я вынесу в отдельный список, потому что он может и наверное не помешает при любом варианте, кроме разнесенных SQL и 1С серверов.
Список счетчиков оборудования.
Далее идет статья с ИТС Анализ загруженности оборудования для Windows Елена Скворцова и ее полная копия на kb у кого есть туда доступ, в ней подробно и с картинками описан весь процесс настройки. Для первой настройки это очень полезно.
При всей полезности и доступности статьи не покидает ощущение, что ее писали как знаменитое письмо Матроскина: "ваш сын дядя Шарик", разные люди. Например текст не совпадает с картинками, для некоторых счетчиков описаны пороговые значения, но в списке их нет, некоторые счетчики в списке двоятся, из-за этого не получится копипастом в командной строке запустить logman. Это как раз начинающих немного обескураживает.

Лирическое отступление: Не прошло и месяца с регионального тура конкурса ИТС, где один из вопросов был именно так составлен, в коде вариант ответа один, а в картинке и математически верный совсем другой. Организаторы опирались именно на корректность кода. Хотя понятно, код проверяют слабо, во всех научных книгах об этом предупреждают заранее.
Замыкают список иностранныеагенты вендоры.
www.veritas.com Analyzing SQL Performance using Performance Monitor Counters
Понятно, что про 1С они и слыхом не слыхивали, но то, что серверов они видели на порядок более, это факт.
red-gate.com
SQL Server performance and activity monitoring
Что касается, счетчиков для MS SQL, то мой список был в начале публикации.
Вариантов невероятное множество как и экспертов (не факт, что сейчас один из них не съехал тихо под стол при виде его).
Впрочем, настоящий скульный админ никогда не покажет своего отношения, максимум поиграет бровями и пойдет слушать музыку сервера.
Желающие могут провести пару зимних (летних) вечеров разбирая полный список.
— Штурман, приборы!
— Четырнадцать.
— Что четырнадцать?
— А что, приборы!?
©www.anekdot.ru
Бдительный читатель скажет: Мало собрать счетчики оборудования, надо их еще и проанализировать.
А я покажу ему вот эту таблицу.
Техническое отступление: Хотя ней выражено мнение уважаемых экспертов, относиться к нему надо с пониманием.
Например, многие вспомнят времена, когда они умоляли директора докупить планку 32 Мб в сервер упомянутой выше бухгалтерии. То же касается и скорости дисков. Эти значения устаревают.
Внимание!
Что означает словосочетание "Предельные значения". То что их превышение требует вашего внимания и сервер работает не совсем штатно по мнению собравшихся. Не более того. Более того, может быть как раз для вашего варианта работы это нормально.
Возможно у вас есть свое мнение по поводу мониторинга оборудования, приходите в комментарии, пишите свои мысли, желательно со ссылками на источники знаний.

Эпиграф:
Существуют две причины, по которым может тормозить компьютер:
1. Вирус.
2. Антивирус.
© советы бывалых сисадминов
Не ошибусь, если скажу, что каждый офисный админ сталкивался с вопросом: Почему тормозит 1С?
И опять же не ошибусь, если первое что он(а) при этом сделает, это откроет диспетчер задач.
Более продвинутые, конечно настроят сбор счетчиков Performance Monitor (Zabbix в данном контексте примерно то же самое).
Тем более, что инструкций, чек-листов по настройке более чем достаточно. Это то и пугает.
Попробую предложить вам обзор основных и свою компиляцию.
Внимание!
Название счетчиков отличается не только в зависимости от языка операционной системы, но и от ее редакции.
Добавим к этому видение и ошибки авторов публикаций и поймем, что простой копипаст может не сработать.
В случае же perfmon это усугубится тем, что никаких ошибок при создании счетчиков в командной строке вам выдано не будет, просто они не будут собираться.
Для того, чтобы увидеть список всех счетчиков производительности, имеющихся на текущем компьютере нужно в командной строке выполнить
- typeperf -q [object] выведет список всех счетчиков
- typeperf -qх [object] выведет список всех счетчиков по экземплярам оборудования, например отдельно для дисков А: и С:
Где необязательный параметр [object] это фильтр по виду счетчиков, например PhysicalDisk
Этот вывод можно переадресовать в файл и далее уже из него выбирать необходимое
typeperf -qx -y -o counters.txt
В дальнейшем, чтобы получить сводную статистику нужно заменить в случае ключа -qx имя конкретного экземпляра на (_Total), а чтобы получить статистику для каждого экземпляра отдельно на (*)
Например:
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
Рекомендуемый мной путь, это создать bat файл из 3 строк.
logman create counter 1C_counter -f bincirc
logman update counter 1C_counter -cf assembled.txt
logman update counter 1C_counter -si 15 -v mmddhhmm
А в файл assembled.txt добавлять названия счетчиков. По одному на строку. Рабочий и рекомендуемый мной пример для Windows Server 2012 R2 ENG будет внизу.
список под спойлером
\Processor(_Total)\% Processor Time
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\Memory\Available MBytes
\Memory\Pages/sec
\Memory\% Committed Bytes In Use
\Paging File(*)\% Usage
\System\Context Switches/sec
\System\Processor Queue Length
\System\Processes
\System\Threads
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk sec/Read
\PhysicalDisk(_Total)\Avg. Disk sec/Write
\Network interface(_Total)\Bytes Total/sec
\Network interface(_Total)\Current Bandwidth
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
\SQLServer:General Statistics\User Connections
\SQLServer:General Statistics\Processes blocked
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\SQLServer:Access Methods\Page Splits/sec
\SQLServer:Access Methods\Forwarded Records/sec
\SQLServer:Access Methods\Full Scans/sec
\SQLServer:Memory Manager\Target Server Memory (KB)
\SQLServer:Memory Manager\Total Server Memory (KB)
\SQLServer:Memory Manager\Free Memory (KB)
\SQLServer:Databases(_Total)\Transactions/sec
\SQLServer:Databases(*)\Transactions/sec
\Processor(_Total)\% Processor Time
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\Memory\Available MBytes
\Memory\Pages/sec
\Memory\% Committed Bytes In Use
\Paging File(*)\% Usage
\System\Context Switches/sec
\System\Processor Queue Length
\System\Processes
\System\Threads
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk sec/Read
\PhysicalDisk(_Total)\Avg. Disk sec/Write
\Network interface(_Total)\Bytes Total/sec
\Network interface(_Total)\Current Bandwidth
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
\SQLServer:General Statistics\User Connections
\SQLServer:General Statistics\Processes blocked
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\SQLServer:Access Methods\Page Splits/sec
\SQLServer:Access Methods\Forwarded Records/sec
\SQLServer:Access Methods\Full Scans/sec
\SQLServer:Memory Manager\Target Server Memory (KB)
\SQLServer:Memory Manager\Total Server Memory (KB)
\SQLServer:Memory Manager\Free Memory (KB)
\SQLServer:Databases(_Total)\Transactions/sec
\SQLServer:Databases(*)\Transactions/sec
Собственно торопыжки могут дальше и не читать. Да они уже и не читают.
С остальными разберемся с рекомендациями
Начнем с изучения советов самого вендора: microsoft.com
Публикация Windows VM health
таблица под спойлером
Группа оборудования | Название счетчика |
Logical disk | |
Logical disk average disk seconds per transfer | |
Logical disk average disk seconds per write | |
Logical disk current disk queue length | |
Logical disk free space megabytes low | |
Logical disk percent idle time | |
Logical disk free space percent low | |
File system error or corruption | |
Operating system | |
Memory available megabytes | |
Memory free system page table entries | |
Memory pages per second | |
Memory percent committed memory in use | |
Total CPU utilization percentage | |
DHCP Client service health | |
DNS Client Service Health | |
Event Log service health | |
Windows Firewall service health | |
RPC service health | |
Server service health | |
Windows Remote Management (WinRM) service health | |
Network adapter | |
Network adapter connection health | |
Network adapter percent bandwidth used read | |
Network adapter percent bandwidth used total | |
Network adapter percent bandwidth used write | |
Disk | |
Disk current disk queue length | |
Disk percent idle time | |
Disk average seconds per read | |
Disk average disk seconds per transfer | |
Disk average disk seconds per write |
Используя этот вариант вы точно не ошибетесь, но в нем присутствуют счетчики не совсем нужные для мониторинга именно сервера 1С.
Далее, а скорее и выше, в моем топе вариантов идет рекомендация от Евгения Валерьевича Филиппова
Настольная книга 1С: Эксперта по технологическим вопросам. Издание 2
Список небольшой, но все по делу и видно, что автор его использовал в работе.
таблица под спойлером
Группа оборудования | Счетчик | Предельные значения |
Logical disk | ||
Operating system | ||
\Memory(_ Total)\%% Committed Bytes In Use | Не должен превышать размер оперативной памяти. | |
\Memory(_Total)\Available Bytes | Приближение к нулю свидетельствует о недостатке оперативной памяти. | |
\Memory(_Total)\Pages/sec | ||
\Processor(_Total)\%% Processor Time | Не более 70 % в течение длительного времени. | |
\System(_Total)\Processor Queue Length | Не более 2 * количество ядер процессоров в течение длительного времени | |
Network adapter | ||
\Network lnterface(*)\Bytes Total/ sec | ||
Disk | ||
\PhysicalDisk(*)\Avg. Disk Queue Length | Не более 2 * количество дисков, работающих параллельно | |
\PhysicalDisk(_Total)\Avg. Disk Queue Length | ||
\PhysicalDisk(_Total)\Avg. Disk Sec/Read | При работе с дисковым кешем нормальное время на чтение или запись обычно составляет менее 10 мс. В случае работы с дисками время на чтение или запись не должно превышать 50-200 мс. | |
\PhysicalDisk(_Total)\Avg. Disk Sec/Write |
Список книги Методическое пособие по эксплуатации крупных информационных систем на платформе «1С: Предприятие 8»
А. Асатрян, А. Голиков, А. Морозов, Д. Соломатин, Ю.Федоров
еще лаконичнее, в него добавлен мониторинг 1cv8, ragent, rphost, rmngr его я вынесу в отдельный список, потому что он может и наверное не помешает при любом варианте, кроме разнесенных SQL и 1С серверов.
таблица под спойлером
"\Process("1cv8*")\%%Processor Time"
"\Process("1cv8*")\Private Bytes"
"\Process("1cv8*")\Virtual Bytes"
"\Process("ragent*")\%%Processor Time"
"\Process("ragent*")\Private Bytes"
"\Process("ragent*")\Virtual Bytes"
"\Process("rphost*")\%%Processor Time"
"\Process("rphost*")\Private Bytes"
"\Process("rphost*")\Virtual Bytes"
"\Process("rmngr*")\%%Processor Time"
"\Process("rmngr*")\Private Bytes"
"\Process("rmngr*")\Virtual Bytes"
или как вариант без разбиения
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
"\Process("1cv8*")\Private Bytes"
"\Process("1cv8*")\Virtual Bytes"
"\Process("ragent*")\%%Processor Time"
"\Process("ragent*")\Private Bytes"
"\Process("ragent*")\Virtual Bytes"
"\Process("rphost*")\%%Processor Time"
"\Process("rphost*")\Private Bytes"
"\Process("rphost*")\Virtual Bytes"
"\Process("rmngr*")\%%Processor Time"
"\Process("rmngr*")\Private Bytes"
"\Process("rmngr*")\Virtual Bytes"
или как вариант без разбиения
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
Список счетчиков оборудования.
таблица под спойлером
Группа оборудования | Счетчик |
Logical disk | |
\LogicalDisk(_Total)\Free Megabytes | |
Operating system | |
\Memory(_Total)\Pages/sec | |
\Memory\Available Mbytes | |
\Processor(_Total)\%% Processor Time | |
\System(_Total)\Processor Queue Length | |
Network adapter | |
\Network lnterface(*)\Bytes Total/ sec | |
Disk | |
\PhysicalDisk(*)\Avg. Disk Bytes/Read | |
\PhysicalDisk(*)\Avg. Disk Bytes/Write | |
\PhysicalDisk(*)\Avg. Disk Queue Length | |
\PhysicalDisk(_Total)\Avg. Disk Queue Length |
Далее идет статья с ИТС Анализ загруженности оборудования для Windows Елена Скворцова и ее полная копия на kb у кого есть туда доступ, в ней подробно и с картинками описан весь процесс настройки. Для первой настройки это очень полезно.
При всей полезности и доступности статьи не покидает ощущение, что ее писали как знаменитое письмо Матроскина: "ваш сын дядя Шарик", разные люди. Например текст не совпадает с картинками, для некоторых счетчиков описаны пороговые значения, но в списке их нет, некоторые счетчики в списке двоятся, из-за этого не получится копипастом в командной строке запустить logman. Это как раз начинающих немного обескураживает.

Лирическое отступление: Не прошло и месяца с регионального тура конкурса ИТС, где один из вопросов был именно так составлен, в коде вариант ответа один, а в картинке и математически верный совсем другой. Организаторы опирались именно на корректность кода. Хотя понятно, код проверяют слабо, во всех научных книгах об этом предупреждают заранее.
таблица под спойлером
Группа оборудования | Счетчик | Предельные значения |
Logical disk | ||
\LogicalDisk(_Total)\% Free Space | ||
Operating system | ||
\Memory\Available Mbytes | ||
\Processor(_Total)\% Idle Time | ||
\Processor(_Total)\% Processor Time | Не более 70% в течение длительного времени | |
\Processor(_Total)\% User Time | ||
\Processor(_Total)\Interrupts/sec | ||
\System\Context Switches/sec | ||
\System\File Read Bytes/sec | ||
\System\File Write Bytes/sec | ||
\System\Processes | ||
\System\Processor Queue Length | Не более 2 * количество ядер процессоров в течение длительного времени | |
\System\Threads | ||
Memory Pages/sec Интенсивность обмена между дисковой подсистемой и оперативной памятью Среднее: около 0 Максимальное: не более 20 |
||
Network adapter | Не более 65% от пропускной способности сетевого адаптера | |
Disk | ||
\PhysicalDisk(_Total)\Avg. Disk Queue Length | Не более 2 * количество дисков, работающих параллельно | |
\PhysicalDisk(_Total)\Avg. Disk Sec/Read | ||
\PhysicalDisk(_Total)\Avg. Disk Sec/Write |
Замыкают список иностранные
www.veritas.com Analyzing SQL Performance using Performance Monitor Counters
Понятно, что про 1С они и слыхом не слыхивали, но то, что серверов они видели на порядок более, это факт.
таблица под спойлером
Группа оборудования | Счетчик | Предельные значения |
Logical disk | ||
Operating system | ||
Memory: Available Bytes | Этот показатель должен быть выше 25% установленной памяти. Обратите внимание, что это значение является динамическим и отображает только последнее проверенное значение, а не среднее | |
Memory: Cache Faults /sec | ||
Memory: Page Faults /sec | ||
Memory: Page Input /sec | не должно превышать 15 | |
Memory: Page Reads /sec | постоянные значения выше 5 указывают на более пристальный взгляд на Физический диск | |
Memory: Pages/sec | В среднем 20 или меньше — это нормально | |
Paging File: % Usage | ||
Processor: % Processor Time_Total | Не превышать 80% в течение 10+ минут в течение 24 часов | |
System: Processor Queue Length | Не должно превышать 2 на процессор в течение 10+ минут в течение 24 часов. Например, если сервер содержит 4 процессора, количество не должно превышать 8 за 10-минутный период. | |
Network adapter | ||
Network Interface: Bytes Received/sec | ||
Network Interface: Bytes Sent/sec | ||
Network Interface: Bytes/sec | ||
Network Interface: Output Queue Length | всегда должна быть 0, но может достигать 2 на мгновение | |
Disk | ||
Physical Disk: Disk Writes/sec | ||
Physical Disk: Disk Reads/sec | должно быть меньше 20 мс, если более 50 мс указывает на серьезное узкое место | |
Physical Disk: Avg. Disk Write Queue Length | Длина очереди диска (не должна быть больше, чем количество шпинделей плюс 2) | |
Physical Disk: Avg. Disk Write /sec | ||
Physical Disk: Avg. Disk Read Queue Length | ||
Physical Disk: Avg. Disk Read /sec | ||
Physical Disk: Avg. Disk Queue Length | Превышение 2 на диск (3 дисковых массива = 6) на 10+ минут в течение 24 часов указывает на узкое место диска. |
red-gate.com
SQL Server performance and activity monitoring
таблица под спойлером
Группа оборудования | Счетчик | Предельные значения |
Logical disk | ||
Logical Disk: Avg. Disk Queue Length | Из-за изменений в технологиях, таких как виртуализация, технология дисков и контроллеров, SAN и многое другое, этот счетчик больше не является хорошим индикатором узких мест ввода-вывода. Лучшим показателем узких мест ввода-вывода является Disk avg. время чтения и средн. время записи | |
Logical Disk: Avg. Disk sec/Read | Для дисков с файлами MDF и NDF и загрузкой OLTP средняя задержка чтения в идеале должна быть ниже 20 мс. Для дисков с нагрузкой OLAP приемлемой считается задержка до 30 мс. Для дисков с файлами LDF задержка в идеале должна составлять 5 мс или меньше. В общем, все, что превышает 50 мс, является медленным и предполагает потенциально серьезное узкое место ввода-вывода. | |
Logical Disk: Avg. Disk sec/Write | Для дисков с файлами MDF и NDF и загрузкой OLTP средняя задержка записи в идеале должна быть ниже 20 мс. Для дисков с нагрузкой OLAP приемлемой считается задержка до 30 мс. Для дисков с файлами LDF задержка в идеале должна составлять 5 мс или меньше. В общем, все, что превышает 50 мс, является медленным и предполагает потенциально серьезное узкое место ввода-вывода. | |
Logical Disk: Disk Transfers/sec | Число передач диска в секунду не должно превышать пропускную способность дисковой подсистемы IOPS | |
LogicalDisk: Free Megabytes | ||
Operating system | ||
Memory: Pages/sec | Если количество страниц памяти в секунду превышает 1000, а количество доступных байтов меньше 100 МБ на постоянной основе, это явный признак нехватки памяти | |
Memory: Available Bytes | ||
Processor: % Processor Time (_Total) | Если время « Машина: процессор» превышает в среднем 80% в течение длительного времени (пять минут или более), то в это время существует узкое место ЦП | |
System: Processor Queue Length | Число, превышающее 10 потоков на процессор, указывает на узкое место ЦП | |
Network adapter | ||
Network Interface: Bytes Received/sec | 8 * ((Сетевой интерфейс: получено байтов / сек) + (Сетевой интерфейс: отправлено байтов / сек)) / (Сетевой интерфейс: текущая пропускная способность) * 100 | |
Network Interface: Bytes Sent/sec | ||
Disk |
Что касается, счетчиков для MS SQL, то мой список был в начале публикации.
Вариантов невероятное множество как и экспертов (не факт, что сейчас один из них не съехал тихо под стол при виде его).
Впрочем, настоящий скульный админ никогда не покажет своего отношения, максимум поиграет бровями и пойдет слушать музыку сервера.
Желающие могут провести пару зимних (летних) вечеров разбирая полный список.
— Штурман, приборы!
— Четырнадцать.
— Что четырнадцать?
— А что, приборы!?
©www.anekdot.ru
Бдительный читатель скажет: Мало собрать счетчики оборудования, надо их еще и проанализировать.
А я покажу ему вот эту таблицу.
Техническое отступление: Хотя ней выражено мнение уважаемых экспертов, относиться к нему надо с пониманием.
Например, многие вспомнят времена, когда они умоляли директора докупить планку 32 Мб в сервер упомянутой выше бухгалтерии. То же касается и скорости дисков. Эти значения устаревают.
Внимание!
Что означает словосочетание "Предельные значения". То что их превышение требует вашего внимания и сервер работает не совсем штатно по мнению собравшихся. Не более того. Более того, может быть как раз для вашего варианта работы это нормально.
Счетчик | Предельные значения |
\Processor(_Total)\% Processor Time | Не более 70% — 80% в течение длительного времени, под длительным обычно понимается +10 минут. 50% — нормальная загрузка сервера |
\Processor(_Total)\% User Time | Учитывая тот факт, что % Processor Time = % User Time + % Privileged Time, то в идеале значения % User Time должны стремиться к % Processor Time, а доля % Privileged Time стремиться к 0 |
\Processor(_Total)\% Privileged Time | Норма % Privileged Time составляет 5-10%, о проблемах говорят значения >20%. Обычно это проблема с драйверами |
\Memory\Available MBytes | Постоянное и равномерное уменьшение счетчика указывает на утечку памяти в одном из приложений. Желательное состояние — 25% от общей памяти |
\Memory\Pages/sec | По мнению 1С Максимальное: не более 20, в сети встречаются допустимые варианты и в 1000. Рассматривается совместно с Memory Available. Желательное состояние около 0. |
\Memory\% Committed Bytes In Use | Не должен превышать размер оперативной памяти у Филлипова, но это видимо опечатка. Memory \% Committed Bytes in Use представляет собой соотношение величин Memory/Committed Bytes и Memory\Commit Limit исчисляется в процентах и должен быть менее 90%, больше 95% появится вероятность возникновения ошибки OutOfMemory. |
\Paging File(*)\% Usage | Рассматривается совместно с предыдущими счетчиками, по мнению Microsoft при остальных штатных значениях 100% возможный вариант, желательное значение от 50 до 75% |
\System\Context Switches/sec | Высокое значение — более 5000 переключений контекста/с. Очень высокое значение — более 15000 переключений контекста/с |
\System\Processor Queue Length | Не более 2 * количество ядер процессоров в течение длительного времени |
\System\Processes | Служит для построения базовой линии загрузки сервера |
\System\Threads | Служит для построения базовой линии загрузки сервера |
\PhysicalDisk(_Total)\Current Disk Queue Length | В статье ИТС: Не более 2 * количество дисков, работающих параллельно, в основном его не рекомендуют больше использовать из-за виртуализации. Из-за изменений в технологиях, таких как виртуализация, технология дисков и контроллеров, SAN и многое другое, этот счетчик больше не является хорошим индикатором узких мест ввода-вывода. |
\PhysicalDisk(*)\Current Disk Queue Length | Аналогично |
\PhysicalDisk(_Total)\Avg. Disk sec/Read | Этот показатель рекомендуется рассматривать как замену Current Disk Queue Lengt. Для дисков с файлами MDF и NDF и загрузкой OLTP средняя задержка записи в идеале должна быть ниже 20 мс. Для дисков с нагрузкой OLAP приемлемой считается задержка до 30 мс. Для дисков с файлами LDF задержка в идеале должна составлять 5 мс или меньше. В общем, все, что превышает 50 мс, является медленным и предполагает потенциально серьезное узкое место ввода-вывода. У 1С — не более 50-200 мс. |
\PhysicalDisk(_Total)\Avg. Disk sec/Write | Аналогично |
\Network interface(_Total)\Bytes Total/sec | Не более 65% от пропускной способности сетевого адаптера |
\Network interface(_Total)\Current Bandwidth | Network utilization = 8 * \Network interface(_Total)\Bytes Total/sec / (Network Interface: Current Bandwidth) *100 |
\SQLServer:General Statistics\User Connections | Служит для построения базовой линии загрузки сервера |
\SQLServer:General Statistics\Processes blocked | В идеале близок к 0 |
\SQLServer:Buffer Manager\Buffer cache hit ratio | Если на вашем сервере запущены приложения для онлайн-обработки транзакций (OLTP), а это как раз торговые базы 1С, значение 99% или выше является идеальным, но все, что выше 90%, обычно считается удовлетворительным. Значение 90% или ниже может указывать на увеличенный доступ к вводу-выводу и более низкую производительность. |
\SQLServer:Buffer Manager\Page life expectancy | Некоторые говорят, что значение ниже 300 (или 5 минут) означает, что вам может потребоваться дополнительная память. |
\SQLServer:SQL Statistics\Batch Requests/sec | Служит для построения базовой линии загрузки сервера и совместно с другими показателями |
\SQLServer:SQL Statistics\SQL Compilations/sec | В идеале в 10 раз меньше Batch Requests/sec |
\SQLServer:SQL Statistics\SQL Re-Compilations/sec | В идеале в 10 раз меньше SQL Compilations/sec |
\SQLServer:Access Methods\Page Splits/sec | В идеале меньше чем 20% от Batch Requests/sec |
\SQLServer:Access Methods\Forwarded Records/sec | Служит для построения базовой линии загрузки сервера. Помогает понять, насколько фрагментированы таблицы SQL Server без кластерного индекса, не должен устойчиво расти со временем. |
\SQLServer:Access Methods\Full Scans/sec | Служит для построения базовой линии загрузки сервера, при самописных конфигурациях или тюнинге системы используется совместно с Index searches/sec |
\SQLServer:Memory Manager\Target Server Memory (KB) | Служит для построения базовой линии загрузки сервера |
\SQLServer:Memory Manager\Total Server Memory (KB) | Служит для построения базовой линии загрузки сервера |
\SQLServer:Memory Manager\Free Memory (KB) | Служит для построения базовой линии загрузки сервера |
\SQLServer:Databases(_Total)\Transactions/sec | Служит для построения базовой линии загрузки сервера |
\SQLServer:Databases(*)\Transactions/sec | Служит для построения базовой линии загрузки сервера |
\Process(1cv8)\% Processor Time \Process(1cv8)\Private Bytes \Process(1cv8)\Virtual Bytes \Process(ragent)\% Processor Time \Process(ragent)\Private Bytes \Process(ragent)\Virtual Bytes \Process(rphost)\% Processor Time \Process(rphost)\Private Bytes \Process(rphost)\Virtual Bytes \Process(rmngr)\% Processor Time \Process(rmngr)\Private Bytes \Process(rmngr)\Virtual Bytes \Process(sqlservr)\% Processor Time \Process(sqlservr)\Private Bytes \Process(sqlservr)\Virtual Bytes |
Служит для построения базовой линии загрузки сервера |
Возможно у вас есть свое мнение по поводу мониторинга оборудования, приходите в комментарии, пишите свои мысли, желательно со ссылками на источники знаний.