Требования к параметрам ядра (Linux)

Менеджер баз данных использует формулу для автоматической настройки параметров ядра, устраняя тем самым необходимость настройки этих параметров вручную.

Параметры ядра для связи между процессами

Если при запуске экземпляра параметр ядра связи между процессами (interprocess communication, IPC) меньше обязательного минимального значения, менеджер баз данных принудительно увеличивает его до этого обязательного минимального значения. При перезагрузке системы такие измененные при запуске экземпляра Db2 значения.
Внимание: Не выполняйте сохранение во врем перезапуска системы. После перезапуска параметры ядра могут оказаться меньше принудительно устанавливаемых значений, пока не запущен экземпляр Db2. Корректируя значения параметров ядра, база данных предупреждает ошибки из-за нехватки ресурсов.
Табл. 1. Принудительно устанавливаемые минимальные значения параметров ядра для связи между процессами в Linux
Параметр ядра IPC Принудительно устанавливаемое минимальное значение
kernel.shmmni (SHMMNI) 256 * <размер оперативной памяти в Гбайтах>
kernel.shmmax (SHMMAX) <размер оперативной памяти в байтах>1
kernel.shmall (SHMALL) 2 * <размер оперативной памяти в страницах с системным размером страниц по умолчанию>2
kernel.sem (SEMMNI) 256 * <размер оперативной памяти в Гбайтах>
kernel.sem (SEMMSL) 250
kernel.sem (SEMMNS) 256 000
kernel.sem (SEMOPM) 32
kernel.msgmni (MSGMNI) 1 024 * <размер оперативной памяти в Гбайтах>
kernel.msgmax (MSGMAX) 65 536
kernel.msgmnb (MSGMNB) 65 536 3
  1. Для 32-битной операционной системы Linux принудительно устанавливаемый параметр для SHMMAX ограничен значением 4 294 967 295 байт.
  2. SHMALL ограничивает общий объем виртуальной совместной памяти, которая может быть выделена системе. Каждый сервер данных Db2 эффективно управляет тем объемом системной памяти, который он использует; ее называют также переданная память (committed memory). Сервер данных Db2 выделяет больше виртуальной памяти, чем ему передано, чтобы поддерживать предварительное выделение памяти и динамическое управление памятью. Предварительное выделение памяти повышает производительность. Динамическое управление памятью - это процесс увеличения и сокращения действительного использования памяти в отдельных областях виртуальной памяти совместного использования. Для поддержки предварительного выделения памяти и динамического управления памятью серверам данных часто необходимо выделять в системе больший объем виртуальной памяти совместного использования, чем физический объем оперативной памяти. Но для ядра это значение задается как число страниц.
  3. Производительность нагрузки может увеличиться в случае большего предельного размера очереди сообщений, который задается в байтах параметром MSGMNB. Использование памяти очередью сообщений можно просмотреть, введя команду ipcs -q. Если очереди сообщений уже достигли предельного размера или близки к нему при операциях загрузки, рассмотрите возможность увеличения предельного размера очереди сообщений.

Другие рекомендованные значения для параметров ядра

Другие рекомендованные значения для параметров ядра перечислены в следующей таблице.
Табл. 2. Конфигурирование других параметров ядра для Linux
Рекомендуемые значения параметров ядра Конфигурирование параметров ядра для сервера данных Db2
vm.swappiness=5 Этот параметр определяет, насколько ядро допускает подкачку памяти прикладных программ сверх пределов физической оперативной памяти. Значение по умолчанию - vm.swappiness=60. Рекомендуемое значение параметра ядра (vm.swappiness=5) дает предпочтительное сохранение содержимого памяти прикладных программ в оперативной памяти вместо назначения большего объема памяти для кэширования файлов.
vm.overcommit_memory=0 Этот параметр влияет на объем разрешенного ядром выделения виртуальной памяти. Значение по умолчанию - vm.overcommit_memory=0. Этот параметр означает, что выделяемая виртуальная память не ограничивается. Наличие неограниченной виртуальной памяти важно для серверов данных Db2, которые удерживают дополнительную неиспользуемую виртуальную память для динамического управления памятью. Выделенная память без ссылок не поддерживается оперативной памятью или пространством подкачки в системах Linux. Избегайте назначения параметра vm.overcommit_memory=2, поскольку такой параметр ограничивает общий размер доступной для выделения виртуальной памяти, что может привести к непредсказуемым ошибкам.