🐘 Bloat в PostgreSQL: как найти и что с ним делать
Из-за MVCC
Если vacuum не успевает или ему что-то мешает, таблицы и индексы раздуваются. Запросы начинают читать больше страниц, кэш забивается мусором, бэкапы растут.
1. Быстрая проверка без расширений
Цифры берутся из статистики и поэтому приблизительные, но для первого взгляда их хватает. Если
2. Точная оценка через pgstattuple
Часто бывает так:
3. Индексы
У свежего B-tree плотность листьев около 90%. Если она упала ниже 50–60%, индекс раздут.
4. Кто мешает vacuum
Главный враг vacuum — долгие транзакции. Пока жива старая транзакция, vacuum не может удалить версии строк, которые она теоретически может увидеть.
Ещё стоит проверить забытые replication slots (
🛠 Как лечить
•
•
•
•
🛡 Как не допускать
• Для горячих таблиц снижайте
• Выставьте
• Для таблиц с частыми
Если нужно оценить bloat по всей базе без полного сканирования, есть статистические запросы в репозитории ioguix/pgsql-bloat-estimation. Они считают по
Из-за MVCC
UPDATE и DELETE не удаляют строки сразу. Старые версии остаются в таблице как dead tuples. Autovacuum помечает это место как свободное для повторного использования, но файл на диске не уменьшается.Если vacuum не успевает или ему что-то мешает, таблицы и индексы раздуваются. Запросы начинают читать больше страниц, кэш забивается мусором, бэкапы растут.
1. Быстрая проверка без расширений
SELECT relname,
n_live_tup,
n_dead_tup,
round(n_dead_tup * 100.0 /
nullif(n_live_tup + n_dead_tup, 0), 1) AS dead_pct,
last_autovacuum,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM pg_stat_user_tables
WHERE n_dead_tup > 10000
ORDER BY n_dead_tup DESC
LIMIT 20;
Цифры берутся из статистики и поэтому приблизительные, но для первого взгляда их хватает. Если
dead_pct выше 20% и last_autovacuum давний, таблицу стоит проверить.2. Точная оценка через pgstattuple
CREATE EXTENSION IF NOT EXISTS pgstattuple;
-- полный скан, на больших таблицах тяжело
SELECT dead_tuple_percent, free_percent
FROM pgstattuple('public.orders');
-- быстрее: пропускает all-visible страницы
SELECT dead_tuple_percent, approx_free_percent
FROM pgstattuple_approx('public.orders');
Часто бывает так:
free_percent большой, а dead_tuple_percent маленький. Это значит, что vacuum отработал, но место так и не вернулось ОС.3. Индексы
SELECT avg_leaf_density, leaf_fragmentation
FROM pgstatindex('public.orders_pkey');
У свежего B-tree плотность листьев около 90%. Если она упала ниже 50–60%, индекс раздут.
4. Кто мешает vacuum
Главный враг vacuum — долгие транзакции. Пока жива старая транзакция, vacuum не может удалить версии строк, которые она теоретически может увидеть.
SELECT pid, state,
now() - xact_start AS xact_age,
age(backend_xmin) AS xmin_age,
left(query, 60) AS query
FROM pg_stat_activity
WHERE backend_xmin IS NOT NULL
ORDER BY age(backend_xmin) DESC
LIMIT 10;
Ещё стоит проверить забытые replication slots (
pg_replication_slots), hot_standby_feedback на репликах и сессии в состоянии idle in transaction.🛠 Как лечить
•
VACUUM освобождает место внутри таблицы, но файл не сжимает (разве что отрезает пустой хвост).•
VACUUM FULL сжимает таблицу, но держит ACCESS EXCLUSIVE lock всё время работы. На проде его почти никогда не запускают.•
pg_repack пересобирает таблицу онлайн и блокирует её только в начале и в конце. Нужны PK или unique-индекс и место на диске под копию.•
REINDEX INDEX CONCURRENTLY (PG 12+) подходит для раздутых индексов.🛡 Как не допускать
• Для горячих таблиц снижайте
autovacuum_vacuum_scale_factor. Дефолт 0.2 означает, что autovacuum ждёт, пока мёртвыми станут 20% строк.• Выставьте
idle_in_transaction_session_timeout.• Для таблиц с частыми
UPDATE ставьте fillfactor 80–90, чтобы срабатывали HOT-обновления.Если нужно оценить bloat по всей базе без полного сканирования, есть статистические запросы в репозитории ioguix/pgsql-bloat-estimation. Они считают по
pg_stats: быстро, но с погрешностью.GitHub
GitHub - ioguix/pgsql-bloat-estimation: Queries to mesure statistical bloat in indexes and tables for PostgreSQL
Queries to mesure statistical bloat in indexes and tables for PostgreSQL - ioguix/pgsql-bloat-estimation
👍3
Сколько вкладок терминала нужно, чтобы управлять своими AI-разработчиками?
Если используете сразу несколько агентов, посмотрите на MonoCode — десктопный интерфейс для Claude Code, Codex, Cursor CLI, OpenCode и других.
Логика простая: устанавливаете агента, авторизуетесь — и работаете с ним через приложение. Каждая сессия живёт в отдельной вкладке.
Что интересно:
→ Ваши действующие подписки. MonoCode запускает установленных агентов и сам не продаёт токены. Условия и лимиты провайдеров сохраняются.
→ Несколько сессий в одном месте. Можно распределять задачи между агентами и организовывать сессии по папкам.
→ Отдельные рабочие копии через Git worktree. Полезно, когда несколько задач требуют независимых изменений в проекте.
→ Управление через /operator. Например, можно попросить агента открыть две сессии Codex: одну для проверки API, другую — для ревью интерфейса.
Доступен для macOS, Windows и Linux. Код открыт, лицензия MIT.
Проект пока ранний: автор прямо предупреждает о возможных багах. Но сама идея заслуживает внимания — когда агентов становится несколько, удобство управления ими начинает влиять на работу не меньше, чем выбор модели.
Посмотреть MonoCode на GitHub
Если используете сразу несколько агентов, посмотрите на MonoCode — десктопный интерфейс для Claude Code, Codex, Cursor CLI, OpenCode и других.
Логика простая: устанавливаете агента, авторизуетесь — и работаете с ним через приложение. Каждая сессия живёт в отдельной вкладке.
Что интересно:
→ Ваши действующие подписки. MonoCode запускает установленных агентов и сам не продаёт токены. Условия и лимиты провайдеров сохраняются.
→ Несколько сессий в одном месте. Можно распределять задачи между агентами и организовывать сессии по папкам.
→ Отдельные рабочие копии через Git worktree. Полезно, когда несколько задач требуют независимых изменений в проекте.
→ Управление через /operator. Например, можно попросить агента открыть две сессии Codex: одну для проверки API, другую — для ревью интерфейса.
Доступен для macOS, Windows и Linux. Код открыт, лицензия MIT.
Проект пока ранний: автор прямо предупреждает о возможных багах. Но сама идея заслуживает внимания — когда агентов становится несколько, удобство управления ими начинает влиять на работу не меньше, чем выбор модели.
Посмотреть MonoCode на GitHub
GitHub
GitHub - hardbeat920/monocode: A GUI for your coding agents
A GUI for your coding agents. Contribute to hardbeat920/monocode development by creating an account on GitHub.
👍2
Все уже используют умопомрачительный Opus 5.5. Невероятная модель, я придумал идею проекта новую, буду на ней все делать 🤗
А вам интересен проект (он глобальный) и процесс его реализации?
Или только финал?
А вам интересен проект (он глобальный) и процесс его реализации?
Или только финал?
Забавно, вместо того, чтобы забанить меня из-за одноразового захода с телефона из РФ, Claude просто попросил меня пройти верификацию
😱3
Витя пишет код
ух-ух, ну поехали!
И-так, если Claude просит вас пройти верификацию, выбираем Russian Federation и фоткаем свой загран, потом делаем селфи и внимание - это сработало ахахахахах, это прям реально сработало
😁3🔥2
Вы что думали, что я умный и много знаю потому что я гениален, а вот и нет. Я просто лошара, который ошибается буквально на каждом шагу, на каждом, я совершу все ошибки мира, которые мне уготовила судьба!
НО, я запоминаю, где я ошибаюсь, а еще я очень целеустремленный!
Немного мотивации в пятницу от Вити!!!
НО, я запоминаю, где я ошибаюсь, а еще я очень целеустремленный!
Немного мотивации в пятницу от Вити!!!
🔥8
Лендинг SiteAgent.pdf
2.7 MB
Идея нового проекта. Пишешь в чат что нужно сделать, сайт делает. ЦА - люди, к которых сайт есть на каком-то старом фреймворке, хочется что-то поменять или прокачать сайт, а договариваться с кем-то сил нет
В целом, у меня есть кейс сейчас, что мне в Макс присылают требования, а я такой - кодекс, прочитай и внеси правки и он делает 🤗
Как идея?))
В целом, у меня есть кейс сейчас, что мне в Макс присылают требования, а я такой - кодекс, прочитай и внеси правки и он делает 🤗
Как идея?))
🔥2
Сейчас писать на python backend можно если:
1. твоя команда знает python и ничего больше
2. если у Вас большая кодовая база на python, мигрировать которую не имеет смысла
3. если ты просто хочешь писать на питоне
Для всех остальных случаев следует использовать другой язык.
(с) Никита Соболев
Link: https://www.youtube.com/watch?v=pCEAViHEmRo
1. твоя команда знает python и ничего больше
2. если у Вас большая кодовая база на python, мигрировать которую не имеет смысла
3. если ты просто хочешь писать на питоне
Для всех остальных случаев следует использовать другой язык.
(с) Никита Соболев
Link: https://www.youtube.com/watch?v=pCEAViHEmRo
YouTube
Какое будущее ждет Python? БАЗА от разработчика CPython — Никита Соболев
Интервью с Никитой Соболевым, одним из разработчиков CPython. Поговорили о будущем пайтона.
Покупай СhatGPT, Cursor, Claude выгодно, только на ggsel
https://ggsel.net/b/hhoneymontana_1
А также подписки на сервисы и соц сети
https://ggsel.net/b/hhoneymontana_1_2…
Покупай СhatGPT, Cursor, Claude выгодно, только на ggsel
https://ggsel.net/b/hhoneymontana_1
А также подписки на сервисы и соц сети
https://ggsel.net/b/hhoneymontana_1_2…
😭4🤣2❤1🤔1
Fortran выше Go, а COBOL — в топ-20. На дворе 2026-й 🙂
Вышел сентябрьский рейтинг TIOBE. Из интересного:
• Python на первом месте, следом C и C++.
• Rust — 10-й, Fortran — 11-й, Go — 12-й.
• COBOL замыкает двадцатку.
• Perl и Ruby вышли из топ-20, а Ada и Objective-C в него вошли.
У языков, похоже, пенсия тоже не по расписанию))
У TIOBE есть важная особенность: популярность он оценивает по поисковой выдаче. Место в этом списке само по себе ничего не говорит о количестве вакансий, доле проектов или пригодности языка для вашей задачи. Так что переписывать Go на Fortran пока рано 😄
А какой самый старый язык у вас до сих пор крутится в проде?
Пост на Хабре:
https://habr.com/ru/amp/publications/1087048/
Сам рейтинг:
https://www.tiobe.com/tiobe-index/
Вышел сентябрьский рейтинг TIOBE. Из интересного:
• Python на первом месте, следом C и C++.
• Rust — 10-й, Fortran — 11-й, Go — 12-й.
• COBOL замыкает двадцатку.
• Perl и Ruby вышли из топ-20, а Ada и Objective-C в него вошли.
У языков, похоже, пенсия тоже не по расписанию))
У TIOBE есть важная особенность: популярность он оценивает по поисковой выдаче. Место в этом списке само по себе ничего не говорит о количестве вакансий, доле проектов или пригодности языка для вашей задачи. Так что переписывать Go на Fortran пока рано 😄
А какой самый старый язык у вас до сих пор крутится в проде?
Пост на Хабре:
https://habr.com/ru/amp/publications/1087048/
Сам рейтинг:
https://www.tiobe.com/tiobe-index/
❤1
Залетаем на OpenAI dev day 🚀🔥 настоящее событие мирового масштаба
https://devday.openai.com/ - регаемся и вперед
PS: событие покажет, отменяю ли я подписку за $200 или нет 😌
Подписка используется мною для работы, для жизни и для жены, но Клода с opus 5.5 действительно хороша 🤗
https://devday.openai.com/ - регаемся и вперед
PS: событие покажет, отменяю ли я подписку за $200 или нет 😌
Подписка используется мною для работы, для жизни и для жены, но Клода с opus 5.5 действительно хороша 🤗
Openai
OpenAI DevDay 2026
OpenAI DevDay on September 29, 2026 in San Francisco for technical sessions, hands-on demos, workshops, and time with OpenAI teams building developer tools.
🕊1
OpenAI возвращают подписку за $200, но есть НО
Завтра мы снова открываем подписки Pro за $200 для новых подписчиков, но вместе с этим мы также меняем способ расчёта использования для неё. По сути, если посчитать, это выйдет вполовину меньшую сумму в расходах на API по сравнению со старым планом Pro за $200.
Теперь, когда это сказано, позвольте объяснить, почему это происходит и почему вы всё равно сможете сделать больше работы, чем если бы вы были на подписке Pro за $200 месяц назад.
(a) Мы не хотели идти на компромиссы другими способами и обязуемся не возвращать лимит в 5 часов, чтобы вы могли полностью использовать еженедельное потребление, когда захотите.
(b) В подписке мы гарантируем, что со временем вы всегда будете делать больше работы и с растущим уровнем качества. Это значит, что вы продолжите получать больше ценности за каждый потраченный доллар благодаря тому, что модели становятся эффективнее, и мы передаём эти улучшения в виде снижения цен на API.
(c) Мы не хотим создавать для себя стимул искусственно завышать список цен на API, чтобы это выглядело так, будто вы получаете много (и обходить это через скидки и т.д.). Вместо этого мы хотим продолжать быстро снижать цены и повышать возможности моделей в API. На этой неделе мы ввели GPT-6 Sol и GPT-6 Luna по 50% от их предыдущей цены. Со временем мы видим, что цены опустятся достаточно низко, чтобы для большинства имело смысл покупать использование по мере необходимости, без значительной разницы между тем, что вы получаете в подписке, и тем, что вы получаете в API за потраченный доллар.
(d) Завтра мы добавим в подписку больше вещей, которые не будут тратиться из использования, я пока не раскрою, что это такое.
Я хотел быть прозрачным перед всеми большими анонсами завтра. Много новых увлекательных вещей придёт в подписки, которые сделают их суперпривлекательными, но я хотел убедиться, что поделюсь этим изменением заранее, чтобы вы все могли понять его до того, как мы завалим вас хорошими новостями.
Codexingly,
Tibo
Нашёл баг? Приходи с PR от нейросети 🤖
Тейлор Отвелл отключил GitHub Issues у большинства open-source пакетов Laravel. Основной репозиторий фреймворка это не затронуло.
Логика такая: встретил баг → объясни его coding agent → открой Pull Request. Даже если код получился так себе, PR уже зафиксирует проблему, а исправление можно доработать.
Забавно, что другие проекты с теми же AI-агентами приходят к совершенно разным правилам))
🔄 Symfony Language Tools: сначала описание проблемы
Фабьен Потансье поставил обратный эксперимент: отключил PR и оставил Issues. Пользователь приносит контекст, логи и воспроизведение, а мейнтейнер со своим агентом делает исправление. В основном Symfony и остальных его репозиториях PR по-прежнему приветствуются.
🤝 Ghostty: сначала заслужи доверие
Новый участник должен своими словами объяснить, что хочет изменить и зачем, и получить одобрение мейнтейнера. Без этого PR автоматически закроют. AI для написания кода разрешён, но автор обязан понимать изменения и уметь объяснить их без помощи нейросети.
🌀 curl: даже хорошие отчёты создают нагрузку
В конце января проект закрыл bug bounty на фоне потока мусорных AI-отчётов об уязвимостях. Обычные Issues и PR это не затронуло. А в апреле Даниэль Стенберг описал новый поворот: качество отчётов выросло, поток стал ещё больше. Полезные находки тоже кому-то нужно проверять и исправлять.
Для меня здесь главный вопрос — сколько времени всё это экономит человеку, который отвечает за проект.
Сгенерировать патч стало проще. Разобраться, нужен ли он вообще, проверить совместимость и потом сопровождать изменение — отдельная работа. PR от агента может её сократить, а может добавить ещё час ревью.
Похоже, ценность контрибьютора всё сильнее зависит от того, насколько хорошо он понял проблему и проверил своё решение.
А вы бы что предпочли получать в свой проект: подробный Issue или сразу PR, сделанный с агентом?
🔗 Laravel · Symfony Language Tools · Ghostty · curl: закрытие bounty · curl: что было дальше
Тейлор Отвелл отключил GitHub Issues у большинства open-source пакетов Laravel. Основной репозиторий фреймворка это не затронуло.
Логика такая: встретил баг → объясни его coding agent → открой Pull Request. Даже если код получился так себе, PR уже зафиксирует проблему, а исправление можно доработать.
Забавно, что другие проекты с теми же AI-агентами приходят к совершенно разным правилам))
🔄 Symfony Language Tools: сначала описание проблемы
Фабьен Потансье поставил обратный эксперимент: отключил PR и оставил Issues. Пользователь приносит контекст, логи и воспроизведение, а мейнтейнер со своим агентом делает исправление. В основном Symfony и остальных его репозиториях PR по-прежнему приветствуются.
🤝 Ghostty: сначала заслужи доверие
Новый участник должен своими словами объяснить, что хочет изменить и зачем, и получить одобрение мейнтейнера. Без этого PR автоматически закроют. AI для написания кода разрешён, но автор обязан понимать изменения и уметь объяснить их без помощи нейросети.
🌀 curl: даже хорошие отчёты создают нагрузку
В конце января проект закрыл bug bounty на фоне потока мусорных AI-отчётов об уязвимостях. Обычные Issues и PR это не затронуло. А в апреле Даниэль Стенберг описал новый поворот: качество отчётов выросло, поток стал ещё больше. Полезные находки тоже кому-то нужно проверять и исправлять.
Для меня здесь главный вопрос — сколько времени всё это экономит человеку, который отвечает за проект.
Сгенерировать патч стало проще. Разобраться, нужен ли он вообще, проверить совместимость и потом сопровождать изменение — отдельная работа. PR от агента может её сократить, а может добавить ещё час ревью.
Похоже, ценность контрибьютора всё сильнее зависит от того, насколько хорошо он понял проблему и проверил своё решение.
А вы бы что предпочли получать в свой проект: подробный Issue или сразу PR, сделанный с агентом?
🔗 Laravel · Symfony Language Tools · Ghostty · curl: закрытие bounty · curl: что было дальше
Laravel News
Taylor disabled GitHub Issues on most Laravel open-source packages.
If you hit a bug, describe it to a coding agent and open a PR. Even if the code isn't great, that's fine - code can be iterated on. The PR still documents the p…
Витя пишет код
Залетаем на OpenAI dev day 🚀🔥 настоящее событие мирового масштаба https://devday.openai.com/ - регаемся и вперед PS: событие покажет, отменяю ли я подписку за $200 или нет 😌 Подписка используется мною для работы, для жизни и для жены, но Клода с opus 5.5…
Каждый участник получает ChatGPT PRO на 30 дней бесплатно
🔥3
Витя пишет код
На презентации не сработал голосовой ввод в паре моментов и тут же сотрудник, которые за это отвечал был уволен.
Это может показаться жестоким, но мир такой. Слишком высокие ставки на кону, слишком. Когда вы на передке цивилизации, вы как бы не можете позволить себе провалов, второго шанса не дают.
Ты делает фичу и получал много денег, в ответственный момент ты не справился - до свидания!
Полагаю, так и создаются крутые продукты, именно так.
Это может показаться жестоким, но мир такой. Слишком высокие ставки на кону, слишком. Когда вы на передке цивилизации, вы как бы не можете позволить себе провалов, второго шанса не дают.
Ты делает фичу и получал много денег, в ответственный момент ты не справился - до свидания!
Полагаю, так и создаются крутые продукты, именно так.