Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dvp:db:parameters [2013/04/10 22:33]
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>"​
Строка 16: Строка 15:
 Чтобы изменённые параметра вступили в действие,​ необходимо перезапустить брокер БД: ''​bq41d stop; bq41d start''​. Чтобы изменённые параметра вступили в действие,​ необходимо перезапустить брокер БД: ''​bq41d stop; bq41d start''​.
  
-== Размер буферного пула базы (параметр BQNdbbufs) ==+==== Размер буферного пула базы (параметр BQNdbbufs) ​====
 Значение параметра задается в блоках базы данных. Рекомендуемое начальное значение для основной базы – 2% от размера БД. С течением времени это значение необходимо корректировать,​ учитывая показания Progress Monitor'​а - ''​bq41d mon''​ -> 5. Activity, и наблюдать значение поля “Buffer Hits”. В момент активной работы с базой оно не должно быть меньше 95%, рекомендуется поддерживать значение на уровне 98-99%. Значение параметра задается в блоках базы данных. Рекомендуемое начальное значение для основной базы – 2% от размера БД. С течением времени это значение необходимо корректировать,​ учитывая показания Progress Monitor'​а - ''​bq41d mon''​ -> 5. Activity, и наблюдать значение поля “Buffer Hits”. В момент активной работы с базой оно не должно быть меньше 95%, рекомендуется поддерживать значение на уровне 98-99%.
-  * Если значение поля “Buffer Hits” < 95%, параметр –B необходимо увеличить.+  * Если значение поля “Buffer Hits” < 98%, параметр –B необходимо увеличить.
   * Если значение поля “Buffer Hits” >= 99%, параметр –B увеличивать бессмысленно.   * Если значение поля “Buffer Hits” >= 99%, параметр –B увеличивать бессмысленно.
 Слишком большое значение параметра ведет к непроизводительному расходу памяти и может быть причиной падения производительности. Слишком большое значение параметра ведет к непроизводительному расходу памяти и может быть причиной падения производительности.
  
-== Размер таблицы блокировок (параметр BQNlocks) ==+Чтобы изменить размер буферного пула для следующего старта брокера в запускающем скрипте ''​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.” Рекомендуемое значение параметра равно удвоенному количеству лицевых счетов. Значение параметра необходимо увеличить при получении сообщения Progress “SYSTEM ERROR: Record lock table too small. Increase -L parameter.”
  
 Слишком большое значение параметра ведет к непроизводительному расходу памяти и снижению производительности. Слишком большое значение параметра ведет к непроизводительному расходу памяти и снижению производительности.
  
-== Количество попыток спин-блокировки (-spin) ==+Чтобы изменить размер таблицы блокировок для следующего старта брокера в запускающем скрипте ''​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” должны уменьшаться. Этот параметр доступен в лицензии не ниже Enterprise, в лицензии Workgroup он заблокирован в значение 1. Рекомендуемое начальное значение - 5000. В дальнейшем,​ значение параметра необходимо периодически корректировать. Для этого наблюдайте значения поля “sema” (“sema/​s”) в выводе команды sar –m и значение поля “%sys” в выводе команды sar –u за 1-2 типовых рабочих дня. При наличии в поле “sema” значений,​ измеряющихся сотнями и тысячами,​ попробуйте увеличивать (по 1000-2000) значение параметра -spin, наблюдая,​ чтобы это не приводило к заметному увеличению среднего значения поля “%sys”. При этом пиковые значения поля “sema” должны уменьшаться.
  
 Изменять значение параметра рекомендуется в файле ''​bisquit.pf''​ одновременно для всех брокеров на данном сервере. Изменять значение параметра рекомендуется в файле ''​bisquit.pf''​ одновременно для всех брокеров на данном сервере.
  
-== Количество наборов семафоров(-semsets) ==+==== Количество наборов семафоров(-semsets) ​====
 Этот параметр доступен в лицензии не ниже Enterprise DB. По умолчанию значение параметра равно 3. При большом (сотни) количестве одновременно работающих пользователей необходимо его увеличить для начала до значения,​ равного количеству одновременно работающих пользователей,​ поделенное на 50. При этом должно уменьшаться значение поля “sema” (“sema/​s”) вывода команды sar –m. Этот параметр доступен в лицензии не ниже Enterprise DB. По умолчанию значение параметра равно 3. При большом (сотни) количестве одновременно работающих пользователей необходимо его увеличить для начала до значения,​ равного количеству одновременно работающих пользователей,​ поделенное на 50. При этом должно уменьшаться значение поля “sema” (“sema/​s”) вывода команды sar –m.
  
 Изменить значение параметра можно, дописав через пробел параметр со значением в список параметров,​ определенных в переменной BQParams запускающего скрипта. Изменить значение параметра можно, дописав через пробел параметр со значением в список параметров,​ определенных в переменной BQParams запускающего скрипта.
  
