Нагрузочное тестирование. В дни проведения ЧМ по футболу.

Публикация № 850217

Администрирование - Производительность и оптимизация (HighLoad)

42
Нагрузочное тестирование. Подготовка к экзамену 1С:Эксперт. По мотивам доклада Виктора Богачева Инфостарт Event 2014. В дни проведения ЧМ по футболу.

Введение

Одно из требований к специалистам на экзамене «1С:Эксперт по технологическим вопросам». (http://1c.ru/rus/partners/training/expert.htm) - владение методиками и технологиями нагрузочного тестирования систем на платформе «1С:Предприятие 8». Изучим доклад Виктора Богачева о нагрузочном тестировании ООО «Деловые Линии» (Infostart Event 2014).

 
 Здесь краткий конспект.

 

Попробуем на тестовой базе повторить избранные места доклада:

Ситуация 1. При увеличении числа запросов к базе до 3-4 тысячи в секунду стали наблюдаться pagelatch из-за создания/удаления временных таблиц и индексов

Ситуация 2. При завершении сессий возникает нагрузка на сервер СУБД из-за уничтожения временных таблиц

Оборудование и ПО

Платформа 8.3.12, без совместимости. Управляемый режим блокировок. Сервер приложений – отдельно, 1С:Предприятие запущено на сервере СУБД (MS SQL 2012). Жесткий диск – SSD. В приложении к статье – база данных с обработкой нагрузочного тестирования. Кто захочет – cможет повторить все примеры.

Ситуация 1

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

Запрос1.Текст = "ВЫБРАТЬ

|             ""флаг запроса"" КАК Поле2

|ПОМЕСТИТЬ Таб1

|

|ИНДЕКСИРОВАТЬ ПО

|             Поле2

|;

|

|////////////////////////////////////////////////////////////////////////////////

|УНИЧТОЖИТЬ Таб1";

 

Запрос2 – то же без создания временной таблицы и без индексирования, Запрос3 – с созданием временной таблицы, но без создания индекса. Более подробно – смотрите обработку в приложенной базе данных 1С.

 

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

 

Количество запросов, latch проверяем с помощью монитора производительности: Мой компьютер - Управление – Производительность - SQL Server, Latches Object. Как и рекомендуют в документации.

Варианты и результаты теста:

  1. Процедура  «ПодключитьОбработчикОжидания». (Запрос1)
  2. Фоновые задания, ни временная таблица, ни индекс НЕ создаются. (Запрос2)
  3. Фоновые задания, индекс временной таблицы НЕ создается. (Запрос3)
  4. Фоновые задания, создается индекс временной таблицы. (Запрос1)
     
  1. При подключении обработчика ожидания несколько раз мне не удалось получить больше 1,6 тысяч запросов в секунду. Скорее всего, ПодключитьОбработчикОжидания, не обеспечивает параллельной работы: клиент «подвисает». О том же указано и в описании: …Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в "состоянии покоя", то есть в тот момент, когда программа не выполняет никаких действий… Поэтому метод «ПодключитьОбработчикОжидания» для нагрузочного тестирования использовать не будем.  
  2. Если в тексте запроса не создавать ни временных таблиц, ни индексов к ним - ожиданий latch не возникает.
  3. Из-за создания большого числа временных таблиц, появились ожидания latch.
  4. В случае создания временных таблиц, индексов возникают значительные ожидания latch: время теста 30 секунд, total latch wait time 2.4 секунд.
     

Еще одно замечание по нагрузочному тестированию нашел на ИТС, Влияние внешних обработок на производительность http://its.1c.ru/db/metod8dev#content:5940:hdoc : Компиляция модулей встроенных в конфигурацию выполняется однократно в процессе инициализации, тогда как для внешних обработок компиляция будет выполняться многократно, отдельно для каждого пользователя. Это приводит как к снижению производительности (компиляция модуля требует времени), так и существенному повышению нагрузки на CPU. Поэтому не рекомендуется выносить во внешние обработки функционал, который может одновременно использоваться большим количеством пользователей.

 

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

 

Посмотрим на ситуацию со стороны СУБД. Будем использовать sys.dm_os_latch_stats. Очистить существующую статистику DBCC SQLPERF ('sys.dm_os_latch_stats', CLEAR) - запустить нагрузочный тест. Выборка статистики по нагрузке Select * from sys.dm_os_latch_stats where wait_time_ms > 0

 

latch_class

waiting_requests_count

wait_time_ms

max_wait_time_ms

ACCESS_METHODS_HOBT_COUNT

48

7

1

BUFFER

184436

7492

309

 

Динамическое представление sys.dm_os_latch_stats указывает, что основной тип latch – BUFFER. Как указано в документации (https://msdn.microsoft.com/ru-ru/library/ms175066%28v=sql.120%29) Используется для синхронизации краткосрочного доступа к страницам баз данных. Кратковременная блокировка буфера необходима перед считыванием или модификацией любой страницы базы данных. Конфликт кратковременной блокировки буферов может указывать на наличие ряда проблем, в числе которых — «горячие» страницы и низкая производительность подсистемы ввода-вывода.

 

Представление sys.dm_os_wait_stats устанавливает различие между ожиданиями кратковременных блокировок страниц, вызванными операциями ввода-вывода и операциями чтения и записи на данной странице. Очистить существующую статистику DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR) запустить нагрузочный тест. Выборка статистики по нагрузке Select * from sys. dm_os_wait_stats where wait_time_ms > 0

 

wait_type

waiting_tasks_count

wait_time_ms

max_wait_time_ms

LATCH_SH

21

1

0

LATCH_EX

45

6

0

PAGELATCH_SH

24552

1680

280

PAGELATCH_UP

88271

3460

267

PAGELATCH_EX

115741

2012

1

PAGEIOLATCH_UP

227

14

0

 

PAGELATCH и PAGEIOLATCH – соответственно доступ к страницам памяти и жесткого диска. LATCH – доступ к нестраничным ресурсам. Расшифровку типов ожидания можно посмотреть https://www.sqlskills.com/help/waits/ Очень хорошая, подробная статья. Приведу выдержку.

Common causes of PAGELATCH_XX contention are:

  • Allocation bitmap contention in tempdb (PAGELATCH_UP for multiple threads trying to change the same bitmap), and under extreme loads, in user databases
  • Table/index insert hotspot (PAGELATCH_EX for threads inserting onto the same page and possibly PAGELATCH_SH for threads reading from that page)
  • Excessive page splits from random inserts (PAGELATCH_EX for threads trying to insert/update rows on a page and possibly PAGELATCH_SH for threads reading from that page)

 Еще одна статья https://habr.com/post/216309/, на русском.

Для системного представления sys.dm_io_virtual_file_stats команда очистки не предусмотрена. Поэтому сначала выгрузим содержимое динамического представления во временную таблицу

 

use tempdb

go;

select * into MyTempDB01 from sys.dm_io_virtual_file_stats(null,null)

 

потом выполним нагрузочное тестирование и найдем разницу между старой и новой статистикой с помощью запроса

 

select tab1.database_id,

tab1.file_id,

tab1.num_of_reads-tab2.num_of_reads AS num_of_reads,

tab1.num_of_bytes_read - tab2.num_of_bytes_read AS num_of_bytes_read,

tab1.num_of_writes - tab2.num_of_writes AS num_of_writes,

tab1.num_of_bytes_written - tab2.num_of_bytes_written AS num_of_bytes_written,

tab1.io_stall-tab2.io_stall AS io_stall,

tab1.io_stall_read_ms-tab2.io_stall_read_ms AS io_stall_read_ms,

tab1.io_stall_write_ms-tab2.io_stall_write_ms AS io_stall_write_ms,

tab1.size_on_disk_bytes - tab2.size_on_disk_bytes AS size_on_disk_bytes

from  sys.dm_io_virtual_file_stats(null,null) AS tab1

inner join MyTempDB01 AS tab2

on tab1.database_id = tab2.database_id

and tab1.file_id = tab2.file_id

 

database_id

file_id

num_of_reads

num_of_bytes_read

num_of_writes

1

1

0

0

0

1

2

0

0

0

2

1

0

0

57

2

2

0

0

4672

 

Более подробно таблицу можно посмотреть в приложенном файле *.xls. Как видно, запись и чтение происходила только в базу ID = 2. Наверное, это TempDB. Сделаем запрос select DB_ID('tempdb') – получим результат = 2. Так и есть.

 

Удалим временную таблицу drop table dbo.MyTempDB01

 

Поскольку мы выяснили, что latch происходят в таблице TempDB, можно попробовать перенести ее на более быстрый (или медленный) носитель. Для этого применяются команды

USE master

GO

ALTER DATABASE tempdb

MODIFY FILE (NAME = tempdev, FILENAME = 'E:\tempdb.mdf')

GO

ALTER DATABASE  tempdb

MODIFY FILE (NAME = templog, FILENAME = 'E:\templog.ldf')

GO

Имена для файлов, соответствующих tempdev, templog можно посмотреть в свойствах таблицы. После изменения настроек TempDB службу SQL Server необходимо перезапустить. В моем случае тестирование после переноса не выявило изменений.

 

У системного представления sys.dm_db_index_operational_stats(,,,) первый аргумент ID базы -берем из прошлого примера. DMV не содержит имени таблицы – приходится делать левое соединение с таблицей sys.objects

 

Select tab2.name, tab1.page_latch_wait_count

from sys.dm_db_index_operational_stats(2,NULL,NULL,NULL) AS tab1

left join sys.objects as tab2 ON tab1.object_id = tab2.object_id

where tab1.page_latch_wait_count > 0

 

Строки повторяются: одна для таблица, другая – ее индекс. Назначения таблиц – из документации: https://msdn.microsoft.com/ru-ru/library/ms179503%28v=sql.120%29.aspx

 

name

page_latch_wait_count

Назначения таблиц

sysrscols

102147

Порядок полей таблиц

sysrowsets

40659

Существует в каждой базе данных.  Содержит по строке на каждый набор строк секции для индекса или кучи.

sysallocunits

546855

Существует в каждой базе данных. Содержит по строке на каждую единицу распределения памяти.

sysallocunits

684

 

sysschobjs

57

Существует в каждой базе данных. Каждая строка представляет объект базы данных.

sysschobjs

1

 

syscolpars

3

Существует в каждой базе данных. Содержит по строке на каждый столбец таблицы, представления или табличной функции.

syscolpars

2

 

sysidxstats

40

 

sysiscols

1

Существует в каждой базе данных. Содержит по строке на каждый материализованный столбец индекса или статистики.

sysobjvalues

12

Существует в каждой базе данных. Содержит по строке на каждое общее свойство сущности.

 

Любопытно, что таблица sysobjvalues в нашем случае производит гораздо меньше latch, чем топовые таблицы, а в докладе она наоборот, входит в топ. Возможно, изменилась архитектура ПО. Более подробно таблицу можно посмотреть в приложенном файле *.xls

 

Ситуация 2.

 Включим замер производительности. Создадим много временных таблиц с помощью 1С. Как известно, при завершении запроса 1С, СУБД использует не DROP TABLE, а TRUNCATE TABLE - оставляет временную таблицу для повторного использования. Чтобы временных таблиц было много - каждая временная таблица должна иметь уникальный набор столбцов. Более подробно – смотрите обработку в приложенной базе данных 1С. У меня временные таблицы выглядят примерно так, их около 10 тысяч.

 

 

Посмотрим активные сессии: select * from sys.dm_exec_sessions where program_name = '1CV83 Server'

 

session_id

login_time

host_name

program_name

status

51

2018-06-19 13:12:34.050

U1C01

1CV83 Server

sleeping

. . .

 

62

2018-06-19 13:12:34.050

U1C01

1CV83 Server

sleeping

 

При завершении сеанса 1С сессия SQL не завершается, а переходит в спящий режим. Поэтому чтобы уничтожить временные таблицы, принудительно завершим все активные сессии 1С пакетом команд

kill 51

. . .

kill 62

 

Кстати, чтобы не повторять однообразные строки, можно использовать скрипт, на основе https://ru.stackoverflow.com/questions/733831

 

Посмотрим результаты замера производительности.

 Здесь до 13:04:15 идет создание временных таблиц, между 13:04:45 и 13:04:55 – завершение сессий SQL. Максимальные значения показателей latch более чем в три раза превосходят значения предыдущего эксперимента.

 

Для сравнения: если запустить запросы без создания временных таблиц, а затем завершить сессии SQL, ожиданий latch наблюдаться не будет. Хотя в момент завершения нагрузка на процессор почти такая же.

 

 

Посмотрим еще одно DMV sys.dm_exec_query_stats. Для него тоже нет способа очистки, но события можно выбирать по времени, например

 

SELECT st.*, qs.*

FROM sys.dm_exec_query_stats AS qs 

CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st 

where qs.last_execution_time > DATETIMEFROMPARTS(2018,06,24,13,56,50,0)

--and qs.last_execution_time < DATETIMEFROMPARTS(2018,06,24,13,57,0,0)

ORDER BY execution_count DESC;

 

Это представление группирует исполняемые запросы по тексту. Видно, как часто встречаются одинаковые тексты запросов. Например, при присваивании имени временной таблицы выполняется запрос типа SELECT 1 WHERE OBJECT_ID('tempdb..#tt674') IS NOT NULL.

Отчеты по DMV dm_os_wait_stats, dm_db_index_operational_stats отличаются от ситуации 1 только в процентном соотношении распределений количества latch.

 

Флаги трассировки, влияющие на latch

 

  • 8048 – применяется в случае, если в вашей системе более 8 логических процессоров и наблюдается большое число ожиданий CMEMTHREAD и кратковременных блокировок.
  • 1117 - позволяет управлять параметрами роста таблицы TEMPDB. в случае, если используется несколько файловых групп.
  • 1118 - отключает смешанные экстенды. Влияет на GAM и SGAM. Pagelatch бывают PFS (pafe free space), IAM (index allocation map), GAM (global allocation map), SGAM (shared global allocation map).

 

Более подробно смотрите на ИТС – новая статья  Флаги трассировки для работы с MS SQL Server http://its.1c.ru/db/metod8dev/content/5946/hdoc/_top

 

Выполним команду DBCC TRACESTATUS (1118), результат ниже

TraceFlag

Status

Global

Session

1118

0

0

0

 

Выполним команды DBCC TRACEON (1118); DBCC TRACESTATUS (1118), результат ниже

TraceFlag

Status

Global

Session

1118

1

0

1

 

Проверим, как влияет на количество latch. Запустим нагрузочный тест. Ниже отчет монитора производительности. Длительность latch была значительной, почти 2,6 секунды и ощутимо уменьшилась.

 

Не знаю, насколько чисто мне удалось выполнить этот эксперимент. Повторял несколько раз - получается. У меня возникло ощущение, что для прекращения использования нового флага трассировки службу сервера иногда приходится перезапускать. Проверьте у себя – поделитесь впечатлениями.

Любопытно, что в стандартных отчетах MS SQL Manager Studio видны изменения флагов трассировки от стандартных установок: Max degree of parallelism и TraceFlag 1118.

Кстати

Свойство SQL request wait - длительность запросов, о котором Виктор рассказывает в докладе на минуте 17, описано https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/configure-the-query-wait-server-configuration-option?view=sql-server-2014. Посмотреть список таких свойств свойств можно командой select * from sys.configurations.

 

Заключение

Уважаемый читатель, если Вы добрались до этой строчки, значит есть интерес. Ищу мотивацию писать дальше, повторить исследование для postgres. Лучше, если это будет нужно не только мне, а кому-то еще. Поэтому я беру на себя супер-обязательство: если тема будет интересна и наберет хотя бы 50 звездочек на Инфостарт, я изучу postgres и дополню статью. Ошибки и неточности этой статьи буду исправлять по мере возможности. Кроме этого, жду Ваших конструктивных замечаний. Все в ваших руках.

42

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

Наименование Файл Версия Размер
Нагрузочное тестирование
.zip 89,24Kb
25.06.18
3
.zip 89,24Kb 3 Скачать

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

Комментарии
Избранное Подписка Сортировка: Дата
1. Andrefan 29.06.18 17:14 Сейчас в теме
Спасибо, интересно. Глубоко копнули. Не хватает итогового резюме: плюсов и минусов каждого из тестов с точки зрения нагрузки.
2. vasilev2015 1418 05.07.18 17:22 Сейчас в теме
вместо perfmonitor можно было использовать dm_os_performance_counters
3. Дмитрий74Чел 172 10.08.18 06:53 Сейчас в теме
Статья хорошая, но комментариев нет. Возможно потому что тест выполнен абстрактный, коллеги не видят его прикладной пользы.
Думаю многим было бы интересно увидеть результаты теста на типовой конфигурации (например, ERP), с результатами применения флагов трассировок.
4. zaharknyaz 13.08.18 12:41 Сейчас в теме
Спасибо, интересная статья. Вопрос-может ли как-то отрицательно повлиять флаг трассировки 1118, например раздует размер всех баз в инстансе(насколько я понимаю этот флаг включается глобально для всего SQLServer).
5. vasilev2015 1418 13.08.18 13:16 Сейчас в теме
Здравствуйте ! Спасибо за интерес. Флаг трассировки хорошо документирован MS, посмотрите в первоисточник. Это будет надежнее моего ответа )).
6. vasilev2015 1418 13.08.18 13:20 Сейчас в теме
(3) Да, возможно. Для меня так тестировать - слишком трудозатратно. Первого шага достаточно.
7. nvv1970 14.08.18 07:51 Сейчас в теме
(4) 1118 - это рекомендация не 1с. Это рекомендация самой МС. А в свои скрипты Гленн Берри включает описания в т.ч. тех же флагов, что и Скворцова в статье на КБ.
В 2016 все включено по дефолту и кажется эти флаги действия уже не имеют.
Юзайте свежее по.
8. nvv1970 14.08.18 07:54 Сейчас в теме
Отличная статья. Звезда.
9. vasilev2015 1418 14.08.18 08:59 Сейчас в теме
(7) Да, я заметил что многие флаги, которые есть в MS SQL 2012, в MS SQL 2016 уже включены.
Оставьте свое сообщение

См. также

Кто круче: "ИЛИ" или "ОБЪЕДИНИТЬ ВСЕ" в запросе? 11

Статья Программист Внешний отчет (ert,erf) v8 v8::СПР v8::Запросы ЗУП2.5 MySQL Абонемент ($m) Производительность и оптимизация (HighLoad)

Реальный пример оптимизации запроса. Статья будет полезна людям, изучающим вопросы оптимизации запросов в 1С и для подготовки к экзамену "1С: Эксперт по технологическим вопросам", поскольку в статье описывается один их методов расследования причин неоптимальных запросов. UPD. Коллеги в комментариях заметили ошибку, она была исправлена и сейчас выложены данные с корректным решением.

1 стартмани

14.09.2019    1696    azazana    27       

Оптимизация прав ролей 15

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8::УФ v8::Права 1cv8.cf Россия Windows Абонемент ($m) Производительность и оптимизация (HighLoad) Роли и права

Решение вопроса по неоптимальной настройке (избыточной) ролей, влияющей на производительность системы (потребление оперативной памяти). Алгоритм работы следующий: Выгрузка конфигурации в файлы - Обработка (изменение) файлов прав ролей - Загрузка измененных прав в конфигурацию. Проверено на платформе начиная с 8.3.12.

1 стартмани

