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

Давайте на примере рассмотрим почему сделан такой вывод.

Тестовый стенд

Настройка
Значение
Сервер СУБД

48 vCPU, 378 Gb RAM.

дисковая подсистема:

  • sda - 200 Gb - system
  • sdb - 10000 Gb - дата-каталог 
  • sdc - 500 Gb - WAL
Сервер приложений 1С 

1 центральный и 2 рабочих сервера, все настройки по умолчанию.

Характеристики всех 3х серверов одинаковые: 32 vCPU, 128 Gb RAM, диск 300 Gb

Сервер лицензирования 1С

Все серверные и клиентские лицензии вынесены на отдельный сервер с характеристиками: 4 vCPU, 16 Gb RAM, диск 50 Gb 

Версия СУБДTantor SE1C 17.2 
Версия ОС сервера СУБД Astralinux 1.8.1
Версия 1С

8.3.26.1541

Версия ОС серверов приложенийAstralinux 1.7.5
Настройки сбора логов ТЖ

не собирается

Настройки Tantor SE1C

Нагрузочный тест

В качестве теста взят готовый нагрузочный тест ERP от фирмы 1С. Мы взяли сценарий "ЕРП.  5 000 пользователей" и уменьшили в нем количество ВРМ с 5000 до 3225:

Длительность теста уменьшена до 4х часов, чтобы повысить интенсивность нагрузки на СУБД:

Результаты тестов

Варианты тестаLink to Варианты теста

Temp on Disk - временные таблицы через параметр temp_tablespaces вынесены на диск sdc.

Temp in RAM - временные таблицы через параметр temp_tablespaces вынесены в RAM. Размер RAM диска:

tmpfs /mnt/dbtemp/PG_17_999999999 tmpfs rw,nodev,nosuid,noatime,nodiratime,size=180G 0 0
CODE

Графики нагрузки на оборудованиеLink to Графики нагрузки на оборудование

Процессор и ОЗУLink to Процессор и ОЗУ

Утилизация дисковLink to Утилизация дисков

Время отклика и очереди к дискамLink to Время отклика и очереди к дискам

Полученные результатыLink to Полученные результаты

Вариант
APDEX
Среднее время
Temp on Disk0,8008,538
Temp in RAM0,8617,344

За счет снижения нагрузки на дисковую систему мы видим прирост производительности по среднему времени на 15%.