Руководство администратора: Производительность

8 8 8

Новые системные переменные среды (Linux)

8

В FixPak 8 добавлены системные переменные среды DB2_MAPPED_BASE и DB2DBMSADDR.

8

Использовать эти переменные реестра рекомендуется только опытным пользователям.

8
8DB2_MAPPED_BASE 8

8
8
Имя переменной
8
DB2_MAPPED_BASE 8
8
Значения
8
0 ИЛИ шестнадцатеричный виртуальный адрес в 31-битном или 32-битном диапазоне адресов ИЛИ NULL (не задана) 8
8
Операционные системы
8
Linux на x86 и Linux на zSeries (31-битная) 8
8
Описание
8
Переменную реестра DB2_MAPPED_BASE можно использовать для увеличения 8размера непрерывного пространства виртуальных адресов, доступного для процесса DB2 Universal Database (UDB), изменив положение адреса подключения совместно используемых библиотек для конкретного процесса. 8Непрерывность пространства виртуальных адресов важна для максимизации доступного 8для DB2 UDB объема совместной памяти базы данных. 8Эта переменная действует только в дистрибутивах, содержащих файл mapped_base в каталоге идентификации процесса в файловой системе процесса. 8 8

Если эта переменная не задана, DB2 UDB попытается 8использовать для положения совместно используемых библиотек виртуальный адрес 0x20000000.

8

В этой переменной реестра можно также задать любой виртуальный адрес 8(в шестнадцатеричной форме) в диапазоне 31- и 32-битного адресного пространства, 8если новый адрес помещает совместно используемые библиотеки ниже в адресном пространстве. 8

8 8
Прим.:
8
Неверный адрес может вызвать серьезные проблемы с DB2 UDB - от невозможности запустить DB2 UDB до невозможности соединиться с базой данных. 8Неверный адрес - это адрес, попадающий в область памяти, которая уже используется или предназначена для другого использования. 8Чтобы исправить такую проблему, задайте для переменной DB2_MAPPED_BASE пустое значение следующей командой: 8
db2set DB2_MAPPED_BASE=
8

В файле db2diag.log может быть записано несколько копий следующего сообщения, так как это изменение должно быть выполнено для каждого логического узла: 8

8
ADM0506I  DB2 has automatically updated the "mapped_base"
8kernel parameter from "0x40000000(hex) 1073741824(dec)" to
8the recommended value "0x20000000(hex) 536870912(dec)".
8(ADM0506I  DB2 автоматически изменила значение параметра
8ядра "mapped_base" с "0x40000000(hex) 1073741824(dec)" на
8рекомендованное значение "0x20000000(hex) 536870912(dec)".)
8

Это сообщение выводится только при успешном задании переменной реестра; 8в нем указывается адрес, на который перемещены совместно используемые библиотеки.

8
8
8
8DB2DBMSADDR 8

8
8
Имя переменной
8
DB2DBMSADDR 8
8
Значения
8
Виртуальные адреса в диапазоне от 0x09000000 до 0xB0000000 с шагом 0x10000 8
8
Операционные системы
8
Linux на x86 и Linux на zSeries (31-битная) 8
8
Описание
8
Задает адрес по умолчанию совместной памяти базы данных в шестнадцатеричном формате. 8 8 8
Прим.:
8
Неверный адрес может вызвать серьезные проблемы с DB2 UDB - от невозможности запустить DB2 UDB до невозможности соединиться с базой данных. 8Пример неверного адреса - адрес, попадающий в область памяти, которая уже используется или предназначена для другого использования. 8Чтобы исправить эту проблему, задайте для переменной DB2DBMSADDR пустое значение следующей командой: 8
db2set DB2DBMSADDR=
8

Эту переменную можно задавать вместе с DB2_MAPPED_BASE или отдельно для тонкой настройки адресного пространства процессов DB2 UDB. 8Эта переменная изменяет положение совместной памяти экземпляра с его текущего положения по виртуальному адресу 0x10000000 на заданное новое положение.

8
8
7 7 7

Новая переменная связи в реестре

7

В Версии 8.2 добавлена переменная реестра DB2TCP_CLIENT_RCVTIMEOUT.

7 77777777777777777777777
Табл. 11. Переменные связи
Имя переменной Операционные системы Значения
Описание
DB2TCP_CLIENT_RCVTIMEOUT Все 7

По умолчанию - 0 (не задано)

7

Значения: от 0 до 732767 секунд

7

Задает срок 7в секундах ожидания клиентом получения данных программой приема TCP/IP.

7