09.09.2019    2017    2    toxilamer    11       

Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2 14

Статья Системный администратор Архив с данными v8 Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Проработав 15 лет с MSSQL в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

1 стартмани

05.09.2019    4161    9    ogidni    84       

Менеджер потоков: реализация "любой" задачи в потоках 49

Статья Программист Нет файла v8 Абонемент ($m) Производительность и оптимизация (HighLoad)

Менеджер потоков – один их новых инструментов, который упрощает работу разработчиков. Насколько легко с ним, на конференции Infostart Event 2018 Education показал начальник отдела автоматизации 1С Иван Филимонов компании «Трансстроймеханизация».

01.08.2019    4232    17    DarkAn    6       

Ловец дедлоков СУБД 45

Статья Системный администратор Программист Архив с данными v8 Россия MS SQL Абонемент ($m) Производительность и оптимизация (HighLoad) Практика программирования Разработка

Анализ простейшего дедлока СУБД в рабочей базе с использованием ЦУП (центра управления производительностью) и profiler MS SQL (Microsoft SQL Server). Эта статья будет полезна людям, изучающим вопросы оптимизации работы 1С, или тем, у кого возникают дедлоки в рабочей базе. UPD 09.07.2019 добавлено воспроизведение блокировки в случае установки управляемой блокировки перед чтением набора записей регистра сведений. UPD 10.07.2019 добавлена тестовая база с примером.

