Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в захватывающий шутер!

FRAGEN

Шутер, Экшены, Шутер от первого лица

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
kznalp
kznalp
1 месяц назад
Postgres DBA
Серия ITшное

Про агрессивный автовакуум PostgreSQL⁠⁠

По агрессивному автовакууму , предварительно , чудес не бывает - за повышение производительности при средней нагрузке придётся платить снижением производительности при нагрузке близкой к максимальной.
Если autovacuum worker работает постоянно(а при высокой нагрузке иначе нет смысла), ресурсы CPU кончаются раньше .
Обслуживание СУБД требует ресурсов .
Но , конечно можно и не обслуживать , работает же. А +/- 5-10% изменения производительности СУБД современные приложения и не заметят.

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


P.S. Так выглядит агрессивный автовакуум PostgreSQL - по мнению нейросети 🤪

Про агрессивный автовакуум PostgreSQL Субд, Postgresql, Настройка, Тестирование, Тюнинг, Текст
[моё] Субд Postgresql Настройка Тестирование Тюнинг Текст
14
2
kznalp
kznalp
2 месяца назад
Серия ITшное

Использование нейросети - не делает из продюсера и геймдизайнера - инженера DBA⁠⁠

В продолжении Интересно - будет ли ответ на прямой вопрос на Хабре?

Ответ в комментариях

По результатам нескольких независимых исследований было установлено количественное влияние изменения fillfactor на производительность PostgreSQL при массовых UPDATE операциях.


Для снижения fillfactor на 50% (с 100% до 50%):
Основываясь на исследованиях, можно ожидать:

  • Улучшение производительности UPDATE на 50-70%

  • Увеличение потребления места на диске вдвое

  • Снижение производительности SELECT на 20-30% из-за большего количества страниц


https://habr.com/ru/companies/otus/articles/923648/#comment_28526716

Ссылки на источники конечно можно

  1. https://www.cybertec-postgresql.com/en/what-is-fillfactor-and-how-does-it-affect-postgresql-performance/

  2. https://www.razsamuel.com/understanding-hot-updates-in-postgresql-a-benchmark-analysis/

  3. https://learn.microsoft.com/en-us/sql/relational-databases/indexes/specify-fill-factor-for-an-index?view=sql-server-ver17

  4. https://habr.com/ru/companies/otus/articles/905882/

  5. https://stackoverflow.com/questions/69601803/tuning-fillfactor-for-high-update-tables-in-postgres-13

  6. https://www.geeksforgeeks.org/sql/sql-fill-factor-and-performance/

  7. https://dba.stackexchange.com/questions/56735/postgresql-when-should-i-use-fillfactor-100-for-tables-on-ssd

  8. https://www.sqlshack.com/sql-server-index-fill-factor-with-performance-benchmark/

Пруфы : https://habr.com/ru/companies/otus/articles/923648/#comment_28526804

Очень большое подозрение - ответ сгенерирован нейросетью.

Самый главный вопрос по пруфам - как меняется нагрузка на СУБД ? Надо внимательнее поизучать.

Итак теперь самое интересное , можно сравнить с собственными результатами:

Для UPDATE


Для данной СУБД , при использовании сценария "Update only", уменьшение значения параметра fillfactor с 100 до 50 дает прирост производительности СУБД:

  • При нагрузке от 5 до 115 соединений : от -2 до 17%

  • При нормальной нагрузке(5-22 соединения): от 7 до 16%

PG_HAZEL : Влияние уменьшения параметра fillfactor на производительность СУБД PostgreSQL при сценарии "Update only"


Для смешанной нагрузки


Для данной СУБД , при использовании сценария смешанной нагрузки "Mix", уменьшение значения параметра fillfactor с 100 до 50 дает прирост производительности СУБД:

  • При нагрузке от 5 до 115 соединений : от -6 до 9%

  • При нормальной нагрузке(5-22 соединения): от 0 до 9%

PG_HAZEL : Влияние уменьшения параметра fillfactor на производительность СУБД PostgreSQL


Разница в результатах - очень значительная.

Нужно внимательнее изучить постановку экспериментов в "независимых исследованиях".


  1. What is fillfactor and how does it affect PostgreSQL performance?

