powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DATABASE_CACHE_PAGES
13 сообщений из 13, страница 1 из 1
DATABASE_CACHE_PAGES
    #32554298
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: OS - Win2k, YA 1.0|FB 1.5 FR.

Есть такой параметр сервера как DATABASE_CACHE_PAGES. Вычисляется примерно так:
Код: plaintext
DATABASE_CACHE_PAGES=количество страниц таблицы + кол-во страниц используемого индекса
Если в базе много таблиц, то по результатом статистики базы(gstat) нужно сложить страницы всех таблиц и их индексы либо данные таблицы с наибольшим количеством страниц и соответсвенно ее индексов.
Оптимальное значение сего параметра?
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554343
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты неправильно понял.
Он так не вычисляется .
Он используется для кеширования страниц данных и индексных страниц.
Вычисляется обычно методом борьбы с отсутствием достаточного количества памяти. В идеале, конечно, было бы здорово засандалить всю базу в кеш. Но у-вы, не всегда это возможно. Кроме того, имеет значение, какая архитектура сервера используется - CS, или SS. Для CS это количество памяти будет отжирать каждый процесс, порождаемый коннектом. Посему, сильно задирать его не стОт. Для SS же, кеш общий для всех коннектов, т.к. в этом случае процесс один (многопоточный).
Резюмирую. Выбирай исходя из того, сколь памяти (RAM) тебе не жалко под это отдать, каковы размеры базы, к каким таблицам обращаются наиболее частые и критичные по времени запросы.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554361
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Оптимальное значение сего параметра зависит от типа сервера CS, SS, объема свободной памяти, количества коннектов, данных в базе, сложности запросов к ней и т.д. Так что врядли кто-нибудь даст точный ответ. Попробуй сам определить методом дихотомии.


Удачи.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554557
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все понятно, будем теперь методом дихотомии (с) лентяй
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554612
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыли добавить что увеличением размера кэша в классика легко получить вместо прироста обратный эффект.

И дело не в вылете хозяйства БД в своп.
А в механизме выгрузки страниц из кэша конкурирующими процессами классика.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554648
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ась???
У классика? Конкуренты выгружают кеш чужих процессов ?!
Сам придумал?
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554720
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ляпнул ;) сам прочитал обалдел :))))

Чо цеплятся то.

Когда кэш слишком большой у классика то в нем могут и будут находится страницы БД которые будут нужны другому процессу и lock_manager будет просить выгрузить их на диск.

Процесс записи может быть долгим особенно када их 10000. :)

Во всяком случае после 1024 страницы на классике я в своей задаче получил обратный эффект.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554792
S.G..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что скажут уважаемые гуру по поводу такого метода (не знаю как его назвать) - оставить все по дефолту и ничего не трогать.

Я лично пользуюсь и пока доволен ;)
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32554847
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аккуратно подправив количество страниц под кэш и объем памяти для сортировки можно весьма неплохо увеличить производительность за счет снижения IO.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32558190
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясните выделенные красным цветом слова
Igor ElyasАкуратно подправив количество страниц под кэш и объем памяти для сортировки можно весьма неплохо увеличить производительность за счет снижения IO.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32558377
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без претензий на абсолютную истину ;) Возможно это очередное заблуждение )

Настройка сильно разнится для супера и классика.
К тому же в каждом приложении надо экспериментировать.

В любом случае БД не должна вылетать в swap.
Иначе будет хуже.

Классик берет на каждое подключения память. Супер один раз.

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

1.SortMemUpperLimit - для классика 8Мб для супера 64Мб - эта память используется в любом запросе с планом SORT. Чем больше памяти тем лучше.

2.SortMemBlockSize - по умолчанию 1Мб имеет смысл увеличивать
только для супера при запросах с большими объемами сортировки. Я еще не выяснил четко влияние этого параметра. Но его экспериментальное увеличение до 2х Мб при 128 Мб на сортировку дало увеличение 5-10%.

3.DefaultDbCachePages (в страницах)- для супера тем больше тем лучше, при размерах более 10000 - может получится наоборот - осторожнее (но это редко). Для классика все зависит от приложения до 256 увеличение потом надо аккуратно увеличивать параметры и пользователей спрашивать про изменение производительности.

Примерный расчет :
страница БД 8Кб

Супер : 16 Мб на всякие нужды (где то 30 подключений, особого роста не объема от увеличени количества подключений не заметно)
DefaultDbCachePages = 8192*8кб = 64 Мб + 64 Мб для сортировки итого :
144 Мб памяти под сервер и это не более 2/3 памяти свободной после ОС.
Если еще что то крутится то вычитай эту память из доступной.

Классик :
Поключений: 30
на каждое подключение :
3 Мб на всякие нужды.
DefaultDbCachePages = 256*8кб = 2 Мб

Под БД (3+2) * 30 = 150 Мб
Под сортировку : 8 *30 = 240 Mb этот размер можно смело уменьшать более чем в 4 раза (но осторожно), итого 60 Мб

Итог: для комфортной работы нужно 210 Мб свободной RAM (2/3 доступной ОС)


Остальные все тюнинги это ОС зависимые.

И еще раз при таких экспериментах надо спрашивать пользователей о производительности сервера.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32560258
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Elyas1.SortMemUpperLimit - для классика 8Мб для супера 64Мб - эта память используется в любом запросе с планом SORT. Чем больше памяти тем лучше.

1) Для линухового классика дефолт - 0, т.е. сортировка на диске. Опыты показали, что линуховый файловый кеш для темповых файлов работает почти на уровне серверного буфера сортировки.

2) Не только SORT, но и MERGE.

Igor Elyas2.SortMemBlockSize - по умолчанию 1Мб имеет смысл увеличивать
только для супера при запросах с большими объемами сортировки. Я еще не выяснил четко влияние этого параметра. Но его экспериментальное увеличение до 2х Мб при 128 Мб на сортировку дало увеличение 5-10%.

У меня процент увеличения был еще меньше. Этот параметр я ввел исключительно для максимально полного контроля над происходящим в сервере. Возможно, в будущем его уберем, коли он значительного влияния не оказывает.
...
Рейтинг: 0 / 0
DATABASE_CACHE_PAGES
    #32560385
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 dimitr

Зенкс за комментарии.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DATABASE_CACHE_PAGES
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]