1 стартмани

08.07.2019    6191    2    azazana    76       

Мониторинг производительности и искусственный интеллект 37

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Производительность и оптимизация (HighLoad) Практика программирования Разработка

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

1 стартмани

01.07.2019    3919    3    ivanov660    28       

Взаимодействие при редактировании одних и тех же данных [Расширение] УТ11 6

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 УТ11 Россия Абонемент ($m) Производительность и оптимизация (HighLoad)

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

2 стартмани

14.04.2019    1760    2    noprogrammer    0       

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

Инструменты и обработки Программист Архив с данными v8 v8::УФ Абонемент ($m) Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика

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

1 стартмани

19.03.2019    14126    13    dmitrydemenew    83       

Исправление ЦУП 2.1.2 1

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Расширение для конфигурации Центр управления производительностью, редакция 2.1 (2.1.2.11), которое позволяет настроить регламентный мониторинг. Работает на платформе 1С:Предприятие 8.3 (8.3.13.1644).

2 стартмани

21.01.2019    2246    5    Neco    0       

Многопоточное тестирование производительности по методике APDEX (управляемые формы) 12

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

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

10 стартмани

09.01.2019    4115    8    capitan    24       

Решение проблемы быстродействия в ERP на рабочем примере 59

Инструменты и обработки Программист Конфигурация (md, cf) v8 ERP2 Абонемент ($m) Производительность и оптимизация (HighLoad)

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

3 стартмани

18.12.2018    7809    44    ivanov660    8       

Короткое нагрузочное тестирование PostgreSQL простыми запросами 25

Статья Системный администратор Программист Архив с данными v8::УФ Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Короткое нагрузочное тестирование PostgreSQL простыми запросами. Прилагаются результаты в файлах pgBadger и perfmon.

1 стартмани

10.12.2018    6482    1    vasilev2015    22       

PostgreSQL для 1С 8.3: ускоряем резервное копирование и восстановление для отдельной базы очень большого размера 109

Статья Системный администратор Программист Архив с данными v8 1cv8.cf Россия PostgreSQL Абонемент ($m) Производительность и оптимизация (HighLoad) Тестирование и исправление

В этой статье разберем оптимизацию работы с моментальным снимком отдельной базы 1С в кластере PostgreSQL средствами pg_dump.exe, pg_restore.exe, psql.exe в среде Windows Server 2008,2012,2016. А также разберем проблемные ситуации и неожиданные ограничения при работе 1С в связке с PostgreSQL. Для Linux все аналогично.

1 стартмани

03.12.2018    16065    30    vsasav    68       

Многопоточная обработка данных 44

Инструменты и обработки Системный администратор Программист Конфигурация (md, cf) v8 v8::УФ 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad) Администрирование данных 1С

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

1 стартмани

23.11.2018    10600    44    _ASZ_    14       

Замер производительности. КА 2, УТ 11 1

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 УТ11 Абонемент ($m) Статистика базы данных Производительность и оптимизация (HighLoad)

Отчет позволяет замерять на актуальных базах КА2 и УТ11 (в том числе на демо-базах) три параметра: время выборки данных, время передачи с клиента на сервер, время вывода данных. Тестировал на релизах КА 2.4.1.240 и УТ 11.4.5.32.

1 стартмани

22.11.2018    3805    5    FarFar    9       

Скорость работы 1С8 файловой по сети 87

Статья Системный администратор Программист Архив с данными v8 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad)

Как я увеличил скорость работы файловой 1С8 по сети, изменив формат БД и размер страницы.

1 стартмани

01.11.2018    17512    11    Vlx    55       

Мониторинг показателей систем 1С 8.3 с помощью Zabbix 162

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Внешние источники данных Zabbix

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    20441    36    akimych    48       

Очистка и обновление индекса полнотекстового поиска (регламентное задание) 8

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 УНФ ДО БП3.0 УТ11 УХ ЗУП3.x Россия Абонемент ($m) Производительность и оптимизация (HighLoad)

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

2 стартмани

14.09.2018    11077    53    Kyrales    3       

Пересечение транзакций. Примеры 17

Статья Программист Архив с данными v8 Абонемент ($m) Производительность и оптимизация (HighLoad)

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

3 стартмани

03.09.2018    6960    vasilev2015    5       

Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus v1.5.2 5

Инструменты и обработки Программист Руководитель проекта Внешняя обработка (ert,epf) v8 1cv8.cf Украина Абонемент ($m) Производительность и оптимизация (HighLoad) Рабочее место

У пользователей системы AgentPlus (Агент Плюс) отчет 'Контроль передвижений агентов (онлайн-карты)' v1.5.2 вызывает восторг и разочарование одновременно. Восторг – потому, что позволяет увидеть маршрут передвижения пользователя системы с привязкой к карте и дорогам, разочарование – от длительности построения отчета. Отчет по 45 точкам маршрута у меня строится больше минуты. Тестировалось на "Управление торговым Предприятием" 1.2.45.2.

1 стартмани

03.05.2018    4218    4    DiegoLidabo    0       

В «1С:ЗУП КОРП 3.1» тормоза (медленная работа) в журналах документов при использовании критериев отбора 34

Статья Программист Нет файла v8::Запросы ЗУП3.x Абонемент ($m) Практика программирования Производительность и оптимизация (HighLoad)