07.2020

Pgbench: scales 1000/2500/10000, 12h runtime for each scale / FF combination, 2 concurrent sessions.

2 сессии - это не серьезно . Тут анализировать нечего.


2. Optimizing PostgreSQL Updates with HOT and Fillfactor

March 10, 2025

For our benchmark, we created a table with 7 columns, three indexes, and 1,000,000 rows. We then updated 30% of the rows and measured the update performance across different fillfactor settings.

Синтетический тест самописным бенчмарком не используя pgbench. Тут анализировать нечего.


3. Specify Fill Factor for an Index

Блин - мелкомягкий каким боком оказался ?

Тут анализировать нечего.


4. Зачем нужен fillfactor в PostgreSQL

Змея укусила себя за хвост . В комментарии на статью приводится исходная статья. Забавно.

Тут анализировать нечего.


5. HOT and FILLFACTOR Results

Синтетический тест самописным бенчмарком не используя pgbench. Тут анализировать нечего.


6. SQL Fill Factor and Performance

Блин - мелкомягкий каким боком оказался ?

Тут анализировать нечего.


7. PostgreSQL: When should I use fillfactor < 100 for tables on SSD?

Описание бенчмарка - отсутствует.

Тут анализировать нечего.


8. https://www.sqlshack.com/sql-server-index-fill-factor-with-performance-benchmark/

403 - Forbidden


Итог

Комментарий на Хабре :

https://habr.com/ru/companies/otus/articles/923648/#comment_28526716

Сгенерирован нейросетью и никакой практической пользы для инженеров DBA - не представляет.

Использование нейросети - не делает из продюсера и геймдизайнера - инженера DBA Субд, Postgresql, Тестирование, Habr, Длиннопост, Нейронные сети

Пользование нейросетями - не делает тебя инженером DBA

Студентам втюхать курсовой , да вполне подойдет - картинки красивые и ссылок много.

Инженерам - для работы - только время тратить.

Чуда не произошло. Хабр и хабровчане не удивили.

Как обычно - спрашивать и ожидать полезный ответ на хабре - только время зря терять.

Показать полностью 1
[моё] Субд Postgresql Тестирование Habr Длиннопост Нейронные сети
3
4
kznalp
kznalp
2 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

Базовый расчет конфигурационных параметров управления памятью для обслуживания СУБД PostgreSQL⁠⁠

Взято с основного технического канала Postgres DBA

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

Чтобы избежать ситуации - "что-то с памятью моей стало".

Задача

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

shared_buffers

Задаёт объём памяти, который будет использовать сервер баз данных для буферов в разделяемой памяти.

Если вы используете выделенный сервер с объёмом ОЗУ 1 ГБ и более, разумным начальным значением shared_buffers будет 25% от объёма памяти. Существуют варианты нагрузки, при которых эффективны будут и ещё большие значения shared_buffers, но так как Postgres Pro использует и кеш операционной системы, выделять для shared_buffers более 40% ОЗУ вряд ли будет полезно.

maintenance_work_mem

Задаёт максимальный объём памяти для операций обслуживания БД, в частности VACUUM, CREATE INDEX и ALTER TABLE ADD FOREIGN KEY.

autovacuum_work_mem

Задаёт максимальный объём памяти, который будет использовать каждый рабочий процесс автоочистки.

shared_buffers

40% от размера RAM.

PG_HAZEL : Влияние на производительность и характерные ожидания СУБД увеличения shared_buffers c 25 до 50% от размера RAM.

maintenance_work_mem

10% от размера RAM

Как рассчитать значение maintenance_work_mem для заданного количества мертвых строк

autovacuum_work_mem

1. Настроить параметра autovacuum для больших таблиц (~ более 1M строк)

autovacuum_vacuum_scale_factor = 0

autovacuum_analyze_scale_factor = 0

autovacuum_vacuum_insert_scale_factor = 0

autovacuum_vacuum_threshhold = 100000

autovacuum_analyze_threshhold = 100000

autovacuum_vacuum_insert_threshold = 100000

2. Установить autovacuum_max_workers

autovacuum_max_workers = 10

Тонкая настройка параметров autovacuum/autoanalyze(naptime, cost_delay) - будет рассмотрена позднее.

3. Установить значение autovacuum_work_mem

autovacuum_work_mem = 100000 * 6 * 1.2 ~ 1MB

Как рассчитать значение maintenance_work_mem для заданного количества мертвых строк

Базовый расчет памяти для обслуживания СУБД

shared_buffers + maintenance_work_mem + (autovacuum_work_mem * autovacuum_max_workers )

Пример :

RAM = 2GB

autovacuum_max_workers = 4

shared_buffers + maintenance_work_mem + (autovacuum_work_mem * autovacuum_max_workers ) = 1020 MB (~49%RAM).

Показать полностью
[моё] Субд Postgresql Настройки
2
3
kznalp
kznalp
2 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

PostgreSQL : autovacuum_vacuum_scale_factor или autovacuum_vacuum_threshold ?⁠⁠

Взято с основного технического канала Postgres DBA

PostgreSQL : autovacuum_vacuum_scale_factor или autovacuum_vacuum_threshold ? Нейронные сети, DeepSeek, Субд, Postgresql, Настройка, Оптимизация, Яндекс Дзен (ссылка), Длиннопост

Немного тонкой настройки и СУБД будет работать как часы.

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

Какой параметр для настройки автовакуума для СУБД PostgreSQL эффективнее использовать для очень больших таблиц : autovacuum_vacuum_scale_factor или autovacuum_vacuum_threshold ?

Ответ DeepSeek:

Для очень больших таблиц в PostgreSQL эффективнее использовать параметр autovacuum_vacuum_threshold, а не autovacuum_vacuum_scale_factor. Вот обоснование:

Проблема autovacuum_vacuum_scale_factor для больших таблиц:

  1. Масштабируемость:
    Формула запуска автовакуума:
    autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor * table_size.
    По умолчанию: threshold = 50, scale_factor = 0.2 (20%).
    Для таблицы на 1 млрд строк порог срабатывания:
    50 + 0.2 * 1 000 000 000 = 200 000 050 мертвых кортежей.
    Это приводит к редким запускам и накоплению огромного числа мертвых кортежей.

  2. Риски:
    Замедление запросов: Длинные таблицы (из-за мертвых кортежей) снижают производительность.
    Блокировки: Очистка большого объема данных блокирует операции.
    Срыв транзакций: Если autovacuum не успевает очищать данные до заполнения autovacuum_freeze_max_age.

Почему autovacuum_vacuum_threshold эффективнее?

  • Фиксированный порог:
    Позволяет задать абсолютное число мертвых кортежей для запуска (независимо от размера таблицы).
    Пример: ALTER TABLE big_table SET (autovacuum_vacuum_threshold = 1000000);
    Автовакуум запустится при достижении 1 млн мертвых кортежей, даже если таблица содержит 1 млрд строк.

  • Гранулярность:
    Настройка применяется индивидуально к большим таблицам без влияния на маленькие.
    Оптимальные значения: от 100 000 до 10 000 000 (зависит от нагрузки и размера).

Рекомендуемая стратегия:

1. Уменьшить scale_factor:

ALTER TABLE big_table SET (autovacuum_vacuum_scale_factor = 0.01); -- 1%

Для таблицы на 1 млрд строк порог: 50 + 0.01 * 1e9 = 10 000 050.

2. Увеличить threshold:

ALTER TABLE big_table SET (autovacuum_vacuum_threshold = 1000000);

Порог: 1 000 000 (фиксированный, без умножения на размер).

3.Комбинировать параметры:

ALTER TABLE big_table SET (autovacuum_vacuum_scale_factor = 0.005, -- 0.5%autovacuum_vacuum_threshold = 500000);

Формула: 500 000 + 0.005 * N.

Дополнительные настройки:

  • autovacuum_vacuum_cost_limit (увеличить для ускорения):

ALTER TABLE big_table SET (autovacuum_vacuum_cost_limit = 2000); -- вместо 200 по умолчанию

autovacuum_naptime (уменьшить интервал проверок).

Итог:

Для очень больших таблиц:

  • Основной параметр: autovacuum_vacuum_threshold (фиксированный порог).

  • Вспомогательный: autovacuum_vacuum_scale_factor (уменьшать до 0.1–0.5%).

  • Настраивать индивидуально для таблицы через ALTER TABLE.

  • Мониторить эффективность через представление pg_stat_user_tables (столбцы n_dead_tup и last_autovacuum).

Практическая проверка рекомендации нейросети

PG_HAZEL : Влияние настроек автовакуума таблицы на производительность СУБД

Показать полностью
Нейронные сети DeepSeek Субд Postgresql Настройка Оптимизация Яндекс Дзен (ссылка) Длиннопост
0
5
kznalp
kznalp
2 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

PG_HAZEL : Методология нагрузочного тестирования⁠⁠

Взято с основного технического канала Postgres DBA

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

До финиша, сложно предсказать результат. Нужны тесты.

Задача

Провести тестирование методологии для оценки влияния оптимизации конфигурационных параметров СУБД на производительность СУБД.

Общий алгоритм действий и постановка эксперимента

  1. Тестовый прогон нагрузочного тестирования по сценарию смешанной нагрузки с целью определения базовых показателей производительности, характерных ожиданий и нагрузки на СУБД соответствующей максимальной производительности (N_BASE) .

  2. Изменение значений конфигурационных параметров. Нагрузочное тестирование с минимальной нагрузки до нагрузки N_BASE.

  3. Сравнительный анализ изменения производительности и характерных ожиданий СУБД.

Конфигурация виртуальной машины

  • CPU = 2

  • RAM = 1GB

  • Postgres Pro (enterprise certified) 15

  • Размер тестовой БД = 10GB

Эксперимент-1 : Тестовый прогон при базовых значениях конфигурационных параметров

shared_preload_libraries = 'pg_wait_sampling, pgpro_stats'

wipe_file_on_delete = 'off'

wipe_xlog_on_free = 'off'

wipe_heaptuple_on_delete = 'off'

wipe_memctx_on_free = 'off'

wipe_mem_on_free = 'off'

track_io_timing = 'on'

listen_addresses = '0.0.0.0'

logging_collector = 'on'

log_directory = '/log/pg_log'

log_destination = 'stderr'

log_rotation_size = '0'

log_rotation_age = '1d'

log_filename = 'name.postgresql-%u.log'

log_line_prefix = '%m| %d| %a| %u| %h| %p| %e| '

log_truncate_on_rotation = 'on'

log_checkpoints = 'on'

archive_mode = 'on'

archive_command = 'true'

max_connections = '1000'

log_connections = 'on'

log_disconnections = 'on'

Операционная скорость

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Ось X - Нагрузка на СУБД. Ось Y - операционная скорость.

Нагрузка, соответствующая максимальной производительности (N_BASE) = 26

Эксперимент-2 : Оптимизация конфигурационных параметров - проход 1

Измененные параметры

random_page_cost = '1.1'

effective_io_concurrency = '300'

autovacuum_max_workers = '2'

autovacuum_work_mem = '256MB'

vacuum_cost_limit = '4000'

shared_buffers = '512MB'

effective_cache_size = '1536MB'

maintenance_work_mem = '128MB'

max_parallel_workers = '2'

max_parallel_workers_per_gather = '2'

wal_level = 'minimal'

max_wal_senders = '0'

Эксперимент-2 : Оптимизация конфигурационных параметров - проход 2

Измененные параметры

shared_buffers = '819MB'

checkpoint_timeout = '60'

\c test_pgbench_custom

ALTER TABLE pgbench_accounts SET (fillfactor = 50);

ALTER TABLE pgbench_tellers SET (fillfactor = 50);

ALTER TABLE pgbench_branches SET (fillfactor = 50);

VACUUM FULL pgbench_branches ;

VACUUM FULL pgbench_tellers ;

VACUUM FULL pgbench_accounts ;

Сравнительный анализ изменений производительности и характерных ожиданий СУБД

Операционная скорость

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Ось X - нагрузка на СУБД. Ось Y - операционная скорость

