Серия «ITшное»

0

Симбиоз эксперта DBA и нейросети DeepSeek: как мы учим PostgreSQL предсказывать собственные сбои

Серия ITшное

Материал подготовлен нейросетью DeepSeek.

Эксперт задаёт цель — нейросеть прокладывает путь

Эксперт задаёт цель — нейросеть прокладывает путь

Вступление

Представьте, что ваша база данных — это живой организм. У него есть пульс (скорость выполнения запросов), давление (время ожидания) и даже настроение (корреляция между ними). И как любой организм, он иногда болеет — падает производительность, возникают «тормоза», а то и полные остановки. Хороший администратор (DBA) чувствует эти симптомы, но часто слишком поздно.

А что, если мы сможем предсказывать болезнь за час до её начала? Именно эту задачу мы решаем в проекте pg_expecto — и в этом нам помогает не просто статистика, а настоящий цифровой напарник — нейросеть DeepSeek.


Главная идея: от наблюдения к предсказанию

Мы давно умеем собирать метрики: загрузку CPU, операции ввода-вывода, время ожидания блокировок. Но просто смотреть на графики — всё равно что гадать по облакам. Чтобы предсказывать будущее, нужна модель, которая улавливает закономерности переходов из одного состояния в другое. Для этого мы используем цепи Маркова — математический аппарат, который описывает, как система переходит между дискретными состояниями с определёнными вероятностями.

В нашем случае состояние — это комбинация трёх показателей:

  • насколько сильно операционная скорость «дружит» с ожиданиями (корреляция);

  • куда движется скорость (растёт, падает или стоит на месте);

  • куда движется время ожидания.

Всего таких состояний — 189. Каждую минуту мы фиксируем текущее состояние и запоминаем, в какое состояние система перешла дальше. Так накапливается статистика переходов — матрица вероятностей. Имея её, мы можем сказать: если сейчас система в состоянии X, то через 15 минут она с вероятностью 73% окажется в «красной зоне», а через час — уже с 91%.

Звучит как магия, но за этим стоит простая и прозрачная математика. И главное — эта модель не статична. Она учится на наших данных, адаптируется к нагрузке, «забывает» устаревшие паттерны. Всё это мы реализовали в открытом репозитории markov_chain, который тесно связан с pg_expecto.

Кто здесь главный? Человек vs Нейросеть

В этом проекте сложилось удивительное разделение труда.

DeepSeek взял на себя всю «черновую» работу:

  • Пишет код — от функций сбора данных до расчёта матриц и прогнозов;

  • Анализирует отчёты — выискивает скрытые связи между метриками и инцидентами;

  • Готовит публикации — статьи, посты, даже иллюстрации;

  • Генерирует гипотезы — предлагает, что ещё можно попробовать, какие параметры изменить.

Но настоящий «мозговой центр» — автор проекта (опытный DBA). Он не просто наблюдает со стороны. Его задачи — стратегические:

  • постановка целей и ограничений;

  • анализ проблем, которые не может уловить алгоритм;

  • критическая оценка гипотез, которые выдвигает нейросеть;

  • принятие финальных решений о том, что внедрять.

Именно автор сформулировал две прорывные идеи, которые перевернули наш подход.

Прорывные идеи, рождённые в голове эксперта

Первая идея — учить модель не на текущих данных, а на всей исторической глубине. Вместо того чтобы ждать недели, пока накопится достаточно переходов, мы загрузили в модель многолетнюю историю pg_expecto. Это как если бы метеоролог предсказывал погоду не по показаниям барометра за последний час, а по архиву наблюдений за десять лет. Результат — модель начинает выдавать осмысленные прогнозы практически с первого дня.

Вторая идея — адаптивная настройка параметров цепи. В классической цепи Маркова вероятности переходов считаются стационарными. Но в реальной жизни нагрузка на базу данных меняется по дням недели, сезонам, релизам. Мы ввели механизм «забывания» — старые переходы постепенно теряют вес, а свежие — приобретают. И параметры этого забывания настраиваются автоматически, в зависимости от текущей стабильности системы. Это позволяет модели подстраиваться под новые условия быстрее, чем человек успевает заметить изменение.

Эти идеи — чисто человеческие. Нейросеть помогла их формализовать, просчитать на симуляциях и воплотить в код. Но направление задал эксперт.

Так и рождается настоящий симбиоз: человек задаёт вектор, машина прокладывает путь.

Что даёт такой подход на практике?

Мы уже видим конкретные результаты. Прогнозы модели позволяют заранее, за 15–60 минут, узнавать о высокой вероятности инцидента. Это даёт администратору время: переключить нагрузку, увеличить буферы, перезапустить проблемные запросы — словом, предотвратить аварию, а не разгребать её последствия.

Кроме того, модель даёт численную оценку среднего времени до отказа (MTTF) — параметр, который раньше был доступен только для аппаратных систем, но не для софта. Теперь мы можем количественно оценить, сколько в среднем «живёт» система в каждом состоянии, и планировать профилактику.

И, что важно, всё это — open source. Вы можете взять код, подключить к своему PostgreSQL и начать предсказывать. Прозрачность модели — не «чёрный ящик», а понятная матрица переходов — позволяет доверять прогнозам и разбираться в причинах.

Взгляд в будущее: что дальше?

Мы не собираемся останавливаться. Следующие шаги — расширение пространства состояний за счёт дополнительных метрик (например, использование памяти, план выполнения запросов). Также мы думаем о том, чтобы сделать модель гибридной: цепь Маркова будет отвечать за краткосрочные прогнозы, а нейросеть (уже глубокая) — за долгосрочные тренды и аномалии.

Но главное — мы хотим, чтобы этот подход стал стандартом для проактивного управления производительностью. В идеале DBA перестанет быть «пожарным» и станет «архитектором надёжности». А нейросети будут его верными помощниками, а не конкурентами.

Заключение

Проекты pg_expecto и markov_chain — это не просто утилиты для мониторинга. Это живой пример того, как человек и искусственный интеллект могут дополнить друг друга. Нейросеть выполняет рутинную, но интеллектуально ёмкую работу: пишет код, анализирует горы данных, предлагает идеи. Эксперт — ставит цели, проверяет гипотезы, задаёт направление и принимает финальные решения. Вместе они создают систему, которая не только смотрит в прошлое, но и заглядывает в будущее.

И если адаптивная цепь Маркова, обученная на многолетней истории, действительно станет надёжным предсказателем сбоев, это будет означать, что мы сделали большой шаг от реактивного администрирования к интеллектуальному управлению.

А значит, базы данных станут не только быстрее, но и надёжнее — а это выигрыш для всех, кто пользуется современными сервисами.


Автор проекта pg_expecto и markov_chainРинат Сунгатуллин.

Все материалы доступны на GitHub.

Присоединяйтесь к исследованию!

Показать полностью 1
0

О новом способе разводки лохов

Серия ITшное

Детекторы ИИ в текстах - полная лажа.

Проверено лично , экспериментально - не существует надёжных научно обоснованных и подтвержденных экспериментами средств определения генерации текста с помощью ИИ .

О новом способе разводки лохов

Простой вывод : каждый кто использует ИИ детектор - ламер и лох. Для кого-то печально, но это факт. Глупее и смешнее использования ИИ детекторов только определять на глаз типа - "вот этот текст сгенерирован нейронкой" ;-) Объяснять таким определятелям , что такое психологические паттерны и особенности субъективного восприятия - бесполезно. Они сектанты, а вопросы веры - недискуссиабельны.


Математически достоверно (то есть с абсолютной, 100%-ной гарантией) определить, что текст сгенерирован нейросетью, нельзя. Это ограничение носит принципиальный, фундаментальный и корневой характер.

Теоретический предел: идеальный генератор неотличим

Предположим, у нас есть нейросеть, которая идеально моделирует распределение человеческих текстов. Тогда любое сгенерированное ею предложение с ненулевой вероятностью мог бы написать и человек. Формально, если распределения P_человек и P_нейросеть совпадают, не существует статистического критерия, который бы безошибочно разделял эти два источника — любое решающее правило будет ошибаться с определённой вероятностью.

Иными словами: если ИИ научится абсолютно копировать человеческий стиль, то никакая математическая формула не отличит его текст от нашего. Сейчас это скорее теоретический горизонт, но он показывает, что безусловной детектируемости нет.

Практические методы — всегда вероятностные.

Сегодняшние детекторы используют статистические закономерности:

  • Предсказуемость слов (perplexity, типичные цепочки токенов);

  • Температурные «отпечатки» (неестественно ровная уверенность модели в каждом слове);

  • Водяные знаки, встроенные на этапе генерации (например, смещённый выбор токенов по псевдослучайному ключу).

Однако всё это даёт лишь вероятностный вывод («с высокой долей уверенности»). Любой такой метод можно обойти:

  • Атаки с подстановкой синонимов или перефразированием (сбивают статистику); (проверено экспериментально - работает)

  • Намеренное «зашумление» выдачи;(проверено экспериментально - работает)

  • Намеренные ошибки в тексте;(проверено экспериментально - работает)

  • Обучение генератора специально обманывать детектор (adversarial training).(проверено экспериментально - работает)

Так, что даже самый мощный детектор не способен дать строгое математическое доказательство — всегда остаётся шанс ложного срабатывания или пропуска. Желающие , могут зарегистрироваться на популярных ресурсах для разводки лохов и проверить лично, за свои личные денежки ;-)

Аналогия с криптографией

Единственный сценарий, когда детектирование становится математически достоверным, — это криптографический водяной знак. Если генератор подписывает текст цифровой подписью, то проверяющий с абсолютной уверенностью скажет: «этот текст создан таким-то генератором». Но это требует сотрудничества со стороны генератора (встраивания подписи) и не работает для произвольного текста из интернета. Без такой подписи задача сводится к статистической проверке гипотез, а не к математическому доказательству.