Статья для тех, у кого: 1) используете RLS (ограничение доступа на уровне записей и полей), 2) много документов (более 100 тысяч в одном журнале), 3) используете «Журналы документов», 4) отборы в динамическом списке (по сотруднику). Скорее всего, Вы испытали на себе, как отбор происходит минутами (жутко тормозит) – тогда Вам сюда.

1 стартмани

04.01.2018    14900    Nykyanen    3       

Обработки  для проведения сценарного нагрузочного тестирования на примере конфигурации ЗУП версии 3.1.1.91 3

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Украина Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Обработки предназначены  для проведения сценарного нагрузочного тестирования, включая  пример описанного  сценария  с обработками (epf) -  ГлавныйРасчетчик, Кадровик, Расчетчик, Табельщик. Обработка будет полезна прежде всего тому, кто внедряет решение на базе конфигурации 1С "Зарплата и Управления персоналом" с необходимостью воспроизвести определенный сценарий с заданным количеством пользователей для расчета, а также возможность посмотреть, какая будет при этом нагрузка на ваше оборудование и скорость выполнения операций с учетом блокировок СУБД. Также это будет интересно тем, кто хочет прощупать, как на практике пользоваться конфигурацией "Тест Центр", входящий в состав пакета 1С:КИП.

2 стартмани

15.09.2017    6932    14    podorojnii_ayu    0       

Графический план выполнения запроса 1С 25

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf MS SQL Абонемент ($m) Производительность и оптимизация (HighLoad) Инструментарий разработчика Универсальные обработки

Просмотр графического отображения плана выполнения для запросов 1С. Для информационных баз на MS SQL Server.

1 стартмани

24.06.2017    11472    51    berezdetsky    26       

Перерасчет итогов регистра бухгалтерии в 1С 8

Инструменты и обработки Программист Архив с данными v8::БУ БП1.6 Россия БУ Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Вариант перерасчета итогов частями (помесячно), если при типовом пересчете 1С зависает.

1 стартмани

30.05.2017    11384    16    MarcoPolo3    1       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 176

Статья Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    38529    168    DarkAn    86       

График времени выполнения ключевой операции 12

Отчеты и формы Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ Розница ДО ERP2 БП3.0 УТ11 ЗУП3.x Абонемент ($m) Статистика базы данных Производительность и оптимизация (HighLoad)

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

1 стартмани

09.04.2017    11016    17    info1i    0       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

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

1 стартмани

25.10.2016    32766    605    Andreynikus    54       

Настройка PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012, объём БД более 200 Гб 198

Инструменты и обработки Системный администратор Архив с данными v8 Россия Windows Абонемент ($m) Производительность и оптимизация (HighLoad) Администрирование данных 1С

Настройка бесплатной СУБД PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012 х64. Объём БД более 380 Гб для мощного сервака. Конфигурация КА 1.1.108.2, 50 пользователей. Более 1 млн. проводок при закрытии месяца. Время закрытия месяца сравнимо с MSSQL и составляет в среднем 2 часа. Время отмены закрытия месяца - всего 10 минут! Ликвидированы зависания PostgreSQL. Всё за счет настроек файла postgesql.conf.

1 стартмани

11.10.2016    60403    57    vsasav    40       

Средство поиска "узких мест" при проведении документов 6

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Производительность и оптимизация (HighLoad) Практика программирования

Обработка и добавляемые в конфигурацию коды для ведения простой для понимания статистики времени проведения документов. Пригодно для разных конфигураций на платформе 8.2

1 стартмани

31.05.2016    9764    5    ibs10    12       

Просмотр структуры БД, парсинг запросов SQL 94

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Статистика базы данных Производительность и оптимизация (HighLoad)

Получение некоторых данных о БД и сеансе, просмотр внутренней структуры таблиц БД 1С в SQL, "перевод" запросов SQL в терминологию 1С. Чуть больше, чем "ПолучитьСтруктуруХраненияБазыДанных"; чуть удобнее, чем аналоги; чуть другая, чем КИП.

1 стартмани

26.02.2016    23823    221    Yashazz    15       

Парсер технологического журнала 1С 14

Инструменты и обработки Системный администратор Приложение (exe) v8 1cv8.cf Россия Windows Абонемент ($m) Поиск данных Производительность и оптимизация (HighLoad)

Простой, шустрый и легкий в использовании off-line парсер технологического журнала 1С.

