Это старая версия документа.
Настройка производительности БД
Всё нижеследующее относится к 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