Единообразно объявленная память совместного использования

Оценить
(0 голоса)

Все основные СУБД используют память совместного использования для буферных кэшей баз данных, кэширования операторов языка SQL и решения других задач. Solaris предлагает специальную форму памяти совместного доступа, называемую fSM (Intimate Shared Memory - единообразно объявленная память совместного использования), с функциональными возможностями, дающими определенные преимущества именно для баз данных. Технология ISM была впервые реализована в Solaris 2.2.

Единообразно объявленная память совместного использования несет следующие основные преимущества:

•             Процессы, присоединяющиеся к сегменту ISM, совместно применяют структуры данных, связанные с этим сегментом памяти совместного использования, для трансляции виртуальных адресов в физические, что обеспечивает экономию памяти ядра и повышение производительности.

•             Страницы памяти блокируются, что значительно повышает производительность, сокращая размер программного кода в ядре и предотврашая выгрузку страниц из памяти на диск.

•             Начиная с Solaris 2.6, к ISM добавляется поддержка больших страниц памяти (размером до 4 Мбайт), осуществляемая через MMU (Memory Management Unit - блок управления памятью ЦП) для UltraSPARC. Это приводит к повышению производительности, причем, степень повышения производительности растет с увеличением размера памяти совместного использования. Например, поскольку страницы памяти операционной системы Solaris обычно имеют размер 8 Кбайт, то кэш базы данных размером 3.5 Гбайт потребовал бы использования 458752 указателей памяти в ядре. При использовании страниц размером 4 Мбайт, количество необходимых указателей уменьшается в 512 раз и становится равным всего 896.

•             Начиная с Solaris 2.6, для резервирования сегмента ISM не требуется область своппинга, что обеспечивает экономию дискового пространства. Подкачка не нужна, поскольку память блокируется.

Как можно видеть из приведенного рисунка, каждый процесс поддерживает свои собственные структуры данных, которые обеспечивают трансляцию адресов памяти. Рисунок 3.2 иллюстрирует трансляцию адресов для сегмента ISM.

Разделение между всеми процессами, присоединенными к одному и тому же сегменту ISM, одних и тех же структур данных приводит к экономии памяти и процессорного времени.

ISM вызывается из программы при добавлении параметра SHM_SHARE_MMU к вызову shmat.

Все основные реляционные базы данных используют преимущества ISM. Тем не менее, следует обратить внимание на то, что предпринятая попытка присоединения к сегменту ISM может потерпеть неудачу, если недоступно достаточное количество непрерывной физической памяти. Большинство продуктов СУБД зафиксирует такую неудачу в своем файле регистрации ошибок (журнале) и спокойно выполнит присоединение к сегменту обычной памяти совместного использования. Результатом может оказаться неожиданное снижение производительности.

Динамическая реконфигурация
Динамическая, единообразно объявленная память совместного использования
Менеджер, координирующий реконфигурации
Программа Ambassador
Оптимизация операционной системы Solaris для работы с базами данным

Добавить комментарий


Защитный код
Обновить