Прирост скорости в эксперименте-1 по сравнению с базовыми показателями составил до 3.4% , в среднем 1.9%.

Прирост скорости в эксперименте-2 по сравнению с базовыми показателями составил до 4.7% , в среднем 2.3%.

Корреляция и абсолютные значения ожиданий СУБД

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Корреляция ожидания СУБД - практически не изменилась

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Абсолютные значения ожиданий IO - несколько снизились, LWLock - существенно снизились.

Ожидания типа IO

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения. Ось Y - количество ожидания типа IO.

Снижение ожиданий типа IO в эксперименте-1 по сравнению с базовыми значениями составило до -5.7% , в среднем -2.8%.

Снижение ожиданий типа IO в эксперименте-2 по сравнению с базовыми значениями составило до -11.3% , в среднем -4.4%.

Ожидания типа LWLock

PG_HAZEL : Методология нагрузочного тестирования Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения. Ось Y - количество ожидания типа LWLock.

Снижение ожиданий типа LWLock в эксперименте-1 по сравнению с базовыми значениями составило до -40.5% , в среднем -7.7%.

Снижение ожиданий типа LWLock в эксперименте-2 по сравнению с базовыми значениями составило до -66.7% , в среднем -54.3%.

Итог

Для данной СУБД для сценария синтетической нагрузки оптимальными значениями конфигурационных параметров СУБД и хранения таблиц являются:

random_page_cost = '1.1'

effective_io_concurrency = '300'

autovacuum_max_workers = '2'

autovacuum_work_mem = '256MB'

vacuum_cost_limit = '4000'

effective_cache_size = '1536MB'

maintenance_work_mem = '128MB'

max_parallel_workers = '2'

max_parallel_workers_per_gather = '2'

wal_level = 'minimal'

max_wal_senders = '0'

shared_buffers = '819MB'

checkpoint_timeout = '60'

fillfactor = 50

При необходимости тонкая настройка конфигурации СУБД и параметров хранения таблиц - может быть продолжена .

Показать полностью 6
[моё] Субд Postgresql Тестирование Длиннопост
0
1
kznalp
kznalp
2 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

Сеанс разоблачения магии нейросетей⁠⁠

Сеанс разоблачения магии нейросетей Нейронные сети, Исследования, Субд, Postgresql, DeepSeek, Яндекс Дзен (ссылка), Длиннопост

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

Какие типы ожидания wait_event_type будут иметь наибольшую корреляцию со снижением производительности СУБД PostgreSQL при выполнении UPDATE для виртуальной машины CPU = 2 и RAM = 2GB при росте нагрузки с 5 до 115 одновременных соединений ?

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

При анализе корреляции между типами ожиданий (wait_event_type) в PostgreSQL и снижением производительности во время UPDATE на слабой ВМ (2 vCPU, 2 ГБ RAM) при росте нагрузки с 5 до 115 соединений, наибольшую корреляцию будут иметь следующие типы ожиданий, ранжированные по степени влияния:


1. LWLock (Lightweight Locks)

  • Почему корреляция высокая:

    • На слабых ВМ (особенно с 2 vCPU) нехватка CPU усиливает конкуренцию за системные ресурсы.

    • LWLock защищает внутренние структуры данных (буферы, память, lock-менеджер). При высокой нагрузке (115 соединений) процессы блокируются в очередях на эти ресурсы.

    • Подтипы buffer_content, buffer_mapping, lock_manager будут доминировать из-за частого доступа к буферам и блокировкам.

  • Связь с производительностью: Прямая корреляция с ростом времени ожидания и снижением TPS (transactions per second).


  • 2. Lock (Транзакционные блокировки)

    • Почему корреляция высокая:

      • UPDATE вызывает эксклюзивные блокировки строк (ROW SHARE/EXCLUSIVE).

      • При 115 соединениях конкуренция за одни строки/таблицы резко возрастает → частые ожидания снятия блокировок.

      • Нехватка RAM (2 ГБ) уменьшает эффективность work_mem → транзакции дольше удерживают блокировки.

    • Ключевые подтипы: transactionid, tuple (блокировки кортежей).

    3. IO (Ввод/вывод)

    • Почему корреляция высокая:

      • Мало RAM → буферный кеш перегружен → частые чтения с диска (read I/O).

      • UPDATE генерирует WAL-записи → нагрузка на write I/O.

      • На ВМ без SSD дисков латентность I/O резко снижает производительность.

    • Подтипы: DataFileRead (чтение данных), WALWrite (запись журнала).


4. BufferPin

  • Почему корреляция средняя:

    • Возникает при ожидании доступа к буферу данных, удерживаемому другим процессом.

    • Усиливается при нехватке RAM и высокой конкуренции за буферы.

    • Менее критичен, чем LWLock/Lock, но значим при массовых UPDATE.

Итог:
Наибольший вклад в снижение производительности внесут LWLock и Lock из-за нехватки CPU/RAM и высокой конкуренции. IO станет критичным при исчерпании буферного кеша.


Как обстоит ситуация в реальности :

Результаты

Для данного сценария "Update only"и данной конфигурации СУБД характерными значениями корреляции между ожиданиями СУБД и типами ожиданий , являются :

  • IO : сильная отрицательная корреляция , влияние ожиданий типа IO на производительность СУБД отсутствует.

  • IPC : ожидания практически отсутствуют, влияние на производительность СУБД отсутствует.

  • Lock : очень сильная прямая корреляция, сильное влияние ожиданий типа Lock на снижение производительности СУБД .

  • LWLock : слабая отрицательная корреляция , влияние ожиданий типа LWLock на производительность СУБД отсутствует.

Подробности :

PG_HAZEL : Характерные ожидания при выполнении сценария "UPDATE ONLY"


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

Показать полностью 1
[моё] Нейронные сети Исследования Субд Postgresql DeepSeek Яндекс Дзен (ссылка) Длиннопост
7
kznalp
kznalp
2 месяца назад
Серия ITшное

Игры с нейросетями - YandexGPT⁠⁠

Какие события ожидания(wait_event) СУБД PostgreSQL характерны при предельной утилизации CPU ?


Ответ YandexGPT

При высокой утилизации CPU в PostgreSQL наблюдаются следующие характерные события ожидания (wait_event):

ProcArray - ожидание при обращении к общим структурам данных в рамках процесса. Возникает, например, при получении снимка или чтении идентификатора транзакции в сеансе.

LockManager - ожидание при чтении или изменении информации о «тяжёлых» блокировках.

Важно отметить, что при нехватке вычислительных ресурсов CPU наблюдается сильная корреляция между снижением операционной скорости СУБД и ростом ожиданий типа ProcArray. Это является характерным признаком того, что система испытывает дефицит процессорных ресурсов.

Также при высокой утилизации CPU наблюдается сильная корреляция между ожиданиями и ожиданиями типа LWLock, что указывает на то, что большинство возникающих ожиданий связано именно с этим типом блокировок.


Забавное , или интересное в ответе нейросети YandexGPT в том, что , я точно знаю откуда взята данная цитата :
https://dzen.ru/a/Z_decDLxQCTdLsJ2

Тщеславие - мой самый любимый грех ;-)


Показать полностью
[моё] Субд Postgresql Нейронные сети Яндекс Яндекс Дзен (ссылка)
0
kznalp
kznalp
2 месяца назад
Серия ITшное

Продолжение игр с нейросетями⁠⁠

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

Как большое количество мертвых строк влияет на время выполнения select ?

Из ответа нейросети

Основные причины влияния мертвых строк на SELECT:
...
2. Ухудшение эффективности индексов
Индексы, построенные на таблице, также содержат ссылки на мёртвые строки. Это может привести к тому, что при использовании индекса для поиска данных, система будет проверять больше записей, чем необходимо, что замедляет выполнение запроса.
...
Как уменьшить влияние мёртвых строк ?
...
4. Использование индексов
Правильно настроенные индексы позволяют быстрее находить нужные данные, минуя мёртвые строки.


Как это понимать ? А вот как хочешь , так и понимай :-)


[моё] Юмор Субд Postgresql Нейромузыка Настройка
9
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии