Как выбрать размер HugePage - PullRequest
       86

Как выбрать размер HugePage

0 голосов
/ 17 февраля 2020

Насколько я понимаю, нам нужна запись в таблице страниц для доступа к физической памяти в ОЗУ. Итак, если у меня есть 60 ТБ данных в базе данных Oracle и 125 ГБ ОЗУ, каков оптимальный размер и количество HugePages?

Oracle docs [ 1 ] рекомендует разрешить memlock блокировать "не менее 90 процентов текущей оперативной памяти".

Если я выделяю 1 ГБ (1048576 КБ) страницу размер записи, означает ли это, что мне нужно статически выделить 90% из 125 ГБ следующим образом:

112 000 000 KB / 1 048 576 KB ~= 106 pages

Или для записи страницы размером 2 МБ,

112 000 000 KB / (2 MB * 1024 KB / 1MB) ~= 54687 pages

Моя самая большая путаница заключается в том, что если записи таблицы страниц занимают 90% ОЗУ, то где находятся фактические данные go?

1 Ответ

0 голосов
/ 17 февраля 2020

Размер базы данных не имеет значения. Вы хотите настроить достаточно большие страницы для хранения вашей SGA (или «всех» ваших SGA, если на одном сервере запущено несколько экземпляров Oracle). Вероятно, лучший скрипт калькулятора (и тот, который я использую) - это My Oracle Support Do c ID 401749.1. Конечно, вы должны иметь платный контракт на поддержку, чтобы добраться туда. В отсутствие этого есть сценарий и описание на https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64. В обзоре я вижу, что ваш цитируемый do c также содержит скрипт для рекомендации vm.nr_hugepages = value в /etc/sysctl.conf. В общем, я бы просто с вашей цитатой сделал c, так как она у вас уже есть. Насколько ваш вопрос "откуда берутся фактические данные go?" Это идет на диске. До того момента, пока он не будет прочитан, и в этом случае он отправляется в буферы данных в памяти. Похоже, вам нужно просмотреть « Архитектура экземпляра» в Руководстве по понятиям .

...