Сообщения об истечении срока не будет, если переменная реестра не задана или если задано 7значение 0. Если программа приема TCP/IP вернет данные до истечения заданного срока, 7прикладная программа продолжит работу как обычно. Если срок истечет до возврата данных, соединение будет закрыто.

7

7 7
Прим.:
7
Эта переменная реестра применима только 7к клиенту DB2 и на стороне клиента DB2. 7Она не применяется к серверу DB2.
7 7 7

Новая переменная производительности

7

В Версии 8.2 добавлена переменная производительности DB2_LARGE_PAGE_MEM.

7 77777777777777777777777
Табл. 12. Переменные производительности
Имя переменной Операционные системы Значения
Описание
DB2_LARGE_PAGE_MEM 7

AIX 5.x (только 64-битная)

7

Linux

По умолчанию - NULL 7

Используйте *, чтобы указать, что 7все соответствующие регионы памяти должны использовать память с большими страницами, или 7перечислите через запятую конкретные регионы памяти. 7Доступные регионы зависят от операционной системы. 7В 64-битной AIX 5.x можно задать следующие регионы: DB, DBMS, PRIVATE. 7В Linux можно задать следующий регион: DB.

7

Память с большими страницами поддерживается только для DB2 Universal Database (UDB) for AIX 5L (64-битное 7издание) и DB2 UDB for Linux.

7

Переменная реестра DB2_LARGE_PAGE_MEM используется 7для включения поддержки больших страниц при работе в AIX 5.x или в любой архитектуре Linux с соответствующей поддержкой ядра. 7Эта переменная реестра заменяет устаревшую переменную реестра DB2_LGPAGE_BP, которую 7можно использовать только для включения памяти с большими страницами для совместного региона памяти базы данных. 7Теперь это можно включить, задав переменную DB2_LARGE_PAGE_MEM=DB. 7Документацию, где упоминается включение больших страниц при помощи переменной реестра DB2_LGPAGE_BP, 7теперь следует читать как DB2_LARGE_PAGE_MEM=DB.

7

Использование больших страниц предназначено в первую очередь для повышения 7производительности в программах с интенсивными вычислениями. Программы, часто обращающиеся к памяти и использующие большие объемы виртуальной 7памяти, при применении больших страниц могут работать производительнее. Чтобы включить 7использование больших страниц в DB2 UDB, надо сначала сконфигурировать использование 7больших страниц в операционной системе.

7

Включение собственных больших страниц 7существенно увеличит использование памяти DB2 UDB, поскольку каждый агент DB2 UDB займет 7не менее 1 большой страницы физической памяти (16 Мбайт). 7Чтобы включить большие страницы для собственной памяти агента в 64-битной DB2 UDB for AIX (параметр DB2_LARGE_PAGE_MEM=PRIVATE), 7необходимо выполнение следующих условий, помимо конфигурирования больших 7страниц в операционной системе:

7
    7
  • Владелец экземпляра должен обладать возможностями CAP_BYPASS_RAC_VMM и 7CAP_PROPOGATE.
  • 7
  • Ядро должно поддерживать интерфейсы, которые допускают, чтобы процесс изменял 7свой размер страниц во время выполнения. .
7

В 64-битной DB2 UDB for AIX включение этой переменной уменьшает размер 7сегмента совместной памяти, сводя к минимуму требования памяти для базы данных. 7По умолчанию создается сегмент 64 Гбайт: подробности смотрите в информации о параметре 7размера совместной памяти баз данных (параметр конфигурации базы данных 7database_memory). Использование этой возможности позволяет 7избежать выделения совместной оперативной памяти сверх ожидаемой потребности.

7

При 7задании этой переменной будет ограничена возможность динамического изменения 7конфигурации, связанного с увеличением общего объема совместной памяти базы данных 7(например, увеличения размера пулов буферов).

7

В Linux есть 7дополнительное требование - доступность библиотеки libcap.so. 7Чтобы эта опция работала, необходимо установить данную библиотеку. 7Если эта опция будет 7включена, а библиотеки в системе не будет, DB2 UDB выключит большие страницы ядра и 7продолжит работать, как раньше.

7

В Linux для проверки доступности больших страниц ядра введите команду:

7
      cat /proc/meminfo
7

Если возможность доступна, должны появиться следующие три строки 7(числа будут зависеть от объема памяти, сконфигурированного на вашем компьютере):

7
      HugePages_Total:   200
7      HugePages_Free:    200
7      Hugepagesize:    16384 KB
7

Если вы не увидите этих строк, или если значение 7HugePages_Total - 0, требуется конфигурирование операционной системы или ядра.

8 8 8

Переменные компилятора SQL

8

Следующее изменение относится к теме "Переменные компилятора SQL" в Приложении A "Переменные реестра DB2 и среды" книги Руководство администратора: Производительность:

8

Если для одной или обеих переменных компилятора DB2 DB2_MINIMIZE_LISTPREFETCH 8и DB2_INLIST_TO_NLJN задано значение ON, эти переменные будут 8активны, даже если задано REOPT(ONCE).

8 8 8

Изменения в параметрах конфигурации

8

Ниже указаны изменения в документации по параметрам конфигурации:

8 8

authentication - Тип аутентификации

8
8

Параметр конфигурации менеджера баз данных Тип аутентификации (authentication) может также иметь следующие значения:

8
8 8

util_impact_lim - Правила влияния для экземпляра

8
8

Начиная с DB2 Universal Database Версии 8.2, 8значение по умолчанию параметра конфигурации менеджера баз данных Правила влияния для экземпляра (util_impact_lim) изменено со 100 на 10.

8 8

sysadm_group, sysmaint_group, sysctrl_group, sysmon_group

8
8

Все следующие параметры конфигурации менеджера баз данных могут на всех платформах содержать имена групп (длиной до 30 байтов):

8 8

Таблица в теме "Обзор параметров конфигурации менеджера баз данных" 8содержит неверные типы данных для этих параметров конфигурации менеджера баз данных. 8Правильный тип данных для всех этих параметров - char(30).

8 8

estore_seg_sz - Размер сегмента расширения памяти

8
8

Максимальный размер для параметра конфигурации базы данных Размер сегмента расширения памяти (estore_seg_size) на платформах 8на основе Windows равен 16777216.

8 8

hadr_timeout - Значение срока ожидания HADR

8
8

Правильное максимальное значение для параметра конфигурации базы данных Значение срока ожидания HADR (hadr_timeout) - 4294967295.

8 8

locklist - Максимальный объем списка блокировок

8
8

В документации сказано, что максимальное значение для параметра конфигурации 8базы данных Максимальный объем списка блокировок (locklist) для 64- и 32-битных серверов Windows, обслуживающих только локальных клиентов, равно 60000. 8Это неверное значение; правильное число - 524288.

8 8

num_db_backups - Число резервных копий базы данных

8
8

Неверно указан диапазон значений для параметра конфигурации базы данных Число резервных копий базы данных (num_db_backups). 8Правильный диапазон: 0 - 32767.

8 8 8

Файл параметров конфигурации базы данных SQLDBCONF

8

После перенастройки DB2 Universal Database (UDB) из Версии 8.1 в Версию 8.2, DB2 UDB использует новый файл параметров конфигурации базы данных с именем SQLDBCONF и размером 16 Кбайт. 8(В Версии 8.1 файл параметров конфигурации базы данных имел размер только 4 Кбайта и назывался SQLDBCON).

8 8 8

Изменение значения по умолчанию DB2_HASH_JOIN

8

В Версии 8.1 переменная реестра DB2_HASH_JOIN имела по умолчанию значение ON.

8

Используйте эту переменную хеш-объединения, настроив ее значение для оптимальной производительности.

8

Оптимальная производительность хеш-объединения обеспечивается в том 8случае, если удается избежать хеш-циклов и переполнения с записью на диск. 8Для повышения производительности хеш-объединения оцените максимальный 8объем доступной памяти для параметра sheapthres и 8настройте значение параметра sortheap. 8Увеличьте его значение в пределах ограничения, заданного параметром 8sheapthres, чтобы исключить как можно больше 8хеш-циклов и переполнений с записью на диск.

8

Дополнительную информацию смотрите в теме "Методы объединения" в книге Руководство администратора: Производительность.

7 7 7

Переменная реестра DB2NTNOCACHE устарела

7

Функции DB2NTNOCACHE доступны теперь на уровне табличного пространства путем задания 7условия NO FILE SYSTEM CACHING в операторе CREATE TABLESPACE или ALTER TABLESPACE. Использование 7этого условия описано в справочнике SQL Reference. В 7следующем выпуске переменная реестра DB2NTNOCACHE будет удалена.

7 7 7

Таблицы объяснения и организация информации объяснений

7

Таблицы объяснения могут применяться совместно несколькими 7пользователями. Но задавать таблицы объяснения можно для одного пользователя, а для 7дополнительных пользователей для указания заданных таблиц использовать алиасы с тем же 7именем. Другой вариант - задать таблицы объяснения в схеме SYSTOOLS. Функция объяснения 7использует по умолчанию схему SYSTOOLS, если не найдено других таблиц объяснения или 7алиасов под ID сеанса пользователя для динамического SQL или ID авторизации оператора для 7статического SQL. Каждый пользователь, имеющий в совместном пользовании общие таблицы объяснения, должен иметь разрешение на вставку в эти таблицы. Следует также ограничить разрешения на чтение для общих таблиц объяснения - 7обычно можно ограничить теми пользователями, которые анализируют информацию объяснения.