-== Использование асинхронной записи в файлы базы данных == +==== Использование асинхронной записи в файлы базы данных ​==== 
-= Запуск Async Page Writer =+=== Запуск Async Page Writer ​===
 Возможность асинхронной записи в файлы базы данных доступна в лицензии не ниже Enterprise. Для включения асинхронной записи необходимо запустить как минимум один специальный агент (APW). Процесс APW можно запустить при старте брокера. Для этого в запускающем скрипте bq41d  установите значения переменных:​ Возможность асинхронной записи в файлы базы данных доступна в лицензии не ниже Enterprise. Для включения асинхронной записи необходимо запустить как минимум один специальный агент (APW). Процесс APW можно запустить при старте брокера. Для этого в запускающем скрипте bq41d  установите значения переменных:​
   RunAPW="​yes"​ #​ Запускать Async Page Writer ? (yes/no)   RunAPW="​yes"​ #​ Запускать Async Page Writer ? (yes/no)
Строка 48: Строка 68:
 Если значение поля “Writes by APW” значительно меньше,​ следует увеличить количество APW либо при работающем брокере (утилитой ''​bq41d exec proapw $BQ/​db/​bisquit''​),​ либо с перезапуском брокера,​ изменив значение переменной BQNAPW в запускающем скрипте. Если значение поля “Writes by APW” значительно меньше,​ следует увеличить количество APW либо при работающем брокере (утилитой ''​bq41d exec proapw $BQ/​db/​bisquit''​),​ либо с перезапуском брокера,​ изменив значение переменной BQNAPW в запускающем скрипте.
  
-= Запуск Before Image Writer =+=== Запуск Before Image Writer ​===
 Для асинхронной записи в журнал before-image также используется специальный агент (BIW). В отличие от APW, BIW может быть запущен только один. Чтобы запустить BIW при старте брокера в запускающем скрипте ''​bq41d''​ установите значение переменной:​ Для асинхронной записи в журнал before-image также используется специальный агент (BIW). В отличие от APW, BIW может быть запущен только один. Чтобы запустить BIW при старте брокера в запускающем скрипте ''​bq41d''​ установите значение переменной:​
   RunBIW="​yes"​ # Запускать Async Before-Image Writer ? (yes/no)   RunBIW="​yes"​ # Запускать Async Before-Image Writer ? (yes/no)
 и перезапустите брокер БД. и перезапустите брокер БД.
  
-= Запуск After Image Writer =+=== Запуск After Image Writer ​===
 Для асинхронной записи в журнал after-image также используется специальный агент (AIW), который тоже может быть запущен только один. Чтобы запустить AIW при старте брокера в запускающем скрипте ''​bq41d''​ установите значение переменной:​ Для асинхронной записи в журнал after-image также используется специальный агент (AIW), который тоже может быть запущен только один. Чтобы запустить AIW при старте брокера в запускающем скрипте ''​bq41d''​ установите значение переменной:​
   RunAIW="​yes"​ #​ Запускать After-Image Writer ? (yes/no)   RunAIW="​yes"​ #​ Запускать After-Image Writer ? (yes/no)
 и перезапустите брокер БД. и перезапустите брокер БД.
  
-=== Оптимизация размера блока и кластера журнала before-image ===+===== Оптимизация размера блока и кластера журнала before-image ​=====
 База данных выполняет непрерывный процесс синхронизации содержимого разделяемой памяти с состоянием базы на диске, в рамках которого в фоновом режиме измененные блоки данных пишутся на диск. Новый цикл синхронизации начинается с открытием очередного кластера журнала before-image. Увеличение размера кластера журнала before-image приводит к увеличению интервала между контрольными точками,​ что дает процессам записи APWs необходимое время для их работы. База данных выполняет непрерывный процесс синхронизации содержимого разделяемой памяти с состоянием базы на диске, в рамках которого в фоновом режиме измененные блоки данных пишутся на диск. Новый цикл синхронизации начинается с открытием очередного кластера журнала before-image. Увеличение размера кластера журнала before-image приводит к увеличению интервала между контрольными точками,​ что дает процессам записи APWs необходимое время для их работы.
  
Строка 82: Строка 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
Строка 88: Строка 108:
 Возможно одновременное изменение размеров блока и кластера журнала before-image:​ Возможно одновременное изменение размеров блока и кластера журнала before-image:​
   bq41d stop   bq41d stop
-  bq41d trunc –biblocksize ​-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
Строка 95: Строка 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 процессорных ядра могут быть выделены под процесс перестройки индексов
Строка 115: Строка 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 ​–threadnum ​-datascanthreads ​-B 1024 –TF 50 –TMB 64 –TB 64 –TM 32 -rusage -silent+  bq41d idxbuild all -mergethreads ​–threadnum ​-datascanthreads ​-B 1024 –TF 50 –TB 64 –TM 32 -rusage -silent 
 +   
 +{{tag>​progress prodb performance}}