10 стартмани

06.12.2015    17409    78    sarycheff    29       

Поиск в динамическом списке (по части строки): попытка оптимизации 14

Инструменты и обработки Системный администратор Программист Архив с данными v8 УТ10 Россия УУ Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

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

1 стартмани

24.11.2015    16816    2    logarifm    5       

Фиксируем SPID для отслеживания в SQL Profiler 17

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Для разбора запросов бывает полезным использовать SQL Profiler. При настройке выборки событий предлагаю дополнительно наложить еще один фильтр по полю SPID.

1 стартмани

22.09.2015    13372    22    break    3       

1С:Бухгалтерия 3.0. Борьба за производительность 6

Инструменты и обработки Системный администратор Программист Архив с данными v8 БП3.0 БУ Закрытие периода Абонемент ($m) Производительность и оптимизация (HighLoad)

Программисты в шоке: закрытие месяца в БП 3.0. Как закрыть ноябрь 2014 года и успеть встретить новый год.

49 стартмани

01.06.2015    9435    pit201201    21       

Тест производительности 1С 5

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Глубоко убежден, что организациям с числом активных пользователей 1с большим чем 10, крайне необходимо уходить от файловых баз. И тут возникает дилемма: Какую СУБД выбрать? SQL или Postgre? Скуль хорош. Очень хорош. Практически "из коробки" он обеспечит превосходную производительность. Но стоит нереальных денег. Очень хорош... Но дорог... Очень дорог... С Постгри все сложнее. "Из коробки" мы получаем конструктор "очумелые ручки". Чтобы насладиться более-менее приемлемым результатом, придется попотеть. Зато "халява, сэр".

1 стартмани

22.04.2015    10979    14    smallbuk    22       

Сбор и анализ счетчиков производительности через 1С по шагам 8.3 95

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Для поиска узких мест в производительности сервера можно включить и настроить счетчики этой самой производительности «Performance Monitor». По умолчанию данные собираются и пишутся в файлы, но это не всегда удобно. Появилась задача, для которой более удобно собирать счетчики в базу данных MS SQL и позднее анализировать через 1С. Далее о том, как это настроить, и какая обработка получилась у меня.

1 стартмани

06.04.2015    30476    81    Silmariil    25       

Использование общих модулей "Длительные операции" из состава БСП или асинхронное выполнение серверных процедур без блокировки пользовательского интерфейса 128

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Производительность и оптимизация (HighLoad) Универсальные функции БСП (Библиотека стандартных подсистем)

В статье кратко описан способ использования процедур общих модулей "Длительные операции" из состава библиотеки стандартных подсистем (БСП). Статья будет полезна программистам и администраторам, работающих с объемными клиент-серверными базами, конфигурации которых включают в себя БСП. К длительным операциям можно отнести, например, такие процедуры как групповое проведение документов, формирование объемистых отчетов, работа с внешними источниками данных.

1 стартмани

17.03.2015    55320    163    Bassgood    15       

Версионирование объектов. Сжатие регистра "ВерсииОбъектов" 9

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad)

Cжимаем версии объектов в регистре сведений "ВерсииОбъектов". Экономия занимаемого версиями объектов объема более 50% !!!

1 стартмани

30.12.2014    24302    45    ZLENKO    14       

Обновление статистики MS SQL прямо из 1С 11

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Сервисные утилиты Статистика базы данных Производительность и оптимизация (HighLoad)

Обработка позволяет обновить статистику любого объекта: документа, справочника или регистра или конкретного индекса прямо из 1С

1 стартмани

26.10.2014    16539    47    kser87    7       

Как в 1С оптимизировать запрос – пример ускорения в 6 раз 53

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Что Вы узнаете из этой статьи? • Одну из основных причин медленной работы запросов • Анализ возможных методов ускорения запросов • Эффективный способ ускорения запросов, в которых происходит обращение через «2 точки»

1 стартмани

23.10.2014    26565    13    Насипов Фарит    1       

Как ускорить 1С за 5 минут – Протокол Shared Memory 44

Инструменты и обработки Системный администратор Архив с данными v8 1cv8.cf Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Что Вы узнаете из этой статьи? • Рассмотрены возможности ускорения «1С:Предприятие 8» в небольших организациях • Показана процедура включения протокола Общая память (Shared Memory) • Продемонстрирована диагностика использования Shared Memory

1 стартмани

23.10.2014    53854    21    Насипов Фарит    1