При работе с любой информационной системой рано или поздно встает вопрос об анализе логов.
В случае с 1С этот вопрос встает скорее рано, чем поздно.
Речь пойдет про серверный вариант 1С, развернутый на Windows, с СУБД MS SQL.
А конкретно про сбор счетчиков системного монитора с помощью команды logman.
Итак.
Для анализа возможных проблем будем собирать следующие счетчики:
- "Универсальные" счетчики:
- PhysicalDisk(*)Avg. Disk Queue Length
- PhysicalDisk(*)Avg. Disk sec/Write
- PhysicalDisk(*)Avg. Disk sec/Read
- Processor(_Total)% Processor Time
- SystemProcessor Queue Length
- MemoryAvailable MBytes
- Network Interface(*)Bytes Total/sec
- Process("ragent*")% Processor Time
- Process("rmngr*")% Processor Time
- Process("rphost*")% Processor Time
- Process("ragent*")Working Set - Private
- Process("rmngr*")Working Set - Private
- Process("rphost*")Working Set - Private
- Process(sqlservr)% Processor Time
- SQLServer:Buffer ManagerBuffer cache hit ratio
- SQLServer:Buffer ManagerPage life expectancy
Для формирования списка счетчиков удобно использовать команду logman
Cинтаксис следующий:
logman create counter CounterName -f bincirc -c "PhysicalDisk(*)Avg. Disk Queue Length" "PhysicalDisk(*)Avg. Disk sec/Write" -si 10 -v mmddhhmm
create counter CounterName - создать счетчик с именем "CounterName"
-f bincirc - результат помещать в бинарный файл в формате *.blg
-c "PhysicalDisk(*)Avg. Disk Queue Length" "PhysicalDisk(*)Avg. Disk sec/Write" - собирать информацию по счетчикам:
-
- PhysicalDisk(*)Avg. Disk Queue Length
- PhysicalDisk(*)Avg. Disk sec/Write
-si 10 - собирать информацию каждые 10 секунд
-v mmddhhmm - формат "версии" выходного файла (например, 1c_01250045.blg)
Другой вариант использования команды logman - это когда список счетчиков вынесен в отдельный файл. В этом случае вместо параметра -с необходимо использвоать параметр -cf, например:
logman create counter CounterName -f bincirc -cf counters_1c.lst -si 10 -v mmddhhmm
при этом файл counters_1c.lst должен содержать список счетчиков, например:
PhysicalDisk(*)Avg. Disk Queue Length
Processor(_Total)% Processor Time
Process(ragent*)% Processor Time
Команда logman не всесильна. Некоторые свойства приходится прописывать вручную:
- Корневая папка
- Формат имени вложенной папки: yyyyMMdd (или yyyyMM) + Приписывать имя компьютера к имени вложенной папки
- Условия остановки: Перезапустить группу сборщиков данных при достижении предела с длительностью 1 час (для серверов 1С, так как там может меняться состав процессов ragent, rmngr, rphost)
При перезапуске компьютера счетчики сами не запустятся. Запустить их можно либо с помощью bat файла, либо с помощью планировщика заданий. Пример команды запуска сбора счетчиков с помощью командного файла есть во вложенном файле. А планировщик заданий настраивается так...
Запускаем сам планировщик (taskschd.msc):
Открываем наше задание и переходим на закладку с тригерами:
Примечания:
- На разных версиях Windows названия счетчиков могут различаться
- C параметром -c можно использовать русские наименования счетчиков
- C параметром -с некоторые символы необходимо "экранировать". Так например символ "%" необходимо экранировать таким же символом "%%".
- C параметром -cf русские наименования у меня не получилось "скормить" системному монитору
Источники информации:
- http://курсы-по-1с.рф/1c-v8/%d1%83%d1%81%d0%ba%d0%be%d1%80%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-1%d1%81-2016/
- logman / ?
- https://msdn.microsoft.com/ru-ru/library/cc755366%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396
- https://technet.microsoft.com/ru-ru/library/cc753820%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396
- http://windowsnotes.ru/windows-server-2008/schetchiki-proizvoditelnosti-chast-2/
- личный опыт