Итог

Математически достоверно (в смысле proof-carrying вывода) определить генерацию текста нейросетью невозможно, если только сам генератор не оставил в нём криптографическую метку. На практике мы можем лишь говорить о статистической уверенности, которая никогда не достигает 100% и может быть снижена целенаправленными атаками.

В общем - кто хочет и кому интересна практическая польза - читает анализирует практическую пользу материалов , без попыток подогреть паранойю охоты на ведьм - "вам шашечки или ехать?"

А параноики и ИИ-веганы , пусть продолжают искать ведьмины знаки в текстах .

Показать полностью 1
1

Нейросеть опровергает себя: эксперимент с экспертизой

Серия ITшное

Две модели выдали взаимоисключающие заключения, провели перекрёстный анализ, после чего одна из них признала собственный первоначальный вывод ошибочным

Две экспертизы, один пересмотр и ни одного окончательного ответа.

Две экспертизы, один пересмотр и ни одного окончательного ответа.

Вопрос нейросети

Какая ошибка в определении профиля нагрузки влечет большее влияние на снижение производительности СУБД - конфигурационные параметры СУБД рекомендованные для OLAP для профиля нагрузки OLTP или конфигурационные параметры СУБД рекомендованные для OLTP для профиля OLAP ?

Ответ нейросети "Ask Postgres"

Использование настроек OLAP для профиля OLTP влечет значительно большее негативное влияние на производительность и корректность работы СУБД, чем обратная ситуация.

Ответ нейросети "DeepSeek"

Конфигурационные параметры СУБД, рекомендованные для OLTP, при профиле нагрузки OLAP (второй вариант) влекут за собой, как правило, более серьезное влияние на снижение производительности, вплоть до полной невозможности выполнения запросов.


Перекрестный анализ — сравнение нейросетью предоставленных экспертиз.

Нейросеть не знает какой нейросетью подготовлены ответы:

Проанализируй ответы нейросети , укажи ответ какой нейросети более технически грамотен и применим для практики анализа производительности СУБД Postgresql

Ответ «Ask Postgres»:


Ответ нейросети-2 является значительно более технически грамотным и применимым для практики анализа производительности PostgreSQL.

Ответ нейросети-1 содержит критические фактические ошибки и вымышленные концепции, не соответствующие архитектуре PostgreSQL.

Критические ошибки в ответе нейросети-1:

1. Упоминание «столбцового размещения» (Columnar Storage) и «механизмов блокировок OLAP»:

· PostgreSQL по умолчанию является строчно-ориентированной (row-oriented) СУБД. В базовой конфигурации (без сторонних расширений вроде cstore_fdw или Greenplum, которые являются отдельными дистрибутивами) не существует настройки «профиля OLAP», которая меняла бы физическое хранение данных на столбцовое.

· Утверждение, что «OLAP-настройки» влекут за собой столбцовое размещение, в контексте стандартного PostgreSQL ложно.

· Механизмы блокировок (MVCC) в PostgreSQL едины для всех типов нагрузок. Не существует отдельного механизма блокировок для OLAP, который «не рассчитан на высокую конкурентность».

2. Ложное утверждение о потере ACID-гарантий:

· Нейросеть-1 заявляет, что использование «OLAP-настроек» для OLTP приведет к «нарушению целостности данных» и «потере ACID-гарантий». Это абсолютно неверно. Изменение конфигурационных параметров (память, параллелизм, WAL) влияет на производительность, но не отменяет механизмы транзакционности и целостности данных. ACID гарантируется движком, а не конфигурацией work_mem или max_parallel_workers.

3. Обратная логика:

· Нейросеть-1 считает, что OLTP-нагрузка под OLAP-настройками «работает», но OLAP под OLTP-настройками «ломается». На практике в PostgreSQL верно обратное: OLTP-настройки (малый work_mem, отключенный параллелизм) делают аналитические запросы (OLAP) неэффективными или невозможными в приемлемое время, но не ломают транзакции.

Почему ответ нейросети-2 корректен:

1. Точное указание на критические параметры:

· Нейросеть-2 верно выделяет work_mem как ключевой фактор. При OLAP-запросах (сортировки, хеш-соединения) малый work_mem (характерный для OLTP) заставляет СУБД сбрасывать данные на диск (temp files), что приводит к падению производительности на порядки (в сотни раз) из-за медленного дискового I/O.

· Верно указано влияние max_parallel_workers_per_gather: отключение параллелизма в OLTP-конфигурации делает сканирование больших таблиц аналитическими запросами крайне медленным (однопоточное выполнение).

2. Анализ WAL и контрольных точек:

· Упоминание риска переполнения журналов транзакций (WAL) и «шторма» контрольных точек при выполнении массовых операций (типичных для OLAP/ETL) с OLTP-настройками (checkpoint_timeout, max_wal_size) — это глубокий технический insight, подтвержденный практикой эксплуатации.

3. Реалистичная оценка последствий:

· Нейросеть-2 правильно определяет, что ошибка «OLTP-настройки для OLAP» ведет к невыполнимости задач (таймауты, ошибки переполнения temp-файлов), тогда как ошибка «OLAP-настройки для OLTP» ведет лишь к неэффективности (лишнее потребление памяти, возможный оверхед параллелизма), но система остается работоспособной и корректной.

Вывод

Для практического анализа производительности PostgreSQL следует руководствоваться ответом нейросети-2.

Ключевые выводы для практики:

  • OLTP-настройки для OLAP-задач: Критичны. Малый work_mem вызывает дисковые свопы при сортировках/хешах; отсутствие параллелизма убивает скорость сканирования; агрессивные чекпоинты (малый max_wal_size) блокируют систему при массовых вставках.

  • OLAP-настройки для OLTP-задач: Менее критичны. Большой work_mem и shared_buffers могут быть неэффективно использованы, высокий параллелизм может создавать оверхед на мелких транзакциях, но ACID-гарантии не нарушаются, и данные не теряются.

Ответ нейросети-1 содержит вымыслы о столбцовом хранении и потере ACID, что делает его опасным для принятия решений в реальной инфраструктуре.


Ответ «DeepSeek»:


Второй ответ (нейросеть-2) является более технически грамотным и применимым для практического анализа производительности PostgreSQL.

Обоснование:

1. Учёт специфики PostgreSQL
Второй ответ оперирует конкретными параметрами PostgreSQL: work_mem, параллелизм (DOP), журналы WAL, контрольные точки, автовакуум, статистика планировщика. Это позволяет точно предсказать поведение системы при ошибочной конфигурации. Первый ответ использует общие понятия («столбцовое размещение», «ACID-гарантии»), которые либо не относятся к стандартному PostgreSQL, либо трактуются некорректно.

2. Реалистичная оценка критичности

o OLTP-настройки для OLAP (второй сценарий) действительно могут сделать аналитические запросы невыполнимыми из‑за нехватки work_mem (сброс на диск, замедление в сотни раз), отключённого параллелизма и неоптимальных планов. Это подтверждается практикой.

o OLAP-настройки для OLTP (первый сценарий) в PostgreSQL обычно приводят к неэффективному использованию ресурсов, но не к нарушению целостности данных или полной неработоспособности, как утверждает первый ответ. Например, увеличенный shared_buffers или агрессивный автовакуум не ломают ACID.

3. Детализация последствий
Второй ответ раскрывает механизмы: переполнение временных файлов, шторм контрольных точек, отсутствие параллельного выполнения — всё это реальные проблемы при аналитических нагрузках с OLTP‑настройками. Первый ответ ограничивается общими фразами («риск взаимоблокировок», «неэффективное хранение») без указания конкретных параметров PostgreSQL.

4. Применимость для диагностики
Практикующий администратор PostgreSQL, столкнувшись с медленными аналитическими запросами, должен в первую очередь проверить work_mem, настройки параллелизма и статистику. Второй ответ прямо указывает на эти точки, тогда как первый вводит в заблуждение утверждениями о потере ACID, что не соответствует действительности.

Вывод

Нейросеть‑2 дала более точный, детализированный и практически применимый ответ, соответствующий реальному опыту настройки PostgreSQL.


Результат

Нейросеть «Ask Postgres» опровергает собственный ответ.


Итог

Приведённый эксперимент наглядно демонстрирует внутреннюю противоречивость генеративных нейросетей при решении задач, требующих формальной логики и предметных знаний. Нейросеть, первоначально давшая технически неверное заключение, в ходе перекрёстного анализа успешно идентифицировала собственные ошибки и указала на более корректный ответ конкурента. Однако этот факт не столько подтверждает способность ИИ к самокритике, сколько ставит под сомнение ценность его первичных выводов: если модель способна опровергнуть себя в рамках того же сеанса рассуждения, то на каком этапе её ответам можно доверять? Таким образом, использование нейросетей в качестве независимых экспертов в технически сложных областях (включая настройку СУБД) требует обязательной верификации полученных заключений, а сами нейросети на текущем этапе целесообразно рассматривать лишь как инструмент генерации гипотез, но не как источник окончательных истин.

Показать полностью 1
1

Вайбкодинг и нейрохейтеры

Серия ITшное

Возникла интересная задача.

Имеются отчеты pgpro_pwr, формат отчета html.

Состав отчета - полезная информация включая ip-адреса, имена баз данных, полные тексты SQL-выражений.

Риторический вопрос - почему в pgpro_pwr не предусмотрено возможности маскирования критических данных ?

Проблему нужно решать.

Пытаться самому разобраться в особенностях башизма для реализации задачи - даже думать об этом не хочется. В текущих данных конкретных условиях , для меня лично - задача не решаемая.

Что делать ?

