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

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

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

Нагрузочное тестирование СУБД PostgreSQL pgBadger

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

Предисловие

Несколько лет назад мне в руки попала «Настольная книга эксперта» Евгения Филиппова. Оказалось, что запросы можно писать лучше, заставить программу 1С работать быстрее. С тех пор я подмечал интересные статьи, идеи, доклады. Один из них – доклад Виктора Богачева http://v8.1c.ru/expert/cts/expert.htm о работе в ОАО «Деловые линии». Работа хорошо документирована в рамках проекта ЦКТП и широко освещалась в медиа, в том числе на Инфостарте.

Статья //infostart.ru/public/850217/ - попытка реконструировать ситуацию из доклада с использованием MS SQL 2012. В ней можно найти краткий конспект доклада. Продолжение статьи с использованием PostgreSQL было неизбежно. Итак, мы планируем запускать тестовые задачи в связке 1С + PostgreSQL и наблюдать за поведением хоста и СУБД.

Выбор тестовых задач

Будем использовать 1С + PostgreSQL + Windows, это достаточно популярное решение. Пора развенчать миф о недоступности PostgreSQL.

 
 Даешь PostgreSQL в народные массы !

 

Для создания нагрузки, будем запускать ФоновыеЗадания.Выполнить() несколько клиентов. Запросы в цикле. Задача - оценить пиковую нагрузку. В основном, тестовые задачи будут те же, что и в статье //infostart.ru/public/850217/. Это позволит сравнить результаты работы различных СУБД с одной конфигурацией 1С. Выгрузка базы данных прилагается, кто захочет – сможет повторить.

  1. ВЫБРАТЬ 1+1 КАК Поле2
  2. ВЫБРАТЬ Тестирование.Код ИЗ Справочник.Тестирование  КАК Тестирование
  3. ВЫБРАТЬ 1+1 КАК Поле2 ПОМЕСТИТЬ ВремТаблица
  4. ВЫБРАТЬ 1+1 КАК Поле2 ПОМЕСТИТЬ ВремТаблица ИНДЕКСИРОВАТЬ ПО Поле2
  5. Полное соединение
  6. Левое соединение
  7. Декартово произведение

Также посмотрим поведение СУБД PostgreSQL для разных случаев:

  1. Настройка конфигурации «из коробки».
  2. Получение в технологическом журнале плана запросов
  3. Проверим влияние параметра конфигурации  fsync по статье https://its.1c.ru/db/metod8dev#content:5825:hdoc, https://its.1c.ru/db/metod8dev#content:1576:hdoc
  4. Сравнение с MS SQL 2012

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

Подготовительная работа

ОС - Windows 10, 64 бит, жесткий диск SSD, 16 Гб RAM, процессор i3-6100 @ 3.7 GHz (два ядра), гигабитная сеть.

Скачал и установил программы:

1С:Предприятие 8.3 (8.3.11.3034)

Адрес https://releases.1c.ru ссылка PostgreSQL, версия 9.6.7-1.1C каталог установки C:\Program Files\PostgreSQL\9.6.7-1.1C

В состав пакета входит графическая оболочка pgAdmin версия 4. Есть более свежая версия СУБД, но она требует 1С версия 8.3.13.

Для использования pgBadger настроим файл postgresql.conf по статье http://pgcookbook.ru/article/pgbadger.html (аналогичная информация есть на ИТС)

log_line_prefix = '%t [%p]: [%l-1] '

формат логов

log_duration = on

Включает логирование запросов

log_min_duration_statement = 0

минимальное время миллисекунд выполнения запроса. В документации указано =0.

Если установить log_min_duration_statement = -1, то сообщения об ошибке нет, но статистика будет собираться неверно, отражая заоблачные значения производительности.

Адрес http://strawberryperl.com/ ссылка Strawberry Perl 5.28.0.1 (64bit) каталог установки C:\Strawberry

Среда Perl нужна для исполнения скрипта pgBadger.

Адрес https://github.com/darold/pgbadger/releases  ссылка pgbadger-10.1.tar.gz каталог установки C:\pgbadger-10.1

Командный файл для запуска скрипта pgBadger из каталога временных файлов C:\Users\vasiliev_ng\temp автоматически формируется 1С при запуске теста, включает одну минуту журнала, которая содержит результаты последнего теста, например:

xcopy "C:\Program Files\PostgreSQL\9.6.7-1.1C\data\pg_log\*.*" "C:\Users\vasiliev_ng\temp\" /Y

C:\Strawberry\perl\bin\perl c:\pgbadger-10.1\pgbadger -a 1 -b "2018-11-30 22:38:46" -e "2018-11-30 22:40:26" --anonymize C:\Users\vasiliev_ng\temp\postgresql-Fri.log

Копировать лог СУБД в каталог C:\Users\vasiliev_ng\temp, запустить perl с указанием скрипта, параметры, файл логов для анализа. В ответ будет создан новый файл Out.html. Таблицу параметров из документации перевел на русский, файл perevedi.xlsx в приложении. Скрипт формируется и исполняется 1С (Выгрузка базы данных прилагается).

 
 Тест является элементом справочника.

Общая информация о тестировании.

Информацию о состоянии хоста будем получать средствами perfmon. Показатели выбираем в соответствии со статьей https://its.1c.ru/db/metod8dev#content:2923:hdoc: очередь к процессору, очередь к диску, сетевой интерфейс - бит всего. Оперативную память проверял – почти не расходуется. Сетевой интерфейс бывает загружен несущественно (до 5%). Очередь к диску практически не изменяется, добавил показатель «Скорость обмена с диском байт/секунду». Файлы шаблона сборщиков данных прилагаются.

Информацию о состоянии СУБД PostgreSQL будем получать из самой СУБД, с использованием pgBadger. Этот бесплатный, но мощный инструмент СУБД PostgreSQL до сих пор упоминался в публикациях Инфостарта два раза, рассмотрим его подробнее.

Все тесты запускал много раз, добиваясь устойчивых, прозрачных результатов. Вначале картина была неполная: на сервере СУБД количество запросов в секунду не росло выше определенного предела, упиралось в потолок, а свободные ресурсы были. После переноса кластера 1С на этот же хост стало видно узкое место: процесс rphost при таких тестах потребляет значительные ресурсы ЦП, а сервер кластера 1С был недостаточно производительным. Выбрал более мощный сервер для кластера 1С.

 
 распределение памяти, если сервер кластера и СУБД совместить.

Для каждого фонового задания запускается отдельный экземпляр PostgreSQL. Количество сеансов и циклов в тесте подбирал так, чтобы загрузка процессора была максимальной в течение одной минуты. Такие тесты пригодятся, чтобы сделать поверхностные выводы, но настоящие нагрузочные тесты намного сложнее и дольше.

1. Настройка конфигурации «из коробки»

 
 Результаты тестирования

Номер запроса

Клиенты

Циклы

Пик, тысяч запросов в секунду

Файлы pgBadger,

Perfmon

1

90

9999

27

 

Simply_081512

2

90

9999

20

 

RefQuery_081548

Простейшие запросы должны показывать большее число запросов в пике по сравнению с более сложными запросами. Например, если в простейший Запрос 1 просто добавить текстовое поле, пик упадет на 5%. В этом смысле видно предел быстродействия.

Когда выполнял Запрос 1, то получил ошибку «FATAL: sorry, too many clients already». В логе pgBadger отображается на закладке «Events». Проверил конфигурацию: max_connections = 100, shared_buffers = 128MB. Изменять не стал )).

 
 результаты тестирования

3

26

9999

6,9

TempTable_091216

4

26

9999

5,4

IndexTable_091210

Запросы №3,4 создают временную таблицу (индекс), записывают данные на диск. Самые медленные запросы в этих опытах – работа с временными таблицами и индексами:

  • DROP TABLE IF EXISTS tt1 CASCADE; CREATE TEMPORARY TABLE tt1
  • INSERT INTO pg_temp.tt1
  • CREATE INDEX
  • DROP INDEX IF EXISTS

Распределение запросов по типам:

  • Запрос № 3 select 33%, insert 33%
  • Запрос № 4 select 17%, insert 17%, DDL 50%

5

9

3333

2.4

FullJoin_081628

6

9

3333

5.6

LeftJoin_081724

7

9

3333

5.6

Decart_081733

Здесь используем, что запросы

  • ВЫБРАТЬ * ИЗ ВремТаблица КАК ВремТаблица1 ПОЛНОЕ СОЕДИНЕНИЕ ВремТаблица КАК ВремТаблица2 ПО ИСТИНА
  • ВЫБРАТЬ * ИЗ ВремТаблица КАК ВремТаблица1 ЛЕВОЕ СОЕДИНЕНИЕ ВремТаблица КАК ВремТаблица2 ПО ИСТИНА
  • ВЫБРАТЬ * ИЗ ВремТаблица КАК ВремТаблица1, ВремТаблица КАК ВремТаблица2

