172 похожих чатов

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

запросов на холодную. Делаю сначала очистку в Ubuntu и перезагружаю postgresql. Но при выполнении запроса с explain вижу все равно shared hit меньше, но вижу. В чем может быть причина?

6 ответов

24 просмотра

> Подскажите пожалуйста, очищаю буферный кеш, Как Вы это делаете, каким способом? > чтобы померить скорость запросов на холодную. А зачем Вы это делаете, если не секрет? Вы же измеряете производительность СУБД ровно в тех условиях, в которых она ни в коем случае не должна работать. > В чем может быть причина? Либо в том, что не очищаете, либо в том, что данный запрос просматривает некоторые блоки многократно (это довольно часто бывает). Соответственно, в первый раз это shared read, в последующие — shared hit.

Sergey-Kolomiychuk Автор вопроса
Yaroslav Schekin
> Подскажите пожалуйста, очищаю буферный кеш, Ка...

1. echo 3 > /proc/sys/vm/drop_caches и перезагружаю постгрес 2. Ранее была проблема с получением данных, там был биг дата так сказать. В старой структуре запроса на холодную он делался 1 и более минуты. А потом 17 секунд. Сейчас запрос переписали и вроде все быстро, отдача 50 мс, но оч хотелось понять не будет ли проблем с первым запуском. Так как ранее еще была ситуация, столкнулся с ситуацией что там оказался мертвый жесткий диск, и запрос выполнялся 5 мс, а первый раз минуту. Тогда посоветовали проверить жесткий и это оказалось правда. Хочется перестраховаться, так как пользователь к своим данным обращается 1 раз в два дня, но если пришел, то начинает их гонять. И не хотелось иметь запрос, когда он пришел и ждве минуту. 3. То есть в одном запрос если он просматривает один и тот же блок два раза, то он попадает в shared hit?

Sergey Kolomiychuk
1. echo 3 > /proc/sys/vm/drop_caches и перезагружа...

> 1. echo 3 > /proc/sys/vm/drop_caches и перезагружаю постгрес Да, это правильно. > но оч хотелось понять не будет ли проблем с первым запуском. Всегда могут быть, к сожалению. Т.е. обычно ориентируются на работу СУБД в нормальном режиме, потому что обычно она продолжается гораздо дольше, чем заполнение кешей при перезапусках / перезагрузках (т.е. под эти ситуации в ущерб нормальной работе смысла оптимизировать обычно нет). Т.о. то, что первое (после перезагрузки, в смысле) выполнение запроса гораздо дольше последующих — нормально. Но если Вас всё-таки интересует время "на холодную" — да, результатам такого способа можно верить (но в идеале Вы должны сбросить кеши — выполнить единственный запрос — опять сбросить кеши...). > И не хотелось иметь запрос, когда он пришел и ждве минуту. СУБД общего назначения — не real time, именно гарантий на время выполнения добиться от них не удастся. Можно искусственно "подогреть" кеш, конечно (см. https://www.postgresql.org/docs/current/pgprewarm.html )... но PostgreSQL его всё равно вытеснит, если эти данные будут просто "простаивать" в RAM. > 3. То есть в одном запрос если он просматривает один и тот же блок два раза, то он попадает в shared hit? Да, почти наверняка (и даже если этот блок параллельно прочитал любой другой запрос, в другой сессии). Т.е. то, что читается, кешируется в shared buffers, пока там есть место (они же для этого и нужны, собственно). Вытеснение обычно начинается тогда, когда места там уже нет.

Sergey-Kolomiychuk Автор вопроса
Yaroslav Schekin
> 1. echo 3 > /proc/sys/vm/drop_caches и перезагру...

Да, субд будет использоваться по назначению. Как говорил ранее хотелось понимать допустимую разницу при первом запросе и считывания блоков и последующих нормальных запросах так сказать. Интересно почему когда просматриваю кеш в Ubuntu он был 800 мб у примеру, а становится после сброса 230 мб. Это какая то не сбрасываемая часть?

Sergey-Kolomiychuk Автор вопроса
Yaroslav Schekin
> 1. echo 3 > /proc/sys/vm/drop_caches и перезагру...

Спасибо за такие подробные ответы

Sergey-Kolomiychuk Автор вопроса
Yaroslav Schekin
> 1. echo 3 > /proc/sys/vm/drop_caches и перезагру...

спасибо огромное за развернутые ответы

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта