Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
dvp:db:parameters [2013/04/10 22:03] serge |
dvp:db:parameters [2017/07/25 11:07] (текущий) serge [Перестройка индексов (начиная с 10.2B06)] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
Всё нижеследующее относится к OpenEdge 10.1С/10.2B, в которой большинство остальных параметров по умолчанию выставлены в оптимальное значение. Выбор средств оптимизации работы брокера зависит от того, какая лицензия на OpedEdge DB используется. Многие действенные средства оптимизации недоступны в лицензиях ниже Enterprise DB. | Всё нижеследующее относится к OpenEdge 10.1С/10.2B, в которой большинство остальных параметров по умолчанию выставлены в оптимальное значение. Выбор средств оптимизации работы брокера зависит от того, какая лицензия на OpedEdge DB используется. Многие действенные средства оптимизации недоступны в лицензиях ниже Enterprise DB. | ||
- | === Рекомендуемые параметры запуска брокера Progress для оптимизации производительности === | + | ===== Рекомендуемые параметры запуска брокера Progress для оптимизации производительности ===== |
- | == Параметры БД в скрипте bq41d == | + | |
В запускающем скрипте ''bq41d'' собраны все основные параметры, влияющие на производительность данного инстанса БД: | В запускающем скрипте ''bq41d'' собраны все основные параметры, влияющие на производительность данного инстанса БД: | ||
RunAPW="yes" # Запускать Async Page Writer ? (yes/no) | RunAPW="yes" # Запускать Async Page Writer ? (yes/no) | ||
Строка 10: | Строка 9: | ||
RunBIW="yes" # Запускать Before-Image Writer ? (yes/no) | RunBIW="yes" # Запускать Before-Image Writer ? (yes/no) | ||
RunAIW="yes" # Запускать After-Image Writer ? (yes/no) | RunAIW="yes" # Запускать After-Image Writer ? (yes/no) | ||
- | BQNdbbufs="131072" # Буфер кэша БД в блоках, рекомендуется = 2% от размера БД, в примере = 1 ГБ | + | BQNdbbufs="350000" # Буфер кэша БД в блоках, рекомендуется = 2% от размера БД, в примере ~ 2.8 ГБ для размера блока 8КБ |
BQNlocks="200000" # Общее число блокировок в БД, рекомендуется = <кол-во лицевых счетов> * 2 | BQNlocks="200000" # Общее число блокировок в БД, рекомендуется = <кол-во лицевых счетов> * 2 | ||
BQParams="-semsets <BQNusers/20-50>" | BQParams="-semsets <BQNusers/20-50>" | ||
- | Остальные параметры брокера, которые едины для всех инстансов БД на данном сервере, рекомендуется определять в файле [[dvp:client:parameters|bisquit.pf]]. | + | Остальные параметры, которые едины для всех брокеров БД на данном сервере, рекомендуется определять в файле [[dvp:client:parameters|bisquit.pf]]. |
+ | Чтобы изменённые параметра вступили в действие, необходимо перезапустить брокер БД: ''bq41d stop; bq41d start''. | ||
+ | |||
+ | ==== Размер буферного пула базы (параметр BQNdbbufs) ==== | ||
+ | Значение параметра задается в блоках базы данных. Рекомендуемое начальное значение для основной базы – 2% от размера БД. С течением времени это значение необходимо корректировать, учитывая показания Progress Monitor'а - ''bq41d mon'' -> 5. Activity, и наблюдать значение поля “Buffer Hits”. В момент активной работы с базой оно не должно быть меньше 95%, рекомендуется поддерживать значение на уровне 98-99%. | ||
+ | * Если значение поля “Buffer Hits” < 98%, параметр –B необходимо увеличить. | ||
+ | * Если значение поля “Buffer Hits” >= 99%, параметр –B увеличивать бессмысленно. | ||
+ | Слишком большое значение параметра ведет к непроизводительному расходу памяти и может быть причиной падения производительности. | ||
+ | |||
+ | Чтобы изменить размер буферного пула для следующего старта брокера в запускающем скрипте ''bq41d'' установите значение переменной: | ||
+ | BQNdbbufs="131072" # Буфер кэша БД в блоках, рекомендуется = 2% от размера БД, в примере = 1 ГБ | ||
+ | и перезапустите брокер БД. | ||
+ | |||
+ | Размер буферного пула можно изменить и при работающем брокере с помощью утилиты [[http://knowledgebase.progress.com/articles/Article/P134321|PROUTIL INCREASETO]], для этого выполните, например, команду: | ||
+ | $ bq41d increaseto -B 262144 | ||
+ | OpenEdge Release 10.2B07 as of Fri Sep 7 02:15:05 EDT 2012 | ||
+ | |||
+ | Waiting for Broker connection to newly added shared memory segments. (14269) | ||
+ | Increase Params increasing buffer pools size (-B) from 131072 to 262144. (13980) | ||
+ | |||
+ | ==== Размер таблицы блокировок (параметр BQNlocks) ==== | ||
+ | Рекомендуемое значение параметра равно удвоенному количеству лицевых счетов. Значение параметра необходимо увеличить при получении сообщения Progress “SYSTEM ERROR: Record lock table too small. Increase -L parameter.” | ||
+ | |||
+ | Слишком большое значение параметра ведет к непроизводительному расходу памяти и снижению производительности. | ||
+ | |||
+ | Чтобы изменить размер таблицы блокировок для следующего старта брокера в запускающем скрипте ''bq41d'' установите значение переменной: | ||
+ | BQNlocks="200000" # Общее число блокировок в БД, рекомендуется = <кол-во лицевых счетов> * 2 | ||
+ | и перезапустите брокер БД. | ||
+ | |||
+ | Размер таблицы блокировок можно изменить и при работающем брокере с помощью утилиты [[http://knowledgebase.progress.com/articles/Article/P134321|PROUTIL INCREASETO]], для этого выполните, например, команду: | ||
+ | $ bq41d increaseto -L 400000 | ||
+ | OpenEdge Release 10.2B07 as of Fri Sep 7 02:15:05 EDT 2012 | ||
+ | |||
+ | Increase Params increasing lock table size (-L) from 200000 to 400000 . (13979) | ||
+ | |||
+ | ==== Количество попыток спин-блокировки (-spin) ==== | ||
+ | Этот параметр доступен в лицензии не ниже Enterprise, в лицензии Workgroup он заблокирован в значение 1. Рекомендуемое начальное значение - 5000. В дальнейшем, значение параметра необходимо периодически корректировать. Для этого наблюдайте значения поля “sema” (“sema/s”) в выводе команды sar –m и значение поля “%sys” в выводе команды sar –u за 1-2 типовых рабочих дня. При наличии в поле “sema” значений, измеряющихся сотнями и тысячами, попробуйте увеличивать (по 1000-2000) значение параметра -spin, наблюдая, чтобы это не приводило к заметному увеличению среднего значения поля “%sys”. При этом пиковые значения поля “sema” должны уменьшаться. | ||
+ | |||
+ | Изменять значение параметра рекомендуется в файле ''bisquit.pf'' одновременно для всех брокеров на данном сервере. | ||
+ | |||
+ | ==== Количество наборов семафоров(-semsets) ==== | ||
+ | Этот параметр доступен в лицензии не ниже Enterprise DB. По умолчанию значение параметра равно 3. При большом (сотни) количестве одновременно работающих пользователей необходимо его увеличить для начала до значения, равного количеству одновременно работающих пользователей, поделенное на 50. При этом должно уменьшаться значение поля “sema” (“sema/s”) вывода команды sar –m. | ||
+ | |||
+ | Изменить значение параметра можно, дописав через пробел параметр со значением в список параметров, определенных в переменной BQParams запускающего скрипта. | ||
+ | |||
+ | ==== Использование асинхронной записи в файлы базы данных ==== | ||
+ | === Запуск Async Page Writer === | ||
+ | Возможность асинхронной записи в файлы базы данных доступна в лицензии не ниже Enterprise. Для включения асинхронной записи необходимо запустить как минимум один специальный агент (APW). Процесс APW можно запустить при старте брокера. Для этого в запускающем скрипте bq41d установите значения переменных: | ||
+ | RunAPW="yes" # Запускать Async Page Writer ? (yes/no) | ||
+ | BQNAPW="2" # Сколько именно процессов Async Page Writer запускать (1-2) ? | ||
+ | и перезапустите брокер БД. | ||
+ | |||
+ | В дальнейшем количество APW можно корректировать, исходя из показаний ''bq41d mon'' -> “5. Activity” и наблюдая значение поля “Writes by APW”. При активной работе с базой оно должно быть порядка 90%. | ||
+ | |||
+ | Если значение поля “Writes by APW” значительно меньше, следует увеличить количество APW либо при работающем брокере (утилитой ''bq41d exec proapw $BQ/db/bisquit''), либо с перезапуском брокера, изменив значение переменной BQNAPW в запускающем скрипте. | ||
+ | |||
+ | === Запуск Before Image Writer === | ||
+ | Для асинхронной записи в журнал before-image также используется специальный агент (BIW). В отличие от APW, BIW может быть запущен только один. Чтобы запустить BIW при старте брокера в запускающем скрипте ''bq41d'' установите значение переменной: | ||
+ | RunBIW="yes" # Запускать Async Before-Image Writer ? (yes/no) | ||
+ | и перезапустите брокер БД. | ||
+ | |||
+ | === Запуск After Image Writer === | ||
+ | Для асинхронной записи в журнал after-image также используется специальный агент (AIW), который тоже может быть запущен только один. Чтобы запустить AIW при старте брокера в запускающем скрипте ''bq41d'' установите значение переменной: | ||
+ | RunAIW="yes" # Запускать After-Image Writer ? (yes/no) | ||
+ | и перезапустите брокер БД. | ||
- | === Оптимизация размера блока и кластера журнала before-image === | + | ===== Оптимизация размера блока и кластера журнала before-image ===== |
База данных выполняет непрерывный процесс синхронизации содержимого разделяемой памяти с состоянием базы на диске, в рамках которого в фоновом режиме измененные блоки данных пишутся на диск. Новый цикл синхронизации начинается с открытием очередного кластера журнала before-image. Увеличение размера кластера журнала before-image приводит к увеличению интервала между контрольными точками, что дает процессам записи APWs необходимое время для их работы. | База данных выполняет непрерывный процесс синхронизации содержимого разделяемой памяти с состоянием базы на диске, в рамках которого в фоновом режиме измененные блоки данных пишутся на диск. Новый цикл синхронизации начинается с открытием очередного кластера журнала before-image. Увеличение размера кластера журнала before-image приводит к увеличению интервала между контрольными точками, что дает процессам записи APWs необходимое время для их работы. | ||
Строка 39: | Строка 102: | ||
Изменить размер блока журнала before-image можно следующим образом (размер блока указывается в килобайтах): | Изменить размер блока журнала before-image можно следующим образом (размер блока указывается в килобайтах): | ||
bq41d stop | bq41d stop | ||
- | bq41d trunc –biblocksize 8 | + | bq41d trunc –biblocksize 16 |
Изменить размер кластера журнала before-image можно следующим образом (размер кластера указывается в килобайтах) : | Изменить размер кластера журнала before-image можно следующим образом (размер кластера указывается в килобайтах) : | ||
bq41d stop | bq41d stop | ||
Строка 45: | Строка 108: | ||
Возможно одновременное изменение размеров блока и кластера журнала before-image: | Возможно одновременное изменение размеров блока и кластера журнала before-image: | ||
bq41d stop | bq41d stop | ||
- | bq41d trunc –biblocksize 8 -bi 16384 | + | bq41d trunc –biblocksize 16 -bi 16384 |
OpenEdge Release 10.2B07 as of Fri Sep 7 02:15:05 EDT 2012 | OpenEdge Release 10.2B07 as of Fri Sep 7 02:15:05 EDT 2012 | ||
Строка 52: | Строка 115: | ||
Before-image block size set to 8 kb (8192 bytes). (3781) | Before-image block size set to 8 kb (8192 bytes). (3781) | ||
- | === Перестройка индексов (начиная с 10.2B06) === | + | ===== Перестройка индексов (начиная с 10.2B06) ===== |
Предполагается, что: | Предполагается, что: | ||
* 50% оперативной памяти и 4 процессорных ядра могут быть выделены под процесс перестройки индексов | * 50% оперативной памяти и 4 процессорных ядра могут быть выделены под процесс перестройки индексов | ||
Строка 72: | Строка 135: | ||
bq41d truncate area "text-i" | bq41d truncate area "text-i" | ||
bq41d truncate area "mart-i" | bq41d truncate area "mart-i" | ||
- | bq41d idxbuild all -mergethreads 2 –threadnum 2 -datascanthreads 6 -B 1024 –TF 50 –TMB 64 –TB 64 –TM 32 -rusage -silent | + | bq41d idxbuild all -mergethreads 3 –threadnum 3 -datascanthreads 8 -B 1024 –TF 50 –TB 64 –TM 32 -rusage -silent |
+ | |||
+ | {{tag>progress prodb performance}} |