powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / effective_cache_size для чего он нужен и как его определить?
10 сообщений из 10, страница 1 из 1
effective_cache_size для чего он нужен и как его определить?
    #38640784
d-e-larin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Может кто то объяснить или дать ссылку на доходчивое объяснение параметра effective_cache_size?
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38640827
/\/\/\/\/\/\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d-e-larin,

Помогалка здесь: http://www.postgresql.org/docs/9.2/static/runtime-config-query.html

Суть параметра: it is used only for estimation purposes
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641337
d-e-larin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл параметра вроде как начал понимать.
А вот может кто пример запроса покажет где будет заметна разница от изменения кол-ва памяти.
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641358
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d-e-larinСмысл параметра вроде как начал понимать.
А вот может кто пример запроса покажет где будет заметна разница от изменения кол-ва памяти.

кстати хороший вопрос
я быстро test case придумать не смог... cost на том что я проверял не меняется в диапазоне effective_cache_size от 1MB до 100GB
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641386
d-e-larin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот изменяю shared_buffers и скорость выполнения запросов меняется.
А при изменении effective_cache_size скорость выполнения запросов остается прежней.
Может я не так понимаю смысл данного параметра.
В статье https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641389
d-e-larin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот изменяю shared_buffers и скорость выполнения запросов меняется.
А при изменении effective_cache_size скорость выполнения запросов остается прежней.
Может я не так понимаю смысл данного параметра.
В статье https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server указывают что нужно выделять 1/2 - 3/4 от свободной памяти. А если нет разницы в производительности то не совсем понятен смысл выделять такой кусок памяти в пустоту.
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641400
daevy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d-e-larin,

не, вы неверно поняли, этот параметр не занимается выделением памяти.
это лишь подсказка планировщику что в системе есть такое кол-во кэш-памяти (типа os pagecache).
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #38641572
/\/\/\/\/\/\/\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daevy,

Причем, насколько я понял, подсказка для первого раза. А затем работает реальная накопленная статистика и фактически доступные ресурсы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
effective_cache_size для чего он нужен и как его определить?
    #40005427
unlike777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот реальнейший кейс:

таблица 7 000 000 записей

SELECT * FROM "auto_broadcast_messages" WHERE "auto_broadcast_id" = '423' ORDER BY "id" LIMIT 50

id - PK
auto_broadcast_id - index

В рассылке 423 всего 20 записей
Работает только на связке "условие" "auto_broadcast_id" = '423' плюс ORDER BY "id" плюс LIMIT 50
(Если 1ой из трех составляющей не будет, работать так же не будет)
Лимит должен быть обязательно больше числа записей в выборке, т.е. лимит 50 - число записей 20

effective_cache_size = 4GB - время выполнения 40 секунд и больше
effective_cache_size = 512MB - время выполнения 0.003 секунды (моментально)

В первом случае планировщик бегает по PK в котором 7кк записей
Во втором случае используется индекс auto_broadcast_id

Вывод: есть такое значение при котором планировщик сходит с ума и не понимает, что нужно делать, для нас это > 512MB
...
Рейтинг: 0 / 0
effective_cache_size для чего он нужен и как его определить?
    #40005506
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unlike777
Вот реальнейший кейс:

таблица 7 000 000 записей

SELECT * FROM "auto_broadcast_messages" WHERE "auto_broadcast_id" = '423' ORDER BY "id" LIMIT 50

id - PK
auto_broadcast_id - index

В рассылке 423 всего 20 записей
Работает только на связке "условие" "auto_broadcast_id" = '423' плюс ORDER BY "id" плюс LIMIT 50
(Если 1ой из трех составляющей не будет, работать так же не будет)
Лимит должен быть обязательно больше числа записей в выборке, т.е. лимит 50 - число записей 20


90% что у вас не с effective_cache_size проблема а с статистикой по таблице и кривыми планами как итогом (и лечить это через effecitve_cache_size очень странно)

покажите что показывает
Код: plsql
1.
explain analyze select * from "auto_broadcast_messages" WHERE "auto_broadcast_id" = '423';


и что показывает
Код: plsql
1.
explain analyze select count(distinct auto_broadcast_id)  from "auto_broadcast_messages"; 



тогда будет виднее что и как.

предсказания: наиболее вероятно
в первом запросе база ошибется в большую сторону при оценке количества строк на 1-2 порядка
во втором запросе база ошибется в меньшую сторону при оценке количества строк на теже 1-2 порядка.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / effective_cache_size для чего он нужен и как его определить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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