Дают одинаковый результат (если в декартовом произведении отсутствует null). Однако СУБД интерпретирует их по-разному.

В списке самых медленных запросов видим запросы работы с временными таблицами и запрос типа  SELECT … FROM … INNER JOIN  … ON  …  INNER  … ON  …  INNER JOIN  … ON  … WHERE  … UNION ALL SELECT  … INNER JOIN  …  ON  … INNER JOIN  …  ON  … WHERE NOT (EXISTS ( SELECT  … FROM …

Откуда становится ясно, как именно PosqreSQL вычисляет полное соединение. Кстати, один из вариантов замены полного соединения рассмотрен в статье  //infostart.ru/public/794859/ с математическим доказательством эквивалентности запросов методом математической индукции.

В опытах 5-7 оператор полного соединения на ВремТаблица (625 строк) дает скорость в два раза меньше, чем операторы левого и декартового соединения в эквивалентных запросах. Причем, разница в скорости может возрастать нелинейно с ростом количества строк. Однако, не нужно бросаться переписывать все операторы полного соединения для использования PostgeSQL. Как указал Е. Филиппов, «работать нужно с существующими проблемами».

2. Конфигурация «из коробки» после включения ТЖ.

Включим ТЖ: сбор планов, SDBL, DBPOSTGRS. Файл logcfg.xml прилагается. Результаты в таблице.

Номер запроса

Клиенты

Циклы

Пик,  тысяч запросов в секунду

Файлы pgBadger,

Perfmon

7

9

3333

5,7

Decart_081748

Численное значение пиков практически не поменялось, но в списке самых медленных запросов появились запросы типа EXPLAIN ANALYSE SELECT.., количество которых равно количеству «целевых» запросов. Фактически, каждый запрос выполняется два раза – один раз дополнительно, чтобы получить план запроса. Можно сказать, что «целевых» запросов стало в два раза меньше.

3. Изменяем конфигурацию.

Запросы 3,4 работали с временными таблицами, использовали жесткий диск. Проведем эксперимент – установим параметр fsync  = off ( По умолчанию fsync = on ). В приложении bat-файл, который останавливает службу Postgres, копирует измененный config и запускает службу. Выполним нагрузочный тест.

Номер запроса

Клиенты

Циклы

Пик,  тысяч запросов в секунду

Файлы pgBadger,

Perfmon

3

26

9999

7,2

TempTable_091233

4

26

9999

5,7

IndexTable_091226

В обоих опытах значения пиков запросов больше на 4-6 процентов. Чем активнее запрос работает с диском, тем больше он чувствителен к параметру fsync. Дисковые операции стали выполняться несколько быстрее, но вероятность io ошибки тоже выросла.

4. Сравнение PostreSQL 9.6 и MS SQL 2012

Создадим базу данных на MS SQL 2012, используя ту же базу 1С (выгрузка прилагается).

Номер запроса

Клиенты

Циклы

Пик,  тысяч запросов в секунду

ФайлPerfmon

1

90

9999

21,3

Simply_091647

2

90

9999

17,3

RefQuery_090841

Значения ниже, чем в опытах PostgreSQL, но есть важный нюанс. Загрузка процессора существенно ниже, чем в первых опытах и не понятно, чем вызвано ограничение числа запросов. Конфигурация серверов не изменялась, но возможно MS SQL работает с сервером кластера активнее и сервер кластера опять стал узким местом.

3

39

9999

11.7

TempTable_090636

4

39

3333

11

IndexTable_090817

В опытах 3,4 появились характерные блокировки Latch. При этом есть корреляция между ростом числа блокировок и падением числа запросов в секунду. Возможно, это основной фактор, мешающий росту. Загрузка процессора доходит до 70%. Это существенное значение, но очередь меньше 2 на ядро. В опытах PostgreSQL загрузка доходила до 90%, очередь выше 2 на ядро.

6

27

3333

6.8

LeftJoin_090830

Значения сопоставимые с PostrgeSQL. Полное соединение и декартово произведение не тестировал.

Заключение

В публикации проведена серия тестов, результаты полностью открыты для Сообщества. В целом, PostgreSQL произвел на меня положительное впечатление. Есть ощущение развития и комфорта. Инструмент pgBadger - просто бомба, поэтому использовал его как логотип статьи. Хочется пожелать успехов pg-разработчикам.

Послесловие

Кстати, мне удалось получить ответ от Виктора Богачева о использовании PostgreSQL в ОАО «Деловые линии»:

- В докладе вы сказали, что рассматривали две СУБД: MS SQL и DB2 ? Скажите, рассматривали ли PostgreSQL и если нет - то почему ?

- На тот момент Postgres менее активно продвигался в том числе фирмой «1С» …

Отдельное спасибо техподдержке info@postgrespro.ru Постгрес Профессиональный https://postgrespro.ru за оперативность. Они действительно помогают. Тикет OTRS 2018112355000121 можно закрывать.

 

*********

 

С 4 по 6 февраля 2019 года в стенах Московского государственного университета состоится конференция по PostgreSQL – PGConf.Russia 2019. Ежегодно она собирает более 500 разработчиков, администраторов баз данных и IT-менеджеров для обмена опытом и профессионального общения.

На этот раз PGConf.Russia будет особенной. Инфостарт совместно с Postgres Pro организует на конференции секцию «Postgres+1C». Мы приглашаем участников сообщества посетить PGConf и даже выступить в качестве докладчика.

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

Наименование Файл Версия Размер
Тест PostgreSQL:

.rar 2,95Mb
09.12.18
2
.rar 2,95Mb 2 Скачать
Тест PostgreSQL:

.rar 2,95Mb
09.12.18
1
.rar 2,95Mb 1 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. vasilev2015 1829 10.12.18 12:01 Сейчас в теме
Файлы одинаковые, только цена разная. Выбирайте. Маркетинг )).
2. a.doroshkevich 814 10.12.18 15:31 Сейчас в теме
Классное исследование и хорошая статья!
Прям не поленились)