7 7 7

Рекомендации по сбору информации объяснения

7

Данные объяснения собираются, если эта опция указана при компиляции 7оператора SQL. 7Перед тем, как включить эту опцию, подумайте, как будет 7использоваться собранная информация.

7
7Захват информации из таблиц объяснения 7
7 7 7

Дополнительные коды возврата из API db2CfgGet, параметр collate_info

7

Параметр информации упорядочивания можно вывести только при помощи API db2CfgGet. 7Его нельзя вывести при помощи процессор командной строки или Центр управления.

7
7
Тип конфигурации
7
База данных 7
7
Тип параметра
7
Информационный 7
7
7

Этот параметр содержит 260 байт информации об упорядочении для базы данных. Первые 256 байтов задают последовательность упорядочения базы данных, где байт "n" содержит вес сортировки кода символа с десятичным представлением "n" в кодовой странице базы данных.

7

Последние 4 байта содержат внутреннюю информацию о типе последовательности упорядочения. Последние четыре байта collate_info - целое число. Это целое число зависит от 7порядка разделения на байты на данной платформе. Возможные значения:

7 7

Если вы используете эту внутреннюю информацию, то при ее передаче на 7другую платформу необходимо выполнить реверсирование байтов.

7

Последовательность упорядочения можно задать во время создания базы данных.

8 8 8

Автоматическое задание размера предварительной выборки по умолчанию и значений по умолчанию для изменения

8

Начиная с DB2 Universal Database (UDB) Версии 8.2, можно 8использовать для табличного пространства размер предварительной выборки AUTOMATIC. 8DB2 UDB автоматически изменяет размер предварительной выборки, когда в табличном пространстве изменяется число контейнеров.

8

Синтаксис переменной реестра DB2_PARALLEL_IO расширен для возможности распознавания контейнеров с различными характеристиками параллелизма ввода-вывода. При использовании расширенного синтаксиса у контейнеров для различных табличных пространств могут быть различные характеристики ввода-вывода. Характеристика параллелизма ввода-вывода каждого табличного пространства используется, 8если для табличного пространства задается автоматический размер предварительной выборки (AUTOMATIC). 8Если переменная реестра DB2_PARALLEL_IO включена, но расширенный синтаксис, 8идентифицирующий конкретные характеристики параллелизма ввода-вывода, не используется, предполагается уровень параллелизма по умолчанию. По умолчанию используется уровень параллелизма RAID 5 (6+1).

8

Информация о размере предварительной выборки, используемая оптимизатором, 8обновляется только при выполнении оператора ALTER TABLESPACE, 8который изменяет размер предварительной выборки табличного пространства или число контейнеров 8(при помощи ADD/DROP/BEGIN NEW STRIPE SET/ADD TO NEW STRIPE SET). 8Если в параметрах реестра изменяется число физических дисков на контейнер, 8для обновления информации оптимизатора надо запустить оператор 8ALTER TABLESPACE <имя_табличного_пространства> PREFETCHSIZE AUTOMATIC 8(если только обновление информации оптимизатора не было уже задано в операторе ALTER TABLESPACE).

8

Если табличное пространство перенаправляется или восстанавливается для возможности использования другого числа контейнеров, 8обновите информацию оптимизатора при помощи оператора ALTER TABLESPACE <имя_табличного_пространства> PREFETCHSIZE AUTOMATIC. 8Если в табличном пространстве есть несколько наборов полос, для вычисления размера предварительной выборки используется 8максимальное число контейнеров по нескольким наборам полос. 8Если вычисленный размер предварительной выборки превышает максимальный размер (32767 страниц), 8в качестве размера предварительной выборки используется наибольшее кратное числа контейнеров, которое меньше этого максимума.

8

В среде DB2 UDB Enterprise Server Edition, если для табличного пространства используется автоматический размер предварительной выборки (AUTOMATIC), 8размеры предварительной выборки могут отличаться в разных разделах базы данных. 8Причина в том, что в разных разделах базы данных число контейнеров, используемое при вычислении размеров предварительной выборки, может быть различным. 8При генерации плана доступа для запроса оптимизатор использует размер предварительной выборки из первого раздела в группе разделов базы данных.

[ Начало страницы |Страница назад | Страница вперед | Содержание ]