Вычисление размера кэша

Вычисление размера кэша

Когда Firebird читает страницу базы данных с диска, он сохраняет эту страницу в кэше. Обычно размер кэша по умолчанию является достаточным. Если ваше приложение использует соединения из пяти и более таблиц, Firebird Суперсервер может автоматически увеличить размер кэша, если текущего размера недостаточно. Если ваше приложение хорошо локализовано (т. е. постоянно использует одну и ту же небольшую часть базы данных), вы можете увеличить размер кэша так, что серверу никогда не понадобится удалять какую-либо страницу из кэша для помещения туда другой.

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

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

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

Может случиться, что слишком много буферов кэша будет выделено из имеющейся RAM. При наличии большого количества одновременно выполняющихся баз данных запрос может затребовать больше RAM, чем доступно в системе. Кэш будет перекачиваться вперед и назад между RAM и диском, уничтожая преимущества кэширования. Другие приложения (включая сервер) будут испытывать недостаток в памяти, если кэш будет слишком велик.

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

Оценка требований к размеру

Оценка размера кэша не является простой или точной наукой, особенно если у вас множество баз данных, выполняющихся одновременно. Использование сервером кэша определяется базой данных с наибольшим размером страниц. Классический сервер выделяет кэш для каждого соединения, в то время как Суперсервер объединяет кэш для всех соединений одной базы данных. Как отправная точка, это будет полезным для работы с числами и нужно для базы данных с наибольшим размером страницы. Реальные условия использования определят, где требуются корректировки.

Нет необходимости иметь кэш, вмещающий всю базу данных. Найдите коэффициент уменьшения для каждой базы данных, оценивая ту часть, к которой, скорее всего, будет доступ в процессе обычного использования. Совет по оценке простой - не существует "правила". Пусть, когда мы говорим о "DbCachePage", мы имеем в виду размер кэша, но не обязательно при условии установок сервера по умолчанию для новых и неконфигурированных баз данных.

Коэффициент уменьшения r должен иметь значение между 0 и 1.

Размер базы данных в страницах может быть установлен следующим образом:

* для однофайловой базы данных возьмите максимально возможный в файловой системе размер файла минус 1 байт и разделите на размер страницы. Для операционных систем, поддерживающих очень большие файлы, используйте фактический размер файла базы данных вместо максимального размера файла;

* для многофайловой базы данных возьмите значение STARTING AT первого вторичного файла и прибавьте значения LENGTH всех вторичных файлов.

Пусть DbCachePage равен количеству страниц кэша, требуемых для этой базы данных.

Для каждой базы данных вычислите:

DbCachePages = r * размер

Вычислите и запишите это число для каждой базы данных.

! ! !

СОВЕТ. Храните эти записи в другой документации по базе данных для использования, при необходимости, в настройке кэша индивидуальной базы данных.

. ! .

Вычисление потребностей в RAM

Для вычисления требуемого объема RAM для кэша базы данных на вашем сервере возьмите значение PAGE SIZE для каждой базы данных и умножьте на значение DefaultDbCachePages. Просуммированные результаты для всех баз данных дадут приблизительные требования к минимальному объему RAM для кэширования баз данных.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

3.1. Expires, Cache-Control и сброс кэша

Из книги автора

3.1. Expires, Cache-Control и сброс кэша Кэширование играет одну из основных ролей в быстродействии сайтов и сравнительно просто настраивается на стороне сервера. Веб-разработчики часто сталкиваются с кэшированием, ибо браузеры и проксирующие серверы, пытаясь ускорить работу


Форсированный сброс кэша

Из книги автора

Форсированный сброс кэша Если мы устанавливаем время кэширования на несколько лет (фактически на бесконечность), то нам нужно каким-то образом сообщить клиентскому браузеру, что исходный ресурс-то у нас поменялся: иначе браузер его никогда повторно не запросит. Что для


Внутренняя структура буферного кэша

Из книги автора

Внутренняя структура буферного кэша Буферный кэш состоит из буферов данных, размер которых достаточен для размещения одного дискового блока. С каждым блоком данных связан заголовок буфера, представленный структурой buf, с помощью которого ядро производит управление


(3.24) Почему у Вас нет совета по оптимизации размера L2 кэша?

Из книги автора

(3.24) Почему у Вас нет совета по оптимизации размера L2 кэша? Довольно давно по сети ходит совет по оптимизации L2 кэша. Для этого советуют по адресу HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Manager добавить ключ SecondLevel DataCache, и присвоить ему значение равное количеству L2 кэша процессора.


9.3.3. Настройка кэша

Из книги автора

9.3.3. Настройка кэша От того, как вы настроите кэш, будет зависеть удобство работы через прокси- сервер, поэтому я постараюсь показать все директивы, которые относятся к этому разделу, и подробно рассмотреть каждую из них:? cache_dir тип директория размер L1 L2 опции — определяет


9.3.5. Разделение кэша

Из книги автора

9.3.5. Разделение кэша Чтобы ваш сервер мог обмениваться запросами с другими squid-серверами, разделяя таким образом содержимое кэша, вы должны настроить соответствующий протокол.Дня этого есть следующие директивы:? icp_port n — номер порта, который будет использоваться для


Как посетить сайт, чтобы об этом никто не знал (чистка кэша, журнала, Cookies)

Из книги автора

Как посетить сайт, чтобы об этом никто не знал (чистка кэша, журнала, Cookies) Локально следы ваших посещений фиксируются интернет-обозревателем и записываются в журнал. Помимо журнальных записей, историю можно воспроизвести, просмотрев содержание папки Temporary Internet Files и Cookies.


Размер кэша второго уровня

Из книги автора

Размер кэша второго уровня Существует возможность указания размера кэша второго уровня процессора, который установлен в системе. Для этого применяется параметр DWORD-типа SecondLevelDataCache. Если его значение равно 0, то размер кэша будет определяться HAL автоматически (если это


Пример: вычисление размера буфера

Из книги автора

Пример: вычисление размера буфера В предыдущем примере мы выделяли буфер размера BUFFSIZE (определенного в файле unpiрс.h в листинге В.1), и этого было достаточно. К сожалению, не существует простого способа вычислить объем памяти, нужный XDR для кодирования конкретных данных.


Установка размера кэша на уровне базы данных

Из книги автора

Установка размера кэша на уровне базы данных Существует несколько способов конфигурирования размера кэша для конкретной базы данных. Изменения не действуют до тех пор, пока не будет установлено новое соединение с Суперсервером Firebird или не будет соединен новый клиент с


Проверка размера кэша

Из книги автора

Проверка размера кэша Для проверки величины используемого кэша базы данных выполните следующие команды в isql:ISQL> CONNECT имя-базы-данных;ISQL> SET STATS ON;ISQL> COMMIT;Current memory = 415768Delta memory = 2048Max memory = 419840Elapsed time = 0.03 secBuffers = 2048Reads = 0Writes 2Fetches = 2ISQL> QUIT;После SET STATS ON пустая команда COMMIT


Установка размера кэша по умолчанию

Из книги автора

Установка размера кэша по умолчанию Использование gfix является предпочтительным способом установки размера кэша по умолчанию для базы данных. Важно помнить некоторые моменты.* Если вы увеличиваете размер страницы, размер кэша соответственно увеличится. Вы должны


2.3.9. Вычисление размера БД

Из книги автора

2.3.9. Вычисление размера БД ERwin позволяет рассчитать приблизительный размер БД в целом, а также таблиц, индексов и других объектов через определенный период времени после начала эксплуатации ИС. Для расчета размеров физических объектов служит диалог Volumetrics Editor (рис. 2.99),


ГЛABA 11  Диспетчер кэша

Из книги автора

ГЛABA 11  Диспетчер кэша Диспетчер кэша (cache manager) — это набор функций режима ядра и системных потоков, во взаимодействии с диспетчером памяти обеспечивающих кэширование данных для всех драйверов файловых систем Windows (как локальных, так и сетевых). B этой главе мы поясним, как