Я правильно понял что в запросы 3,4 на MS SQL отработали в 2 раза быстрее?

И ещё вопрос, в конфигурации PostgreSQL параметр online_analyze.enable чему равен?
3. vasilev2015 1829 10.12.18 15:54 Сейчас в теме
(2) Здравствуйте !

online_analyze.enable = off
Из коробки, не менял.

Результаты сравнения мне трудно интерпретировать.
Такое ощущение, что для MS SQL узким местом стал сервер кластера 1С,
и если его устранить, то производительность вырастет. Буду еще смотреть.
4. a.doroshkevich 814 10.12.18 16:14 Сейчас в теме
Если есть возможность, то
online_analyze.enable = on

Перед тестирование перечитать настройки PG и провести Vacuum + analyze всей базы
5. a.doroshkevich 814 10.12.18 17:37 Сейчас в теме
И ещё, раз это PG на Windows, то выполните те же тесты на версии 10.5 (на сайте 1С уже есть)
6. vasilev2015 1829 10.12.18 22:06 Сейчас в теме
(5) Спасибо за подсказку, сделаю на выходных. Будет еще одна сравнительная таблица.
14. vasilev2015 1829 13.12.18 09:36 Сейчас в теме
(5) Здравствуйте, Антон ! Может, выгоднее сделать дополнение по версии 9.6 Enterprise, а не по 10, как Вы считаете ? Хочу еще дополнить тесты, например запросом который сильно загружает жесткий диск, включить в тестирование параметры кроме fsync. Можете что-то посоветовать ?
15. a.doroshkevich 814 13.12.18 11:40 Сейчас в теме
(14)
С Enterprise стоит сравнивать только если использовать его фишки быстродействия, такие как сжатие данных, а это актуально только на больших объёмах данных.

Тест с запросом сильно загружающим диск - по идее это означает что запрос неверный и БД не обязана это корректно отрабатывать.
Я люблю сравнивать рабочую нагрузку, так как потом в жизни именно она, а не синтетика.

Так что я бы всё таки протестировал версию 10 на Windows, с тем же самым профилем нагрузки что в статье.
16. vasilev2015 1829 13.12.18 12:33 Сейчас в теме
(15) Попробовал запустить тест на PostgreSQL 10. Но для него нужно использовать 8.3.13 не только на моей машине, но и на серверах кластера 1С. А это продуктивный контур )). Я не смог убедить своих коллег )).
17. a.doroshkevich 814 13.12.18 17:24 Сейчас в теме
(16)жаль. Но
Что мешает поставить на серверах 3.13 отдельной службой никак не затрагивая рабочий контур?
7. capitan 1669 11.12.18 14:08 Сейчас в теме
Очень странно что мелкий и мягкий сервер 2012 показал ниже результаты.
Не сочтите пиаром - но если стенд не разобрали - померяйте отдельно сервера БД без 1С ?
https://infostart.ru/public/913958/
8. a.doroshkevich 814 11.12.18 18:00 Сейчас в теме
(7)а смысл отдельно измерять?
С 1С же потом работать через сервер 1С, а не напрямую.
9. capitan 1669 11.12.18 18:30 Сейчас в теме
(8)Смысл как раз есть - понять где узкое место.
10. vasilev2015 1829 12.12.18 09:34 Сейчас в теме
(7) Здравствуйте, Андрей !