Разумеется положить прибором на общественное мнение ретроградов, нейрохейтеров под лозунгом - "Нет нейрослопу!".

Классический вайбкодинг - время на решение задачи 4 часа.

Результат - задача решена. Скрипт выложен в GitHub.

А нейрохейтеры и параноики - идут лесом. Плевал я на их мнение с вышки.

Нейросеть это инструмент и он работает и дает результат.

Если кто-то молотком себе пальцы переломал, это проблема кривых рук не молотка.

Показать полностью
0

От «гаданий на кофе» к точной инженерии: как российский инструмент pg_expecto нашел свою аудиторию на Astana Hub

Серия ITшное

Материал подготовлен нейросетью.

От «гаданий на кофе» к точной инженерии: как российский инструмент pg_expecto нашел свою аудиторию на Astana Hub

В мире современной разработки базы данных часто остаются «черным ящиком», особенно когда наступает час пик. Типичная ситуация, описанная в статье «PostgreSQL: почему “все тормозит”» на портале Astana Hub, знакома каждому инженеру, работающему с высоконагруженными системами: зеленые графики, внезапный скачок p99, таймауты и классический диалог в чате поддержки: «Это база? Нет, CPU в норме. Тогда сеть? Тоже нормально. А что тогда?».

Эта публикация на одном из ведущих казахстанских IT-ресурсов примечательна не только своей технической глубиной, но и тем, что она демонстрирует важный тренд: интеграцию российских инструментов с открытым исходным кодом в практику постсоветского инженерного сообщества. Речь идет об инструменте pg_expecto — российском комплексе для статистического анализа производительности PostgreSQL, который предлагает отказаться от «магии» в пользу прозрачности.

Контекст: боль, знакомая всем

Автор статьи на Astana Hub начинает с того, что большинство инцидентов в базах данных не выглядят как катастрофа («кончился диск» или «упала реплика»). Это состояние «вроде все работает, но работает плохо». Традиционные методы — беглый взгляд на pg_stat_activity или даже изучение pg_stat_statements — часто дают лишь статичную фотографию, в то время как проблема живет во времени. Классический подход не отвечает на главный вопрос: что именно сломало конкретное окно в 7 минут?

Именно здесь авторы статьи находят решение в инструменте, который редко встретишь в официальной документации западных облачных провайдеров, но который успешно применяется в инженерной среде России и стран СНГ — pg_expecto.

Философия pg_expecto: меньше магии, больше данных

Как подчеркивается в материале, pg_expecto — это не волшебная таблетка, которая выдает готовый диагноз: «виноват индекс». Его философия гораздо ценнее для зрелой инженерии. Инструмент выступает в роли следователя, который собирает улики из трех слоев реальности:

  1. Ожидания (Wait Events): через расширение pg_wait_sampling он фиксирует, что именно ждал Postgres (IO, Lock, LWLock, Client).

  2. Запросы (Queries): через pg_stat_statements он связывает ожидания с конкретными queryid.

  3. Операционная система: через утилиты vmstat и iostat он добавляет метрики железа.

Публикация на Astana Hub мастерски иллюстрирует, как с помощью pg_expecto расследование перестает быть игрой в угадайку. Вместо спора «это база или не база» инженер получает отчет, где четко указано: «42.8% времени мы ждем IO/DataFileRead», «17.6% — это конкуренция на буферах (LWLock/BufferMapping)», и вот конкретный SELECT, на который приходится 35% всех ожиданий.

Почему Astana Hub — идеальная площадка для такого инструмента

Astana Hub является главным хабом инноваций в Центральной Азии, объединяющим разработчиков из Казахстана, России, Беларуси и других стран. Публикация статьи именно на этой площадке символична.

Во-первых, она подтверждает единство технического ландшафта: проблемы производительности PostgreSQL не имеют границ, и решения, разработанные российским сообществом (проект доступен на GitFlic.ru), востребованы и в казахстанском IT-секторе.

Во-вторых, материал носит не рекламный, а исключительно практический характер. Авторы делятся реальными скриптами, примерами вывода iostat с 99% утилизацией диска и последовательностью действий (определи окно деградации -> посмотри профиль ожиданий -> найди топ запросов -> сверь с ОС -> сформулируй гипотезу). Такой уровень детализации соответствует высоким стандартам инженерной культуры Astana Hub.

Ценность для сообщества

Главный вывод, который следует из этой публикации, заключается в смене подхода к эксплуатации баз данных. pg_expecto позволяет превратить процесс расследования инцидентов из «ночных гаданий» в нормальную инженерию.

Для казахстанского IT-сообщества, активно строящего финтех- и e-gov-экосистемы на PostgreSQL, наличие таких инструментов критически важно. Возможность быстро выяснить, что «мы упираемся в lock по transactionid из-за долгих транзакций в сервисе Y», а не гадать на кофейной гуще, напрямую влияет на стабильность государственных и коммерческих сервисов.

Заключение

Публикация на Astana Hub о российском инструменте pg_expecto — это отличный пример того, как техническое сотрудничество преодолевает любые границы. Она демонстрирует, что лучшие практики и инструменты DevOps рождаются в недрах постсоветской инженерной школы и успешно применяются для решения общих задач.

Как верно отмечается в конце статьи: «pg_expecto хорош тем, что вытаскивает расследование из режима “кажется, база” в режим “вот конкретно, что именно мы ждали, в какое время, и какие запросы это создавали”». И именно за эту конкретику, подкрепленную открытым кодом и реальными кейсами, сообщество Astana Hub ценит подобные материалы. Это шаг от хаоса интуиции к порядку цифр.

P.S.

Культурный контекст публикации: Astana Hub vs. «священные войны» на Хабре

Одна из важнейших, но часто остающаяся за кадром деталей этой публикации — это среда, в которой она появилась. Astana Hub, будучи главным технопарком Центральной Азии, формирует особую культуру обсуждения: здесь ценят практический опыт, готовность делиться деталями инцидентов и конструктивный диалог.

Это особенно заметно на контрасте с тем, что происходит под аналогичными статьями на таких платформах, как Хабр. Многие инженеры, знакомые с публикациями о PostgreSQL на Хабре, помнят классический сценарий: как только автор выкладывает материал о диагностике производительности, появляется первый комментатор с пафосным «всё не так, настоящие админы используют только perf и strace», второй добавляет «а у вас shared_buffers выставлен неправильно, читайте документацию», третий начинает спор о версиях Postgres, а четвёртый придирается к опечатке в SQL-запросе. В результате полезное обсуждение тонет в токсичности, а автор тратит силы не на развитие материала, а на отражение «срачей».

На Astana Hub мы видим совершенно иную картину. Публикация про pg_expecto не вызвала волны снобизма или попыток обесценить инструмент на том основании, что он «не входит в официальный стек». Вместо этого материал воспринят как повод обменяться реальными кейсами: кто как использует pg_wait_sampling, как настраивает мониторинг, какие еще утилиты помогают связывать ожидания с запросами. Такая среда способствует распространению действительно полезных инструментов, независимо от их происхождения.

