Утилита тестирования сервера 1С от HADGEHOGs

Публикация № 1596718 21.09.22

Администрирование БД - HighLoad оптимизация

Утилита тестирования производительность быстродействие сервера тормозит ошибки на сервере сеансовые данные выбрать оборудование тестировать MS SQL

Программа для тестирования вашей инфраструктуры 1С. Анализ ключевых параметров оборудования и ПО серверов 1С и MS SQL, поиск ошибок в базах 1С на стороне MS SQL, тестирование производительности серверов MS SQL и 1С, обмен результатами замеров с сообществом, построение отчета.

Утилита тестирования сервера 1С от HADGEHOGs

 

Внимание!

Автор не несет никакой ответственности за функционал данного приложения. Не скачивайте, не устанавливайте, не запускайте данное приложение, если не понимаете, что делаете, если понимаете, что делаете, но не читали весь этот текст. Никаких намерений деструктивного плана и функционала в данном приложении не было запроектировано, ОДНАКО, пользователь своими действиями или бездействиями может внести в продуктивную среду нарушение работоспособности. Безусловным требованием при начале использования, является тестовое ознакомление в тестовой среде, изолированной от продуктивной (например, на копии сервера 1С и сервера MS SQL). Полный текст отказа от ответственности будет доступен при установке, а также в самой программе, по нажатию кнопки "О программе", вкладка "Лицензия".

 

Базовое описание

Давно собирался написать программу, которая объединила бы в себе все советы и хинты по настройке сервера 1С и сервера SQL и, наконец, время настало.

Запускать утилиту следует на сервере 1С, под полными правами, с выдачей полноправного доступа к серверу SQL (поддерживается только Microsoft SQL Server). Настройки подключения, логины и пароли доступа к серверу SQL и кластеру 1С прописываются в основном окне приложения:

 

Утилита выполнит подключение к серверу SQL и серверу 1С, соберет с них данные и выдаст результаты в 4-х вкладках "Информация о системе" "Результаты анализа сервера SQL", "Результаты анализа сервера 1C", "Результаты анализа оборудования и ПО". Вкладка "Информация о системе" предельна очевидна и видна на картинке выше.

Каждый результат 3-х остальных вкладок представляет собой название результата, дефолтное значение, текущее значение, подробное описание и действие по исправлению (при ее возможности). Нажатие на название результата откроет эту статью на нужном разделе с более подробным описанием. Результаты, значение которых отличается от дефолтных незначительно, будут обозначены оранжевым значком, а значительные отличия - красным:

 

 

Результаты замеров сохраняются в файл БД в каталоге программы, их можно посмотреть, нажав на кнопку "Показать отчет". Каждый замер можно подписать своим комментарием, который потом отобразится в отчете:

 

 

Также, замеры можно отправить на сервер, введя учетном имя, выбрав галочку "Разрешить отправку результатов на сервер" и нажав кнопку "Применить":

 

 

Обмен с сервером выполняется в фоновом режиме, работайте нормально(отсылка к инструкции пользования кислородной маской в самолете).

Сам отчет по замерам выглядит следующим образом:

 

 

На первой вкладке можно увидеть таблицу замеров, ваших и других пользователей (если вы дали разрешение на отправку данных). В данной таблице доступен полнотекстовый поиск, сортировка, отбор и группировка перемещением группирующей колонки в область группировки.

На второй вкладке можно увидеть отчет с легендой расшифровки, который можно сохранить в pdf/excel, нажатием на нем правой кнопки мыша:

 

 

Также, из основного окна, на вкладке "Отправить отзыв" можно... отправить отзыв разработчику, ведь ваше мнение очень важно для нас:

 

 

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

 

 

Как это работает

  • Приложение устанавливается на сервер 1С (либо просто на любом компьютере, если на нем нет сервера 1С/ сервер 1С не установлен как служба).
  • Приложение собирает информацию о ПО и оборудовании на сервере 1С
  • Если дан полный (административный доступ к серверу MS SQL), тогда:
    • Приложение самостоятельно разместит на сервере тестовую базу 'TestBase865524F877C240A3B90289C28FA85FF4' и пропишет ее на сервере 1С.
    • Если сервер MS SQL находится на удаленном компьютере, приложение развернет на нем свою dll, и пропишет ее функции в качестве внешних расширенных процедур, запустит их выполнение, соберет информацию по ПО и оборудованию и удалит эти функции и dll.

Вы можете и не давать доступ к серверу MS SQL, если есть сомнения или опасения, и это - правильно, вы делаете это все на свой риск. Тогда данные об оборудовании и ошибках на сервере MS SQL будут недоступны. При этом, приложение предложит вам сохранить на диск и разместить на сервере 1С dt - файл под базу с именем 'TestBase865524F877C240A3B90289C28FA85FF4':

 

 

  • Приложение запускает тесты производительности оборудования на сервере 1С (производительность процессора, диска, памяти).
  • Приложение запускает тесты производительности в размещенной базе на сервере 1С (при наличии службы сервера 1С и размещенной тестовой базы), тестовой базе (производительность обработки данных, серверных вызовов, обмена с СУБД)
  • Приложение запускает тесты корректности баз 1С на сервере MS SQL при наличии доступа к серверу SQL
  • Приложение отправляет результаты тестирования на удаленный сервер при наличии разрешения и получает результаты тестирования других пользователей.

 

Собираемая информация об оборудовании и системе

Тут будет указана полная информация, которая будет собрана. Ничего отличного, от указанного ниже, не будет собрано. Никакой детальной информации, как серийные номера ОС, серийный номера дисков, процессора, памяти, записей Active Directory, имян пользователей, и.т.д. собрано не будет, кроме имени компьютера и имени домена для проверки факта установки сервера 1С и сервера MS SQL на одном компьютере, однако данная информация не будет доступна другим пользователя. Далее идет перечисление собираемой информации:

  • Модель и частота процессора
  • Модель и частота памяти
  • Модель и тип диска
  • Название и версия операционной системы
  • Имя компьютера и домен
  • Схема питания
  • Виртуализация

 

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

За эталонные показатели производительности взяты показания, снятые на рабочей машине следующей аппаратно-программной конфигурации:

  • Процессор Intel I5-8600k
  • Память DDR-4 2133 Мгц, 32Гб
  • Диск Samsung 980 1Тб
  • ОС Windows 10.0.19042
  • 1С 8.3.17.2306
  • MS SQL Server 2019 15.0.2000.5
  • Все допустимые улучшения по рекомендации 1С

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

  • Производительность процессора (показатель PPR - Processor Performance Raiting)  оценивается задачей расчета числа ПИ по формуле Лейбница и оценивается в миллионах итераций в секунду. Эталонное значение =150. Вес показателя = 0.6.
  • Производительность памяти (показатель MPR - Memory Performance Raiting) оценивается записью и чтением данных в блоке памяти и измеряется в мегабайтах в секунду.
  • Производительность диска (показатели DWP, DRP - Disk Write/Read Performance) оценивается произвольной записью и чтением 4-х Кб данных во временном 1 Гб файле и отключенном кешированием операционной системы и измеряется в мегабайтах в секунду.

Производительность сервера 1С определяется следующими показателями:

  • Короткие вызовы сервера 1С (показатель SSC - Short Server Call) -количество коротких вызовов (объемом в 16 байт + служебные) за 1 секунду времени выполнения. Критичный показатель при неоптимальном клиент-серверном коде, а также при навигации в динамических списках и табличных частях.
  • Длинные вызовы сервера 1С (показатель LSC - Long Server Call) -количество длинных вызовов (объемом в 160000 байт + служебные) за 1 секунду времени выполнения. Критичный показатель при передаче на сервер больших объемов непрерывных данных, например при загрузке файлов.
  • Количество обработанных данных на сервере 1С (показатель SEC - Server Execution Count) - количество тысяч обработанных строк таблицы значений за 1 секунду времени выполнения. Характеризует быстродействие обработки данных сервером 1С, без их получения с сервера СУБД.
  • Короткие чтения СУБД (показатель SRC - Short Read Count)- Количество чтений из регистра сведений размером в 16 байт за 1 секунду времени выполнения без передачи результата на клиент.
  • Короткие записи СУБД (показатель SWC - Short Write Count)- Количество записей в регистра сведений размером в 16 байт за 1 секунду времени выполнения без передачи результата на клиент.

Показатели SRC/SWC -крайне важные показатели быстродействия для OLTP-систем. Низкие показатели могут быть связаны с проблемами на сервере СУБД, либо с высокой латентностью передачи данных между сервером 1С и сервером SQL при их раздельном размещении.

  • Длинные чтения СУБД (показатель LRC - Long Read Count)- Количество чтений из регистра сведений размером в 2064000 байт за 1 секунду времени выполнения без передачи результата на клиент.
  • Длинные записи СУБД (показатель LWC - Long Write Count) - Количество записей в регистр сведений размером в 2064000 байт за 1 секунду времени выполнения без передачи результата на клиент.

Показатели LRC /LWC -менее важные показатели быстродействия для OLTP-систем, чем SRC/SWC. Низкие показатели могут быть связаны с проблемами на сервере СУБД, либо с низкой скоростью передачи данных между сервером 1С и сервером SQL при их раздельном размещении.

По итогу замеров строятся интегральные показатель производительности оборудования и сервера 1С (Общая оценка оборудования, Общая оценка сервера 1С), являющийся суммой отдельных относительных показателей (относительно эталонных) с учетом их веса.

 

Анализ проблем на сервере 1С

При выполнении анализа снимаются следующие проблемы сервера 1С:

  • Избыточные файлы сеансовых данных - файлы *.dat, размером более 65536Кб папки snccntx сервера 1С, которые могут (но не обязательно) свидетельствовать о наличии проблем с работой сервера 1С , которые могут проявляться самым неожиданным образом (вплоть до пропадания пунктов меню в управляемом интерфейсе):

 

 

В таких случаях рекомендуется пересмотреть использования в коде временных хранилищ, либо выполнять перезапуск сервера 1С с удалением папки snccntx* из каталога сервера. Однако, данные файлы вполне могут быть файловым кешем больших объектов системы (двоичные данные во временном хранилище большие таблицы значений), которые не уместились в оперативной памяти, что является рабочей ситуацией, поэтому утилита не будет предлагать удаление этих файлов, но будет сигнализировать их наличие.

  • Поиск использования базами журналов регистрации в формате SQLlite, что может негативно сказываться на производительности сервера 1С, когда журнал регистрации превышает размера в несколько гигабайт:

 

 

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

  • Схема питания - согласно рекомендации 1С https://its.1c.ru/db/metod8dev#content:5904:hdoc, рекомендовано включать схему "Высокая производительность", которая позволяет процессору всегда иметь высокую частоту. В режиме "Сбалансированная" или "Экономия" процессору нужно время, чтобы достичь максимальной производительность. При выполнении множества коротких, но частых обращений клиента 1С к серверу 1С (что наиболее распространенный сценарий) возникают значительные общие задержки. Данный показатель можно исправить прямо из программы:

 

 

  • Сетевой протокол ipv6 - Протокол IPv6 по умолчанию включен в операционных системах Windows. При работе сервера 1С при включенном протоколе IPv6 могут возникать ошибки, как явные (с выводом сообщения об ошибке), так и неявные (с тихим перезапуском сервера 1С). Рекомендуется отключать протокол IPv6, это можно сделать из утилиты:

 

 

 

Анализ проблем на сервере MS SQL

При выполнении анализа снимаются следующие проблемы сервера MS SQL:

  • Показатель максимальной параллельности выполнения запросов (MDOP, max degree of parallelism) - согласно рекомендациям 1С: https://its.1c.ru/db/metod8dev#content:5904:hdoc, значение должно быть равно 1, запрещающее параллельное выполнение одного запроса. Да, встречаются рекомендации использовать значение, равное 0 (разрешая полную параллельность), но ограничивать параметром Cost threshold for parallelism максимальную стоимость плана запроса, однако даже при работе типовых конфигураций могут возникать ситуации, когда годами стабильно выполняющийся запрос, после накопления данных, меняет план выполнения с выполнением полного сканирования таблиц и общей деградацией производительности.

 

 

  • Флаг отключения эскалации блокировки таблиц (trace flag 1211) - согласно рекомендациям 1С: https://its.1c.ru/db/metod8dev/content/5946/hdoc, флаг должен быть включен. Включение флага увеличивает потребление памяти сервером MS SQL (не замеченное автором), но отключает блокировку всей таблицы при выборке (изменении) из нее более 5000 строк.
  •  

 

  • Максимальный размер памяти, разрешенный для использования сервером SQL. Рекомендуемое значение - 0.7 от размера оперативной памяти системы, однако можно изменить в поле ввода утилиты:

 

 

  • Устаревшая статистика баз данных - результат поиска баз 1С, для которых статистика имеет срок годности более 3-х дней. Устаревшая статистика грозит использованием неоптимальных планов запросов и критичным снижением производительности. Возможно, для сервера SQL не настроены регламентные задания, согласно рекомендациям 1С https://its.1c.ru/db/metod8dev/content/5837/hdoc :

 

 

  • Ошибочные записи регистров накопления остатков - ситуации, когда дата документа ошибочно выставляется очень маленькой или очень большой, например, вместо 20.08.2022 может быть поставлена дата 20.08.0022, либо 20.08.3022. При этом, система может сгенерировать (если не заданы границы расчета итогов) набор записей итогов в разрезе каждого месяца от 20.08.0022 до текущей даты, и будет пересчитывать (перезаписывать) эти записи при проведении каждого документа, если он пересекается своими движениями по набору измерений ошибочного документа. В любом случае, это ошибка, которую нужно исправить. Найти нужный регистр можно при помощи одной из обработок по просмотру структуры базы данных, в дальнейшем это будет поддерживаться утилитой автоматически:

 

 

  • Старые записи динамического обновления - параметр, определяющий наличие записей динамического обновления старше 10 дней (больше недели, включая выходные на проведение монопольного обновления), которые считаются невалидными и наличие которых может выполнять замедление работы базы, бесконечное ожидание запуска, либо ошибки формата потока. Нажатие кнопки 'Исправить' следует выполнять только после сохранения текущей конфигурации в cf-файл и выхода всех пользователей из базы. При нажатии кнопки, из конфигурации будут удалены записи динамического обновления. После нажатия, необходимо зайти в конфигуратор и сравнить и объединить конфигурацию с ранее сохраненным cf-файлом:

 

 

При наличии пользователей в базе данных, будет выдан диалог завершения работы пользователей (при наличии доступа к кластеру сервера 1С) и завершения службы сервера 1С:

 

 

  • Большое количество записей таблицы локальных записей хранилища конфигурации '[DepotFiles]' (более 300 записей) - ошибка платформы, которая проявляется в основном, после загрузки cf файла в уже существующую конфигурацию и подключению ее к хранилищу, либо подключению базы к хранилищу. При каждом обновлении конфигурации, весь этот набор записей будет перезаписываться, что крайне замедляет обновление и последующий запуск. Исправляется удалением этих записей и очисткой локального кэша конфигурации. Утилита может выполнить это самостоятельно:

 

 

Заключение

Спасибо, что вы осилили текст воот до этого места, вам большое спасибо, да и мне тоже.

Скачать файлы

Наименование Файл Версия Размер
Утилита тестирования сервера 1С от HADGEHOGs

.exe 14,85Mb
306
.exe 1.0.0.10 14,85Mb 306 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 501 21.09.22 18:00 Сейчас в теме
Судя по описанию, работы проделано много. Однозначно, респект! Но есть сомнения по важности встроенных синтетических тестов и по поиску ошибок в настройках.
МихаилМ; +1 Ответить
2. sytkosa 119 21.09.22 18:16 Сейчас в теме
(0) Скачал файл сразу встроенный защитник выдал вот такое
PUBID_1596718-TST_1C.exe
Обнаружено: Trojan:Win32/Wacatac.H!ml
Состояние: Удалено

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

P.S. Файл сам в итоге скачал и запустил. За программу большое СПАСИБО!!!
cleaner_it; +1 Ответить
3. Hadgehogs 420 21.09.22 18:49 Сейчас в теме
(2)Да, скорее всего отдельно выложу без установщика.
Протестировал утилиту на https://www.virustotal.com/
Выдало 1 срабатывание из 69 тестов.
cleaner_it; +1 Ответить
4. cdiamond 218 21.09.22 20:35 Сейчас в теме
Крутая работа, однозначно плюс. Жаль только не всем подходит.
5. qux 25 21.09.22 21:07 Сейчас в теме
Почему может выдавать ошибку "Библиотека не зарегистрирована"?
8. Hadgehogs 420 22.09.22 11:12 Сейчас в теме
(5) В следующей версии добавлю подробное описание выводимых ошибок
6. chg 22.09.22 04:05 Сейчас в теме
Добрый день, решение интересное, но требует доработки, в результатах нет прокрутки и что там дальше написано нет возможности посмотреть, тестировал на двух серверах, скрин со второго, ошибка проявляется на обоих но разная, на втором конфа Вин 2019+МССкуль 2019, на первом винда 2012+мсскуль 2014, притом на первом ни в какую не хочет цеплятся к скулю и при тестировании выдаёт ошибку "Method 'ТестированиеВнешнееСоединение'­ not supported by automation object"
Прикрепленные файлы:
9. Hadgehogs 420 22.09.22 11:19 Сейчас в теме
(6) Ок, спасибо за отзыв, постараюсь поймать и исправить эти ошибки
7. sytkosa 119 22.09.22 11:02 Сейчас в теме
(0) Продукт будет в дальнейшем коммерческим или нет ? Есть несколько предложений, может есть багтрекер куда можно написать ?
10. Hadgehogs 420 22.09.22 11:20 Сейчас в теме
(7) Продукт не будет коммерческим, пишите приложения сюда, либо в самом приложении на вкладке "Отправить отзыв"
11. spectre1978 59 22.09.22 11:23 Сейчас в теме
Минимальная версия SQL какая поддерживается? 2008 - не?
12. Hadgehogs 420 22.09.22 12:22 Сейчас в теме
(11) 2019. Более низкой на сайте MS просто нет, но ради такого, постараюсь найти минимальную, в которой смогу реализовать весь функционал, либо с ограничениями.
13. _Ramzes 119 22.09.22 13:01 Сейчас в теме
При попытке подключиться к СУБД выдает ошибку.
Сервер СУБД тестовый. Пароль простой
Прикрепленные файлы:
14. Hadgehogs 420 22.09.22 13:09 Сейчас в теме
(13) Попробуйте установить на тот компьютер, с которого запускаете - драйвер MSOLEDBSQL
https://learn.microsoft.com/ru-ru/sql/connect/oledb/download-oledb-driver-for-sql-server?view=sql-server-ver15
15. fishca 1240 22.09.22 14:26 Сейчас в теме
16. user1848664 23.09.22 10:03 Сейчас в теме
Спасибо за обработку, при запуске (сервер 1с и mssql) выдает ошибку "Библиотека не зарегистрирована" без указаний какая библиотека, и что с ней делать? (скрин).
Прикрепленные файлы:
17. php5 24 23.09.22 18:12 Сейчас в теме
(14) Мне не помогло, пробовал на двух разных серверах.
Ед. момент, что у в обоих случаях MS SQL 2017 установлен.

Получается, что утилита работает только начиная с MS SQL 2019 и старше?
18. capitan 2234 23.09.22 21:44 Сейчас в теме
Круто! Я еще на дельфях пробовал похожее но сдулся)
19. mikukrnet 179 23.09.22 22:54 Сейчас в теме
Ничего не понятно, хоть бы пример типичных проблем которые утилита решает, в пару строк
Оставьте свое сообщение

См. также

Исправление ошибки 1С:Предприятие 7.7/8.0 - 100% загрузка процессора при ожидании блокировки Промо

HighLoad оптимизация Платформа 1С v8.3 Россия Бесплатно (free)

Цель использования: разгрузить процессор, когда два или более пользователей пытаются провести документ. 1С пытается заблокировать таблицы, но делает это без пауз, и загружает процессор на 100%. При этом пользователи практически "встают", и нормальная работа прекращается. Компонента (или патч) позволяет решить эту проблему и нормализовать работу пользователей. Особенно актуально при работе в режиме сервера терминалов.

13.12.2007    60612    7859    romix    79    

[Мониторинг изменения файлов] - ActiveX-компонента для 1С 8.х + ВК для 7.7

Мониторинг Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Бесплатно (free)

Компонента следит за изменениями файлов в заданных каталогах, без таймеров и опросов файловой системы. Использует события Windows.

05.03.2009    29893    526    Душелов    53    

Управление итогами

Универсальные обработки HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

22.09.2008    37964    1323    coder1cv8    16