Посмотрел тест HammerDB - прикольная штука. Фото прилагаю, 117 тысяч tpm - соответствуют моему процессору i3. Как я понял, HammerDB измеряет количество транзакций, а у меня в статье пик количества запросов, но возможно эти результаты коррелируют. Для поиска узких мест предпочитаю замерять процент загрузки и очередь (perfmon). В опытах с PostgreSQL это сработало полностью, с остальным пока разбираюсь. Время ограничено.
Добавил вашу статью в избранное символом звездочка. Не-намек на не-пиар. :-)
Прикрепленные файлы:
11. capitan 1669 12.12.18 10:28 Сейчас в теме
(10)Я то имел в виду следующее:
У вас получились результаты что Постгри делает Микрососфт на их же сервере.
Это несколько загадочно, а для Билла Гейтса так вообще наверное обидно )
Да не несколько, а очень загадочно
Но у вас связка - сервер - 1С - сервер БД
Тестом HammerDB вы убираете из это связки 1С и меряете сервер - сервер БД
Т.е. надо еще и второй сервер БД сервер HammerDB померять и сравнить.
Тогда будет понятно - это из за 1С или нет.
Что касается процессора i3 - то у меня нет по нему данных tpm, но на правду похоже
12. vasilev2015 1829 12.12.18 11:08 Сейчас в теме
(11) Нет, я бы не стал так интерпретировать. На простейшем запросе Постгрес делает 27 тысяч, МС делает 20 тысяч, но при этом Постгрес упирается в процессор (свыше 90%), а МС демонстрирует свободные ресурсы (50%). Я не могу дотянуться до серверов кластера и замерить их производительность. Вообще, я зарекся сравнивать Постгрес и МС. Они просто разные. Тем более что здесь - Постгрес на Windows. Понимаю, что Вам не видно файлов perfmon. Поставлю фото экрана (принтскрин) в статью, чтобы подробнее.
13. capitan 1669 12.12.18 11:31 Сейчас в теме
(12)
МС демонстрирует свободные ресурсы (50%)
вот это то и подозрительно.
И как раз если это вылечить то все встанет на свои места МС побьет Постгри
18. user1007495 22.01.19 19:58 Сейчас в теме
Добрый день.
Спасибо за статью.
Может быть кто-то сможет помочь - ну никак не удаётся заставить pgbadger работать под Windows (пробовал Windows Server 2012 R2, как в доменной среде так и отдельно на сервере, не введённом в домен, также пробовал на клиентском компьютере под Win7 x64, ).

Устанавливаю Strawberry Perl (уже попробовал разные версии и разрядности), переменная среды "perl" прописывается, команды выполнять могу (perl -v работает)
Скачиваю pgBadger (версия 10.2), прочитал в интернете, что сначала нужно выполнить Makefile.PL из каталога pgbadger (впрочем, пробовал и до выполнения Makefile.PL и после).
Пробую работать с pgbadger из-под perl: в cmd перехожу в каталог установки pgbadger, выполняю "perl pgbadger -help" или "perl pgbadger -V". Всё работает, справка показывается, версию вижу.
Пробую указывать лог postges'a - выполнение зависает, прогресса нет, ожидание ничего не даёт. Пробую указывать ключ -v для pgbadger, чтобы видеть подробный вывод. Вижу что, процесс зависает на одном из двух этапов (картинка в аттаче). Висит, пока не прервёшь принудительно.

Форматы лога пробовал разные (csv уже в конце). Если лог пустой - pgbadger это видит, понимает и сообщает.
Если нет прав - также говорит Permission Denied. Пробовал явно указывать путь выходного файла в каталог, куда точно у всех есть права. Эффекта ноль.
Прочитал в интернете, что в пути к логу в cmd не должно быть обратных слешей, везде писать прямые (так как интерпретатор перл может воспринимать обратный слеш с идущим следом символом как элемент регулярного выражения, что приведёт к ошибке выполнения скрипта). Указывал по-всякому, ноль эффекта.

