Параметры старта Before-Imaging
В СУБД OpenEdge всегда включён механизм Before-Imaging в работающей базе данных, что гарантирует её восстановление в случае системных сбоев. Ранее вы узнали, как рассчитать количество и размеры BI-экстентов для достижения хорошей производительности. В дополнение к этому администратор может использовать параметры старта базы данных для улучшения производительности путём минимизации операций ввода-вывода BI.
Операции ввода-вывода BI, как правило, являются первой и наиболее частой причиной узких мест ввода-вывода (I/O) потому, что:
- СУБД всегда записывает изменения в BI-файлы перед их записью в AI-файлы и затем в файлы прикладных данных;
- чтобы гарантировать возможность восстановления базы данных в случае сбоя, СУБД выполняет ввод-вывод BI на диск синхронно в небуферизованном режиме, т. е. ожидает завершения каждой операции ввода-вывода. Этот вид ввода-вывода наиболее надёжный, но занимает больше времени, чем простая запись данных на диск.
Таким образом, если ввод-вывод BI становится узким местом, задерживая запись BI-заметок в BI-файлы, то вся другая активность в базе данных тоже будет задерживаться, что оказывает существенное влияние на производительность.
Для устранения этой проблемы применяется параметр старта базы данных BI Buffers (-bibufs).
СУБД пишет BI-заметки, описывающие транзакции базы данных, в BI-буферы в памяти. Когда BI-буферы заполняются, СУБД записывает их содержимое на диск. Поэтому, чем больше будет доступно пустых BI-буферов, тем реже СУБД необходимо записывать BI-данные на диск и тем лучше будет производительность базы данных. По умолчанию используется 20 BI-буферов.
Для улучшения производительности для начала установите значение параметра BI Buffers (-bibufs) равным 30.
Мониторинг использования BI-буферов осуществляется с помощью монитора Progress (PROMON -> R&D -> 2. Activity Displays -> 5. BI Log). Если наблюдения показывают, что метрика Empty buffer waits имеет не нулевые показатели, то следует увеличить значение параметра -bibufs.
Total Per Min Per Sec Per Tx Total BI writes 137555 4583 76.38 0.00 BIW BI writes 137437 4579 76.31 0.00 Records written 22160904 738287 12304.78 0.00 Bytes written 2196997K 74949202 1249153.36 0.00 Total BI Reads 27 1 0.01 0.00 Records read 0 0 0.00 0.00 Bytes read 0 0 0.00 0.00 Clusters closed 9 0 0.00 0.00 Busy buffer waits 139 5 0.08 0.00 Empty buffer waits 31 1 0.02 0.00 Log force waits 0 0 0.00 0.00 Log force writes 0 0 0.00 0.00 Partial writes 32 1 0.02 0.00 Input buffer hits 0 0 0.00 0.00 Output buffer hits 0 0 0.00 0.00 Mod buffer hits 0 0 0.00 0.00 BO buffer hits 0 0 0.00 0.00
Синтаксис параметра старта базы данных BI Buffers:
-bibufs <кол-во буферов BI>