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

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

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

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

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

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

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

таблица 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
05.10.2020, 16:38
    #40005506
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
effective_cache_size для чего он нужен и как его определить?
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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / effective_cache_size для чего он нужен и как его определить? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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