БлогеРОК программиста-барабанщика 👨💻🥁
Telegram: @GranSteL
YouTube: https://youtube.com/@granstel
ВКВидео: https://vkvideo.ru/@drummer_programmer
Post #522
82

Дала жизнь агента, даст и клиента☯️
- ❤ 3
КО @drummer_programmer
Showing posts older than #523 · Back to latest


Forwarded from Новости Яндекс Диалогов
Навыки перестают быть доступны в чате с Алисой AI и в мобильных приложениях. <...> сейчас фокусируемся на тех сценариях, к которым пользователи наиболее часто обращаются. К сожалению, навыки в них не входят
Forwarded from C# Short Posts 🔞


Проанализируй кодовую базу и найди возможные причинно-следственные связи, которые могли привести к <этому багу>. Покажи, на чём основан каждый вывод. Не додумывай, перепроверяй, уточняй


Forwarded from C# Short Posts 🔞


pg_buffercache (мы его уже видели в посте про shared_buffers) показывает поимённо, какие страницы заняли кэш Postgres в данный момент. Удобно, когда надо понять, чем именно забиты те самые 128 MB, выданные под shared_buffersshared_buffers можно проверить и work_mem, чтобы узнать, сколько соединений работает и что они выполняют. Это показывает представление pg_stat_activity: оно построчно показывает каждое соединение, и там видно текущий запрос от клиента (app) и его состояние. Дальше пользуемся арифметикой work_mem × число операций × число активных соединений, чтобы получить объём памяти, занятый данными для операцийshared_buffers общий, и операционная система засчитывает его в память каждого процесса. Этот объём называют RSS (resident set size — объём оперативки, занятый процессом). Если просто сложить RSS всех бэкендов, общий shared_buffers посчитается много раз, и итог окажется сильно завышенным. Для суммирования правильнее брать PSS (proportional set size): он делит общую память поровну между процессами, которые ею пользуютсяwork_mem, сократить число соединений, или поставить перед базой пулер соединений. Пулер (например, PgBouncer) — это прослойка, которая держит небольшой набор постоянных соединений к Postgres и раздаёт их клиентам, что позволяет избежать выделение процесса на подключение каждого клиента. А отдельному тяжёлому запросу можно задать work_mem прямо в нём командой SET LOCAL (она меняет параметр в пределах текущей транзакции).pg_buffercache. Кто сейчас активен, видно в pg_stat_activityRSS процессов не стоит: общий shared_buffers задвоится. Для суммы есть PSSThis post (sticker, poll or similar) has no web preview. Open in Telegram


This post (sticker, poll or similar) has no web preview. Open in Telegram
Forwarded from BarChuk



Forwarded from C# Short Posts 🔞




pg_stat_database (системное представление, содержащее накопленную статистику по каждой базе данных в кластере) содержит два счётчика: blks_hit (сколько страниц нашлись прямо в shared_buffers) и blks_read (сколько пришлось дочитывать мимо него). Их отношение hit / (hit + read) называют долей попаданий в кэш (по-английски cache hit ratio) 🔖pg_statio_user_tables (счётчики чтений и попаданий по каждой таблице) и pg_statio_user_indexes (то же самое по каждому индексу). В нём сразу видно, какая таблица или какой индекс постоянно бегает на диск 💽pg_stat_database показывает, помещаются ли данные в память. Если она стабильно низкая, это повод разбиратьсяpg_statio_user_tables и pg_statio_user_indexes