Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4 2
Ещё не все видосы выпустил с прошлого выступления, а у нас уже намечается следующее🔥
25.07 в 20:00, клуб "БарЧук", Староваганьковский переулок, 19с3, вход платный
25.07 в 20:00, клуб "БарЧук", Староваганьковский переулок, 19с3, вход платный
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1 1
Ура! 100 подписчиков! 🎉
Спасибо, что не отписываешься✨
Не удивлюсь, если после этого кто-нибудь отпишется😅
100му подписчику полагается памятный значок (фото в комментах). Скоро подарок настигнет своего обладателя🎉
Спасибо, что не отписываешься
Не удивлюсь, если после этого кто-нибудь отпишется😅
100му подписчику полагается памятный значок (фото в комментах). Скоро подарок настигнет своего обладателя
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2
Forwarded from C# Short Posts 🔞
🩺 Диагностика — как понять, на что ушла оперативка (часть 1)
Мы с тобой разобрались с shared_buffers, кэш ОС и work_mem. Теперь можем понять, если на сервере память забита под завязку (как на дикпике из графаны), проблема это или норма, и куда смотреть в первую очередь👀
📊 Доля попаданий в кэш (дикпик 1)
Первый вопрос — насколько хорошо данные ложатся в память. По каждой базе Postgres в🔖
На прогретой базе эта доля стремится к 99% и выше. У меня после прогрева вышло около 97.84%, а сразу после рестарта она была заметно ниже, потому что кэш ещё пустой.
Если доля стабильно низкая, это сигнал: рабочий набор (та часть данных, к которой реально обращаются запросы) не помещается в память, либо запросы идут мимо индексов и вычитывают всё подряд📖
🔎 Разрез по таблицам и индексам (дикпик 2)
Одно общее число по базе мало о чём говорит. Чтобы понять, что конкретно не попадает в кэш, есть два представления:💽
🅰️ Что унести с собой
🟢 Доля попаданий из
🟢 Представление о таблицах и индексах в кэше дают... представления
Ещё пару инструментов рассмотрим в следующем посте 👉
🧑💻dp🥁
#бд #postgresql #инженерныештучки #heavywednesday
Мы с тобой разобрались с shared_buffers, кэш ОС и work_mem. Теперь можем понять, если на сервере память забита под завязку (как на дикпике из графаны), проблема это или норма, и куда смотреть в первую очередь
📊 Доля попаданий в кэш (дикпик 1)
Первый вопрос — насколько хорошо данные ложатся в память. По каждой базе Postgres в
pg_stat_database (системное представление, содержащее накопленную статистику по каждой базе данных в кластере) содержит два счётчика: blks_hit (сколько страниц нашлись прямо в shared_buffers) и blks_read (сколько пришлось дочитывать мимо него). Их отношение hit / (hit + read) называют долей попаданий в кэш (по-английски cache hit ratio) На прогретой базе эта доля стремится к 99% и выше. У меня после прогрева вышло около 97.84%, а сразу после рестарта она была заметно ниже, потому что кэш ещё пустой.
Если доля стабильно низкая, это сигнал: рабочий набор (та часть данных, к которой реально обращаются запросы) не помещается в память, либо запросы идут мимо индексов и вычитывают всё подряд
🔎 Разрез по таблицам и индексам (дикпик 2)
Одно общее число по базе мало о чём говорит. Чтобы понять, что конкретно не попадает в кэш, есть два представления:
pg_statio_user_tables (счётчики чтений и попаданий по каждой таблице) и pg_statio_user_indexes (то же самое по каждому индексу). В нём сразу видно, какая таблица или какой индекс постоянно бегает на диск 🅰️ Что унести с собой
pg_stat_database показывает, помещаются ли данные в память. Если она стабильно низкая, это повод разбиратьсяpg_statio_user_tables и pg_statio_user_indexesЕщё пару инструментов рассмотрим в следующем посте 👉
🧑💻dp🥁
#бд #postgresql #инженерныештучки #heavywednesday
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from BarChuk
25го июля (суббота) в 20:00 потрясающий концерт в BarChuk!❤️🔥
Виолетта Орлова - певица, автор музыки и текстов. Вместе с группой ХИТПОИНТ она исполнит авторские песни и каверы в оригинальных рок-аранжировках. В каждой песне - своя история и глубокий смысл. Проникновенный голос солистки и живая музыка погрузят слушателя в свою уникальную атмосферу.
📒 25 июля (суббота) в 20:00
📍 BarChuk (Староваганьковский пер., 19с3)
❤ Вход свободный
Виолетта Орлова - певица, автор музыки и текстов. Вместе с группой ХИТПОИНТ она исполнит авторские песни и каверы в оригинальных рок-аранжировках. В каждой песне - своя история и глубокий смысл. Проникновенный голос солистки и живая музыка погрузят слушателя в свою уникальную атмосферу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4❤1
Мой stuff truck на сегодня: стул, педаль и стойки, и рюкзак с прочими приблудами. Чуть позже сюда добавится барабан и тарелки 🍽
Для сравнения, второе фото: stuff truck 27 марта, с которого начался мой #гастрольный_сезон🤘
Да, разницы особо нет, просто хотел намекнуть на то, что есть такой хэш-тег, который приведёт тебя на мой гастрольный график📝
Для сравнения, второе фото: stuff truck 27 марта, с которого начался мой #гастрольный_сезон
Да, разницы особо нет, просто хотел намекнуть на то, что есть такой хэш-тег, который приведёт тебя на мой гастрольный график
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Media is too big
VIEW IN TELEGRAM
Это мы с #хитпоинт вчера, сейчас дома уже 🤟
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Forwarded from C# Short Posts 🔞
🩺 Диагностика — как понять, на что ушла оперативка (часть 2, work_mem наносит ответный удар )
👈 Часть инструментов рассмотрели в прошлом посте, а в этом рассмотрим ещё парочку:
🧰 Что лежит в кэше прямо сейчас
Расширение
👥 Кто сейчас активен (дикпик 3)
Кроме
Чтобы при этом явно понять, какой клиент выполняет запрос, важно передавать его читаемое название через строку подключения или в запросе, тогда его название отобразится в app🧠
⚠️ Ловушка при подсчёте памяти процессов
Если помнишь, каждое соединение в Postgres обслуживает отдельный процесс. Казалось бы, сложи память всех процессов и получишь общий расход. Но есть подвох:
🧯 Если work_mem чересчур раздут
Если арифметика подтвердит, что в основном память выделена под обработку запросов, рецепт простой: уменьшить
🅰️ Что унести с собой
🟢 Состав кэша показывает
🟢 Складывать
🧑💻dp🥁
#бд #postgresql #инженерныештучки #heavywednesday
👈 Часть инструментов рассмотрели в прошлом посте, а в этом рассмотрим ещё парочку:
🧰 Что лежит в кэше прямо сейчас
Расширение
pg_buffercache (мы его уже видели в посте про shared_buffers) показывает поимённо, какие страницы заняли кэш Postgres в данный момент. Удобно, когда надо понять, чем именно забиты те самые 128 MB, выданные под shared_buffers👥 Кто сейчас активен (дикпик 3)
Кроме
shared_buffers можно проверить и work_mem, чтобы узнать, сколько соединений работает и что они выполняют. Это показывает представление pg_stat_activity: оно построчно показывает каждое соединение, и там видно текущий запрос от клиента (app) и его состояние. Дальше пользуемся арифметикой work_mem × число операций × число активных соединений, чтобы получить объём памяти, занятый данными для операцийЧтобы при этом явно понять, какой клиент выполняет запрос, важно передавать его читаемое название через строку подключения или в запросе, тогда его название отобразится в app
⚠️ Ловушка при подсчёте памяти процессов
Если помнишь, каждое соединение в Postgres обслуживает отдельный процесс. Казалось бы, сложи память всех процессов и получишь общий расход. Но есть подвох:
shared_buffers общий, и операционная система засчитывает его в память каждого процесса. Этот объём называют RSS (resident set size — объём оперативки, занятый процессом). Если просто сложить RSS всех бэкендов, общий shared_buffers посчитается много раз, и итог окажется сильно завышенным. Для суммирования правильнее брать PSS (proportional set size): он делит общую память поровну между процессами, которые ею пользуются🧯 Если work_mem чересчур раздут
Если арифметика подтвердит, что в основном память выделена под обработку запросов, рецепт простой: уменьшить
work_mem, сократить число соединений, или поставить перед базой пулер соединений. Пулер (например, PgBouncer) — это прослойка, которая держит небольшой набор постоянных соединений к Postgres и раздаёт их клиентам, что позволяет избежать выделение процесса на подключение каждого клиента. А отдельному тяжёлому запросу можно задать work_mem прямо в нём командой SET LOCAL (она меняет параметр в пределах текущей транзакции).🅰️ Что унести с собой
pg_buffercache. Кто сейчас активен, видно в pg_stat_activityRSS процессов не стоит: общий shared_buffers задвоится. Для суммы есть PSS🧑💻dp🥁
#бд #postgresql #инженерныештучки #heavywednesday
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Такой вот сюжет не так давно добавил в #занимательныеистории 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👀1