Предполагая, что у вас есть выделенный сервер для функций базы данных - сколько памяти вы должны зарезервировать для операционной системы?
Я понимаю, что это, вероятно, будет несколько отличаться в зависимости от конкретной ОС, конкретного программного обеспечения базы данных и так далее. Но, поскольку память так важна для производительности базы данных, я хочу, чтобы база данных имела максимально разумный уровень памяти, не приводя к истощению операционной системы хоста.
Так
- Какое хорошее правило для начала?
- на какие счетчики или показатели производительности мы должны обратить внимание, чтобы определить, зашли ли мы слишком далеко, и как ОС базы данных как-то истощается базой данных?
sql-server
windows
memory
Джефф Этвуд
источник
источник
Ответы:
Предполагая Windows и SQL Server ...
Есть две школы мысли.
Лично я в первой группе. Windows обычно просто требуется 2-4 гигабайта, иногда до 6.
источник
Предполагая Linux, если вы выключаете своп, а ядро продолжает убивать ваш процесс БД, потому что ему не хватает памяти, это хороший показатель того, что вы не хватает ОС для памяти. Отойди, пока это не перестанет происходить. Пара сотен мег обычно достаточно.
источник
Вы можете использовать опыт Amazon, работая с тысячами серверов баз данных клиентов, здесь: в Amazon Relational Database Service они устанавливают пул буферов innodb MySQL на 3/4 памяти системы, независимо от того, сколько это памяти. Добавьте до пары мегабайт на соединение для различных буферов запросов, и они, вероятно, оставят 10-20% памяти для ОС.
источник
Тебе стоит прочесть воспоминания Брента Озара . У него есть довольно стандартные ответы о том, почему вы должны искать память и почему больше памяти равнозначно лучшей производительности. Вообще говоря, 4 ГБ или 10% зарезервировано для ОС.
источник