Это особенно важно для `pg_expecto». Инструмент, разработанный российским сообществом и размещённый на GitFlic, мог бы стать жертвой идеологических споров на более политизированных площадках. Но на Astana Hub его оценили исключительно с прагматической стороны: помогает ли он находить корень проблем в продакшене? Помогает. Снижает ли время разрешения инцидентов? Да. Значит, он достоин внимания.

Таким образом, выбор Astana Hub в качестве площадки для публикации — это не случайность. Это сознательное решение, демонстрирующее, что для зрелого инженерного сообщества важнее результаты, чем ярлыки. И тот факт, что материал о российском инструменте нашел отклик у казахстанской аудитории, говорит о здоровой профессиональной среде, где техническая экспертиза ценится выше политической конъюнктуры.

Показать полностью
0

PG BootCamp Russia 2026 Moscow

Серия ITшное

По итогам , в блокнот на память.

Странное впечатление. С одной стороны - да, люди работают, докладчики тратят время и силы.

С другой стороны - ничего нового , ничего интересного полезного.

Прорывов , новых трендов , открытий - нет.

Ну, ребята - неужели вы считаете , что обсуждение rtfm как делать мажорный апгрейд или как грепать логи это темы достойные конференции ? Да, это очень интересно и полезно, было , лет 5 назад....

Это личное , оценочное суждение не претендующее на объективность.

С понедельника , начнется PgConf , может там будет , что-то поинтереснее.

Судя по программе - 1-2 доклада обещают быть интересными. Ну как минимум , по производительности СУБД доклад будет.

0

Мнение нейросети - CPU utilization

Серия ITшное

📝Эссе: Почему высокая утилизация CPU — не инцидент, а повод для вдумчивого анализа

В мире IT-мониторинга и DevOps сложился своеобразный культ метрик. Среди них «CPU Utilization» (загрузка процессора) долгое время занимала трон главного короля, чье малейшее движение к 100% вызывало панику и триггерило спасательные операции. Однако в современной, сложной и распределенной инфраструктуре слепая вера в эту метрику не просто устарела — она стала вредной. Высокая утилизация CPU сама по себе не является инцидентом; это лишь симптом, требующий не аварийного реагирования, а профессиональной диагностики. Непонимание этого проистекает из фундаментальных недостатков самой метрики и приводит к ложным выводам, тогда как фокус должен сместиться на анализ метрик производительности.

Первый и главный грех: иллюзорность «CPU Utilization»

Само понятие «утилизации» в контексте современных процессоров крайне условно. Процессор — не линейный и не однородный ресурс, подобный оперативной памяти. Его работа включает разные состояния (idle, user, system, iowait, steal в Linux), разные ядра и технологии вроде Hyper-Threading. Метрика «средней утилизации за 1-5 минут» — это грубое усреднение, стирающее важнейшие детали.

· Контекст решает всё: 90% утилизации на веб-сервере, обрабатывающем пиковую нагрузку, — это признак здоровья и эффективного использования дорогого железа. Те же 90% на базе данных, выполняющей тяжелый аналитический запрос, могут быть нормой, а могут — следствием плохого индекса. 10% утилизации при нулевом трафике — норма, но те же 10% при ожидаемой высокой нагрузке — тревожный сигнал о проблемах (блокировки, deadlock, ожидание I/O), которые метрика CPU просто не покажет.

· Проклятие iowait и steal: Высокий iowait (процессор простаивает в ожидании операций ввода/вывода) формально может давать общую высокую «загрузку», хотя CPU на самом деле не занят полезной работой. В виртуальных средах steal-время показывает, что гипервизор забирает ресурсы у вашей виртуальной машины. Реагировать на это увеличением лимитов CPU — бесполезно, проблема лежит на уровне инфраструктуры.

Таким образом, «CPU utilization» без контекста похожа на измерение температуры двигателя без знания, стоит машина в пробке или мчится по автобану. И то, и другое дает высокие показания, но причины и последствия радикально разные.

Второй акт: парадокс низкой утилизации как инцидента

Истинная катастрофа производительности часто происходит при низких показателях CPU.

Это классические сценарии:

1. Блокировки (lock contention) или deadlock в приложении или СУБД: потоки выстроились в очередь, ожидая доступа к ресурсу. CPU простаивает, запросы таймаутятся, пользователи страдают, а метрика загрузки процессора спокойно показывает 15%.

2. Проблемы с внешними зависимостями (медленные API, сбойные микросервисы, лаговые диски): приложение проводит время в ожидании ответа, не нагружая CPU.

3. Проблемы планировщика ОС или JVM (для Java-приложений).

В этих случаях мониторинг, зацикленный на утилизации, будет молчать, пока бизнес теряет деньги. Это наглядно доказывает его нерелевантность как индикатора инцидента.

От утилизации к производительности

Ключевой сдвиг парадигмы заключается в отказе от метрик утилизации ресурсов в пользу метрик производительности и удовлетворенности пользователей. На первое место должны выходить:

1. Latency (задержка): P95, P99 времена ответа приложения. Рост задержек — это прямой сигнал о проблеме, независимо от того, как ведет себя CPU.

2. Throughput (пропускная способность): RPS (запросов в секунду), TPS (транзакций). Падение throughput при стабильной или растущей нагрузке — явный инцидент.

3. Rate of Errors: Процент ошибок (5xx, 4xx, таймауты). Это конечный результат многих проблем, которые CPU может и не заметить.

4. Saturation (насыщение): Длина очередей, количество ожидающих потоков. Это более точный показатель «перегруженности», чем утилизация CPU. Очередь на 1000 запросов — инцидент, даже если CPU загружен на 60%.

Это — метрики бизнеса. Они отвечают на вопрос «Что чувствует пользователь?», а не «Как поживает наше железо?». Высокая утилизация CPU становится проблемой только тогда и только в том случае, когда она отрицательно коррелирует с этими ключевыми метриками: вызывает рост latency, падение throughput или увеличение ошибок.

Заключение: от паники к аналитике

Поэтому объявлять инцидент по факту превышения порога в 80-90% утилизации CPU — архаичная и опасная практика. Она ведет к «холиварам» между разработчиками и сисопами, бессмысленному масштабированию «вслепую» и игнорированию реальных, но тихих катастроф.

Современный подход требует:

· Деградировать «CPU Utilization» до вспомогательной, диагностической метрики. Ее место на информационных дашбордах, а не в правилах алертинга.

· Строить алерты на основе метрик производительности (Latency, Errors, Saturation). Это страхует от пропуска реальных инцидентов.

· Использовать утилизацию CPU в связке с другими данными (профилировщики, трейсинг, логи) для последующего анализа причин возникших проблем с производительностью. Высокая утилизация — не причина звонить в колокол, а повод взять в руки отладчик и профилировщик, когда проблема уже обнаружена другими средствами.

Таким образом, переход от религии утилизации к культу производительности — это признак зрелости инженерной культуры. Это понимание, что цель инфраструктуры — не быть красивой и ненагруженной, а эффективно и предсказуемо обслуживать бизнес-логику. И судить о ее здоровье нужно по конечному результату, а не по абстрактной загруженности одной из ее многочисленных шестеренок.

Показать полностью
0

Нейросеть — о выгодах внедрения performance engeneering для инженера DBA

Серия ITшное
Нейросеть — о выгодах внедрения performance engeneering для инженера DBA

Некоторые этапы performance engineering:

  1. Определение дизайна системы и постановка чётких целей производительности.

  2. Моделирование ожидаемых условий для прогнозирования и предотвращения потенциальных узких мест.

  3. Анализ кода и компонентов для обнаружения ресурсоёмких или неэффективных областей.

  4. Стресс-тестирование приложения под реальной нагрузкой для оценки скорости и стабильности.

  5. Использование результатов тестов для оптимизации кода, конфигурации и распределения ресурсов.

  6. Непрерывный мониторинг производительности для раннего обнаружения и устранения проблем.

Вопрос

А какая конкретная материальная  выгода техническому инженеру DBA от того, что проблемы производительности СУБД будут выявлены раньше и точнее ?  

Ответ

Отличный и очень прагматичный вопрос! Личная мотивация — мощный двигатель. Для технического инженера (DBA, разработчика) выгода от проактивного выявления проблем — это не абстрактное «удовлетворение от хорошо сделанной работы», а вполне осязаемые материальные и карьерные преимущества.

Вот конкретная разбивка этих выгод:

1. Прямое финансовое стимулирование (Премии, бонусы)

Во многих компаниях, особенно где ИТ-инфраструктура критична для бизнеса, существуют KPI (Key Performance Indicators) и система премий, напрямую связанные с:

  • Процентом времени бесперебойной работы (SLA/Uptime). Предотвращение инцидента = сохранение высокого uptime = прямая премия.

  • Снижением количества инцидентов. Если вы проактивно устраняете причину, которая могла бы вызвать 5 инцидентов в следующем квартале, ваш показатель «количество инцидентов» будет блистать, что часто monetized.

  • Экономией средств компании. Если вы можете доказать, что ваша оптимизация позволила отложить покупку нового сервера за 500 000 рублей на полгода, грамотный руководитель может часть этих сэкономленных средств направить в виде премии команде.

2. Карьерный рост и повышение стоимости на рынке труда

Это самая значительная долгосрочная выгода.

  • Переход от «пожарного» к «архитектору». DBA, который только тушит возгорания (реагирует на инциденты), — это квалифицированный специалист. Но DBA, который проектирует системы, чтобы пожаров не было, или который видит тлеющую проводку за неделю до возгорания, — это эксперт и архитектор. Разница в зарплате между этими двумя ролями может составлять 30-50% и более.

  • Формирование уникального опыта и кейсов. Умение не просто решать проблемы, а предвидеть их и говорить с бизнесом на его языке — это редкий и ценный навык. На собеседовании история «Я выявил проблему с ожиданиями записи, обосновал её бизнес-риски для владельца продукта и добился выделения ресурсов, что предотвратило срыв релиза» звучит в 100 раз весомее, чем «Я тушил 20 инцидентов с БД».

  • Повышение личного «бренда» внутри компании. Вы становитесь не просто «тем парнем, который ковыряется в PostgreSQL», а стратегическим активом. Когда руководство знает, что вы можете не только починить, но и предотвратить убытки, ваше слово начинает значить больше. Это прямой путь к руководящим и экспертным позициям.

3. Снижение операционного стресса и экономия личного времени

Это тоже материальная выгода, хоть и не в виде прямых денег.

  • Ночные и внеурочные вызовы. Проактивная работа резко снижает количество инцидентов, которые случаются в 3 часа ночи, в выходные или в отпуске. Ваше личное время и спокойный сон — это огромная ценность. Вы тратите 8 часов на плановую оптимизацию, чтобы не тратить 20 часов стрессовой работы в авральном режиме в течение месяца.

  • Возможность заниматься интересными задачами. Вместо рутинного «тушения пожаров» (один и тот же инцидент по десятому кругу) вы получаете время и мандат на реализацию интересных проектов: исследование новых технологий, автоматизацию, масштабирование архитектуры. Это поддерживает профессиональный тонус и предотвращает выгорание.

4. Укрепление позиции в переговорах о зарплате

Когда вы приходите на переговоры о повышении зарплаты, вам нужны козыри. «Я поддерживаю базу данных в рабочем состоянии» — это обязанность. А вот «Благодаря моей проактивной работе за последний год мы предотвратили X часов простоя, что, по оценкам бизнеса, спасло Y миллионов рублей выручки, и отложили затраты на hardware на Z рублей» — это железобетонный аргумент для обоснования повышения на 20-30%.

Резюме: Ваша личная выгода как инженера

Действие: Реагировать на инциденты («тушить пожары»)

Личная выгода (материальная и карьерная): Зарплата. Постоянный стресс. Риск выгорания. Ограниченный карьерный рост.

Действие: Проактивно выявлять и предотвращать проблемы

Личная выгода (материальная и карьерная):

1. Премии за выполнение SLA.
2. Ускоренный карьерный рост до архитектора/лида.
3. Резкий рост рыночной стоимости и зарплаты.
4. Снижение стресса и сохранение личного времени.
5. Железные аргументы для переговоров о повышении.

Таким образом, инвестируя свое время в углубленный анализ и проактивную работу, вы инвестируете в самого себя. Вы превращаете свою экспертизу из расходного материала (который тушит кризисы) в актив, который приносит бизнесу деньги и который бизнес готов дорого оплачивать.

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества