Это старая версия документа.


Настройка производительности БД

Всё нижеследующее относится к OpenEdge 10.1С/10.2B, в которой большинство остальных параметров по умолчанию выставлены в оптимальное значение.

Параметры БД в скрипте bq41d

RunAPW="yes"			# Запускать Async Page Writer ? (yes/no)
BQNAPW="2"			# Сколько именно AP Writer'ов (n_disks+1) ?
RunBIW="yes"			# Запускать Before-Image Writer ? (yes/no)
RunAIW="yes"			# Запускать After-Image Writer ? (yes/no)
BQNdbbufs="131072"		# Буфер кэша БД в блоках, рекомендуется = <размер БД> * 1-2%, в примере = 1 ГБ
BQNlocks="200000"		# Общее число блокировок в БД, рекомендуется = <кол-во лицевых счетов> * 2
BQParams="-semsets <BQNusers/20-50>"	

Оптимизация размера блока и кластера BI-файла

База данных выполняет непрерывный процесс синхронизации содержимого разделяемой памяти с состоянием базы на диске, в рамках которого в фоновом режиме измененные блоки данных пишутся на диск. Новый цикл синхронизации начинается с открытием очередного кластера журнала before-image. Увеличение размера кластера журнала before-image приводит к увеличению интервала между контрольными точками, что дает процессам записи APWs необходимое время для их работы.

Узнать текущий размер блока и кластера файла before-image можно, запустив утилиту bq41d mon → R&D → 1. Status Displays → 9. BI Log. Например:

Before-image block size:           8192 bytes
Before-image cluster size:         512 kb (524288 bytes)

Для проверки эффективности обработки транзакций необходимо выяснить частоту выполнения контрольных точек используется экран Checkpoints утилиты bq41d mon → R&D → 3. Other → 4. Checkpoints. Например:

Ckpt                                  ------ Database Writes ------
No. Time        Len   Freq   Dirty   CPT Q    Scan   APW Q Flushes   Duration  Sync Time

32 18:13:47   8693      0     713       0       0       0       0       0.02       0.00

31 17:11:42   3725   3725     729       0       0       0       0       0.06       0.01
30 16:47:51   1431   1431     266       0       0       0      12       0.02       0.01
...

В идеальном состоянии интервал между проверками должен составлять около минуты или более, а число буферов, сброшенных на диск в контрольной точке (колонка Flushes), должно быть равным или близко к нулю. Если они короче минуты, то следует увеличить размер кластера. Однако его не следует делать слишком большим, оно не должно превышать 131072.

Изменить размер блока файла before-image можно следующим образом (размер блока указывается в байтах):

bq41d stop
bq41d trunc –biblocksize 8

Изменить размер кластера файла before-image можно следующим образом (размер кластера указывается в килобайтах) :

bq41d stop
bq41d trunc -bi 16384

Возможно одновременное изменение размеров блока и кластера файла before-image:

bq41d stop
bq41d trunc –biblocksize 8 -bi 16384

Перестройка индексов (начиная с 10.2B06)

Предполагается, что:

  • 50% оперативной памяти и 16 процессорных ядер могут быть выделены под процесс перестройки индексов
  • индексы располагаются в отдельных областях БД (подробнее - Рекомендуемая структура БД QBIS.Bank)
  • в каталоге, указанном в параметре -T в файле bisquit.pf, имеется достаточное кол-во свободного пространства для размещения временных файлов сортировки
bq41d stop
bq41d trunc
bq41d backup
bq41d truncate area "op-i"
bq41d truncate area "history-i"
bq41d truncate area "signs-i"
bq41d truncate area "olap-i"
bq41d truncate area "other-i"
bq41d truncate area "perm-i"
bq41d truncate area "acct-i"
bq41d truncate area "pos-i"
bq41d truncate area "msg-i"
bq41d truncate area "text-i"
bq41d truncate area "mart-i"
bq41d idxbuild all -mergethreads 2 –threadnum 2 -datascanthreads 16 -B 1024 –TF 50 –TMB 64 –TB 64 –TM 32 -rusage -silent