Ну и самое главное, лог - точно пригоден для парсинга. Проверил всю систему под Linux (CentOS 7), все работает отлично, выходной html-файл информативен, всё круто в общем. Скрин в аттаче.
Затевать переброску логов между серверами не очень хочется, тем более, если у народа работет и под виндой всё.
В чём может быть проблема ещё? Уже голову сломал
Прикрепленные файлы:
19. vasilev2015 1829 22.01.19 21:54 Сейчас в теме
(18) Здравствуйте !

Единственная доступная мне машина содержит Windows )).
Все, что сделал - подробно записал - сможете повторить.
Makefile.PL я не запускал, но поправил файл pgbadger в текстовом редакторе - иначе выходила ошибка.
Вы pgbadger скачивали с того же ресурса, как в статье ? (Он должен быть около 1 Мб)
Обязательно настройте файл postgresql.conf - Вы про это не указали.
Размер логов postgres должен быть около 100 Мб - у меня это 10 минут работы.
20. user1007495 23.01.19 09:57 Сейчас в теме
(19) Добрый день. Спасибо за ответ.

Все, что сделал - подробно записал - сможете повторить.
Простите, не понял, записали где? В статье?

Сам pgbadger да, скачал по ссылке с гитхаба. Дело в том, что я беру один и тот же архив со скриптом pgbadger и один и тот же файл лога postgresql. Копирую это всё на разные сервера. В Linux парсится, в Windows - нет.
postgresql.conf настроен. В лог всё пишется в соответствии со структурой указанной в log_line_prefix. У Вас log_destination как настроен? У меня = 'stderr'. Размер логов postgres, я думаю, может быть разным. Я беру файл логов за период работы около часа, поэтому у меня он меньше - в районе 10МБ. Соответственно, обрабатывается быстрее. Но, повторюсь, в Linux он обрабатывается нормально.

поправил файл pgbadger в текстовом редакторе - иначе выходила ошибка

А можете подсказать, что конкретно поправили?
21. vasilev2015 1829 23.01.19 10:19 Сейчас в теме
(20) Здравствуйте !

я когда скачивал pgBadger, долго выбирал. Мне кажется, для Windows он другой. Посмотрите ссылку в статье. Файл pgBadger должен "весить" 1 Мб.

Ошибку в текстовом файле не помню. Если у Вас появится - скажите.
22. user1007495 23.01.19 11:09 Сейчас в теме
(21)вау, получилось.
Всё-таки Вы мне помогли.
Скачал предыдущий pgbadger (10.1), в общем, как у Вас в статье и всё сходу полетело (скрин во вложении). На 10.2, выходит, на Linux работает хорошо, на Windows никак. Кстати, на одном из Linux-серверов у нас очень старый Perl (5.8.8), в нём pgbadger тоже не отрабатывает - сыпет ошибки.

В общем, вывод - крайне внимательно относиться к версиям Perl и самого скрипта pgBadger.
Рабочая конфигурация:
-Windows 7 x64
-perl 5.28.1 built for MSWin32-x64
-pgBadger 10.1

Ну и стоит ещё упомянуть о таких интересных ключах pgbadger как -I ("И" - инкремент) в комбинации с -O (--outdir path).
Если при выполнении указывать одну и ту же выходную директорию, указывая при этом ключ "инкрементный режим", то pgbadger создаст в этой выходной директории структуру сайта и стартовую страничку index.html, по запуску которой будет открываться календарь с возможностью выбрать день и посмотреть отчёт по статистике postgres именно по этому дню.
При этом новые дни будут добавляться с каждым выполнение скрипта.

Спасибо.
Прикрепленные файлы:
Оставьте свое сообщение

См. также

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

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

Проработав 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    13143    39    Indgo    106    

Простая параллельная обработка данных

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

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

1 стартмани

10.02.2020    2821    1    Amadeus007    8    

Zabbix: Мониторинг рабочих процессов

Zabbix v8 1cv8.cf Абонемент ($m)

Мониторинг памяти, потребляемой рабочими процессами, средствами Zabbix. Создание пользовательских LLD правил с помощью One Script

1 стартмани

07.02.2020    3591    2    EShchavleva    6    

Транслятор запросов 1С в SQL

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

Инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.

10 стартмани

07.01.2020    10335    77    YPermitin    89    

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

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

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

1 стартмани

23.11.2018    18286    53    _ASZ_    15    

Тест серверного оборудования на допустимое количество пользователей: как это использовать?

Администрирование СУБД Нагрузочное тестирование Сервера v8 1cv8.cf Абонемент ($m)

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

3 стартмани

17.12.2019    9819    10    sapervodichka    3    

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

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

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом - при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

10 стартмани

27.11.2019    10048    36    akpaevj    46    

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

Zabbix v8 Абонемент ($m)

Следим за утилизацией программных клиентских лицензий на выделенном сервере лицензирования в разрезе кластеров 1С Предприятия, в состав которых включен данный сервер лицензирования

1 стартмани

22.11.2019    3283    2    Sloth    4    

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

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

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

26.05.2017    47305    15    DarkAn    86    

Быстрая реструктуризация базы данных

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

Внешняя обработка для быстрой реструктуризации клиент-серверной базы данных. Способ ускорения реструктуризации - замена таблиц большого объема пустыми копиями перед проведением обновления БД и возврат к исходным таблицам после обновления с предварительной корректировкой их структуры. Полностью автоматизировано создание и выполнение всех требуемых скриптов SQL. Представлены версии обработки для обычных форм (1С:Предприятие 8.2 (8.2.19.130)) и управляемого приложения (1С:Предприятие 8.3 (8.3.9.1818)).

1 стартмани

05.11.2019    11796    42    dmitrydemenew    36    

Влияние БСП на производительность базы 1С с добавленными метаданными

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

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе "Управление торговлей". С включенными и выключенными подписками БСП.

5 стартмани

04.11.2019    6061    2    VsHome    1    

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

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

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

1 стартмани

14.09.2019    5088    0    azazana    27    

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

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

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

1 стартмани

30.12.2014    26592    24    ZLENKO    14    

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

Производительность и оптимизация (HighLoad) Роли и права v8::УФ v8::Права 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

09.09.2019    6808    5    toxilamer    11    

Количество баз 1С как счетчик в Zabbix

Статистика базы данных Zabbix v8 1cv8.cf Абонемент ($m)

Делаем счётчик баз 1С в Zabbix.

1 стартмани

26.08.2019    5126    0    MrWonder    7    

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

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

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

01.08.2019    8822    0    DarkAn    6    

Многопоточное тестирование производительности сервера 1С - СУБД Промо

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

Тест для оценки производительности связки сервер 1с - сервер СУБД в различных вариантах, а также масштабируемости этой связки в режиме многопоточной работы.

1 стартмани

12.02.2013    81659    277    Fragster    179    

Бухгалтерия 3.0: медленная работа при загрузке данных контрагента по ИНН

Производительность и оптимизация (HighLoad) v8 v8::БУ БП3.0 Россия Абонемент ($m)

Поиск и исправление медленной загрузки контрагентов по ИНН в Бухгалтерия 3.0.71.75.

1 стартмани

10.07.2019    4196    3    MaxxiMiliSan    2    

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

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

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

1 стартмани

08.07.2019    10247    2    azazana    79    

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

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

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

1 стартмани

01.07.2019    8643    12    ivanov660    28    

Многопоточный МикроСервер для файловой базы управляемого приложения 1c Промо

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

МикроСервер УПФ - это промежуточный сервер, который принимает запросы от тонких клиентов и веб-клиентов управляемого приложения 1с и распределяет их между автоматически созданными процессами веб-сервера. Решение позволяет решить проблему однопоточности файловой компоненты модуля веб-сервера 1с и повысить скорость многопользовательской работы.

1 стартмани

19.12.2013    36987    48    Chai Nic    57    

Исправление долгого запуска БП 3.0.70 по причине большого количества платежек

Производительность и оптимизация (HighLoad) v8 v8::БУ БП3.0 Россия Абонемент ($m)

Обработка исправления долгого запуска БП 3.0.70 по причине большого количества платежек.

1 стартмани

18.04.2019    4535    7    a_v_u    1    

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

Производительность и оптимизация (HighLoad) v8 УТ11 Россия Абонемент ($m)

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

2 стартмани

14.04.2019    4790    2    noprogrammer    1    

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

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

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

1 стартмани

19.03.2019    21858    16    dmitrydemenew    83    

Методика упрощения поддержки конфигураций. Переопределение и вызов обработчиков событий для УФ 1С 8.2-8.3 Промо

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

Каждый программист 1С хотя бы раз задумывался над тем, как уменьшить в разы трудозатраты на обновления переписанных конфигураций. Как не забыть добавить некий код, команду, кнопку в форму типовой конфигурации, изменить стандартный обработчик события формы – этот список можно продолжать до бесконечности. В этой статье изложен метод для управляемых форм, который позволяет реализовать эту возможность.

1 стартмани

10.02.2013    52971    27    pbazeliuk    40    

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

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

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

2 стартмани

21.01.2019    4816    5    Neco    0    

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

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

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

10 стартмани

09.01.2019    7528    11    capitan    24    

Заметочки про 1С:Предприятие 8 (редакция 22.06.2012) Промо

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

За время программирования на 8.х, накопилось пока немного материала, но как мне кажется очень интересного. Появились простые решения, которые в более сложной реализации встречаются в типовых конфигурациях и в некоторых публикациях на Infostart'е. Собственно в статье речь пойдет об этих решениях.

1 стартмани

01.06.2010    176577    46    alexk-is    413    

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

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

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

3 стартмани

18.12.2018    15371    102    ivanov660    17    

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

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

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

1 стартмани

03.12.2018    26153    38    vsasav    68    

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

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

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

1 стартмани

22.11.2018    6697    5    FarFar    9    

И снова о скорости работы 1с 8.х + тест от Гилева (конфигурация TPС_1C_GILV_A) + как Выбрать сервер для 1С 8.х Промо

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

Предыстория: Есть в конторе, где я работаю, пара практически ОДИНАКОВЫХ по железу сервера... так вот заметили что на одном из них 1С 8.2 работает значительно быстрей что в Клиент-Серверном, что в файловом варианте... и что именно удивило так это что медленней работал сервер с большим количеством Оперативной памяти + RAID10 на SSD. Проводили много тестов на работу дисковой системы + различные тесты SQL - ВЫВОД: ничего непонятно где тормоза. И вот попала ко мне конфигурация 1С для оценки производительности 1С от Гилева http://infostart.ru/public/57204/ Подробности в Описании...

2 стартмани

13.08.2012    377234    185    sanfoto    2558    

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

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

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

1 стартмани

01.11.2018    26007    17    Vlx    55    

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

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

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

1 стартмани

05.10.2018    34487    49    akimych    48    

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

Производительность и оптимизация (HighLoad) v8 УНФ ДО БП3.0 УТ11 УХ ЗУП3.x Россия Абонемент ($m)

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

2 стартмани

14.09.2018    19052    74    Kyrales    6    

Ускоряем расчет себестоимости УПП Промо

Производительность и оптимизация (HighLoad) Закрытие периода Закрытие периода v8 УПП1 Россия БУ УУ Абонемент ($m)

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

1 стартмани

05.03.2013    34073    21    Антон Ширяев    46    

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

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

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

3 стартмани

03.09.2018    10477    0    vasilev2015    5    

Монитор блокировок пользователей

Производительность и оптимизация (HighLoad) v8 v8::blocking 1cv8.cf Россия Абонемент ($m)

Анализ и автоматическое удаление блокировок

1 стартмани

17.08.2018    6332    14    Re:аниматор    7    

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

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

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

1 стартмани

24.06.2018    10191    4    vasilev2015    9    

Автоформатирование кода Промо

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

Как часто приходится работать в режиме аврала, когда на оформление кода не хватает времени? И как лениво порой бывает, возвращаться к уже рабочему коду, что бы отформатировать его и привести в порядок. Данная обработка позволяет автоматически форматировать текст кода, в соответствии с настройками пользователя. Это позволит привести ваш код, как уже написанный так и будущий к единому оформлению.

1 стартмани

19.12.2012    38819    46    Sibars    57    

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

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

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

1 стартмани

03.05.2018    5680    2    DiegoLidabo    0    

Теорема номер тринадцать

Математика и алгоритмы v8 Бесплатно (free)

Использование математических методов для языка запросов.

15.03.2018    11848    0    vasilev2015    24    

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

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

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

1 стартмани

04.01.2018    18184    0    Nykyanen    3    

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

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

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

2 стартмани

15.09.2017    8692    19    podorojnii_ayu    0    

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

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

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

1 стартмани

24.06.2017    14607    56    berezdetsky    28    

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

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

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

1 стартмани

30.05.2017    13859    19    MarcoPolo3    1    

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

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

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

1 стартмани

09.04.2017    13049    15    info1i    0