Поиск
Обучение
Поиск

+7 (495) 913-75-75 доб.221

+7 (495) 668-08-42

+7 (812) 441-33-15

+7 (901) 374-07-97

+7 (383) 263-31-70

+7 (861) 944-79-98

+7 (391) 272-07-31

Почта

edu@fors.ru

Настройка производительности базы данных Postgres

Посмотреть расписание этого курса

  • Код курса: FP.PRFM
  • Длительность: 4 д.
  • Цена: 48 000 р.
Записаться

Описание курса

Содержание курса:

Глава 1: PostgreSQL Versions

Методология настройки производительности Postgres

  • Выбор версии Postgres
  • Мажорные и минорные апгрейды
  • Сравнение PostgreSQL и других БД
Инструменты для настройки производительности PostgreSQL 
  • PostgreSQL contrib 
  • Использование расширений  PostgreSQL Extensions 
  • pgFoundry 
Цикл разработки приложений для PostgreSQL (application scaling life cycle) 
  • Performance tuning на практике  (примеры) 
 
Глава 2: Hardware 
  • CPUs 
  • Memory 
  • Диски и массивы 
  • RAID 
  • SSDs 
  • Дисковые контроллеры
  • Hardware и software RAID 
  • SAN и  NAS
Глава 3: Утилиты для тестирования аппаратной части (Database Hardware Benchmarking )
CPU и Память 
  • Memtest86+ 
  • STREAM 
  • STREAM и Intel versus AMD 
Physical disk performance 
  • Настройка синхронного и асинхронного I/O
  • Random access and I/O per second 
  • Последовательный доступ  ZCAV 50
  • PostgreSQL test_fsync 
  • Утилиты для тестирования дисковой подсистемы ( benchmarking tools)
Глава 4: Настройка дисковой подсистемы

Сrash recovery на файловых системах 

Файловые системы на  Linux

  • ext2, ext3, ext4, XFS 
Другие файловые системы  Linux Настройка файловых систем
  • Read-ahead 
  • File access times 
  • Read caching and swapping 
  • Write cache sizing 
  • I/O scheduler elevator 
  • Solaris UFS 
  • FreeBSD UFS2 
  • ZFS 
  • FAT32 
  • NTFS 
Дисковые массивы и RAID
  • Сrash recovery на файловых системах 
Глава 5: Память и настройка кэширования БД 
Настройка памяти в  postgresql.conf 
  • Увеличение UNIX shared memory parameters для использования большего размера буфера
  • Семафоры и другие параметры ядра
Crash recovery и буферная кэш 
  • Процесс контрольных точек
  • Write-ahead log (WAL)  и процесс восстановления
  • Checkpoint timing 
  • Checkpoint spikes 
  • Процесс записи измененных блоков (Dirty block write paths) на  диск 
Database buffer cache
  • Database buffer cache и кзш ОС (за и против) 
  • Анализ содержимого  buffer cache
  • Настройка buffer cache
  • Inspection of the buffer cache queries 
  • Top relations in the cache 
  • Using buffer cache inspection for sizing feedback 
Лабораторная работа
 
Глава 6:  Настройка конфигурации сервера
 
Параметры по умолчанию
  • Изменения параметров, Reloading конфигураций
  • Server-wide парметры 
Сетевые настройки hda.conf
  • listen_addresses 
  • max_connections 
Shared memory 
  • shared_buffers 
  • настройки  Free space map 
  • Логгирование 
  • log_line_prefix 
  • log_statement 
  • log_min_duration_statement 
Вакуум и статистика 
  • autovacuum 
  • Включение autovacuum 
  • maintainance_work_mem 
  • default_statistics_target 
Настройка контрольных точек
  • checkpoint_timeout 
  • checkpoint_completion_target 
  • wal_buffers 
  • wal_sync_method 
PITR and WAL, репликация 
  • Настройки клиета
  • effective_cache_size 
  • synchronous_commit 
  • work_mem 
  • random_page_cost 
  • constraint_exclusion 
Общая настройка
  • fsync 
  • full_page_writes 
  • commit_delay  и commit_siblings 
  • max_prepared_transactions 
  • Query enable parameters 
  • New server tuning 
Особенности настройки Dedicated  и Shared  server
  • pgtune 
Глава 7:  Текущий контроль и обслуживание БД
 
Обеспечение транзакционной целостности 
  • Механизмы обеспечения ACID
  • Конфликты блокировок
  • Сериализация 
  • Одновременный доступ
  • Преимущества и недостатки  MVCC 
  • Transaction ID wraparound 
Вакуум и его настройка
  • Реализация vacuum в Postgres 
  • Экономия дискового пространства 
  • Полный vacuum 
  • Removing tuple timeout 
  • HOT 
  • Cost-based vacuuming 
  • Автовакуум 
  • Логгирование процесса вакуум
  • Мониторинг и настройка
  • Проблемы с автовакуумом
  • Out of memory errors 
  • Проблемы длинныех  транзакций 
  • Free space map 
Глава 8: Анализ логов Pоstgres
Логгирование различных структур БД
  • Log collection 
  • log_line_prefix 
  • Multi-line queries 
  • Using syslog for log messages 
  • CSV logging 
Комплексные запросы и анализ логов
  • auto_explain 
  • Log file analysis 
  • Normalized query 
  • pg_stat_statements 
  • pgFouine 
  • pqa 
  • eqpa 
  • pgsi 
  • mk-query-digest 
Лабораторная работа
 
Глава 9: Индексирование БД
 
Индексы, методика индексирования в Postgres
  • Full table scans – плюсы и минусы
  • Воздание индексов
  • Поиск неиспользуемых индексов
  • Комбинированные индексы
  • Создание и обслуживание индексов 
  • Уникальные индексы 
  • Одновременное создание нескольких индексов
  • Кластерный фактор
  • Переиндексирование
Виды индексов
  • B-tree  индексы
  • Text operator classes 
  • Hash 
  • GIN 
  • GiST 245
  • SP-GiST 
  • BRIN 
Расширенное индексирование
  • Индексы на нескольких столбцах 
  • Индексы для сортировок
  • Частичные индексы
  • Индексы, основанные на выражениях
  • Индексы  для полнотекстового поиска 
Лабораторная работа
 
Глава 10: Оптимизация SQL запрсов 

Выбор метода доступа к данным

  • Tuple ID 
  • Object ID 
  • Sequential scan 
  • Index scan 
  • Index only scans 
  • Bitmap heap and index scans 
Выполнение SQL команда
  • Sort 
  • Limit 
  • Offsets 
  • Aggregate 
  • HashAggregate 
  • Unique 
  • WindowAgg 
  • Result 
  • Append 
  • Group 
  • Subquery scan и subplan 
  • Subquery conversion and IN lists 
  • Set 
Объединения таблиц (Joins) и их виды 
  • Nested loop 
  • Merge join 
  • Hash joins 
  • Hash semi и anti joins 
  • Join и порядок таблиц 

Глава 11: Сбор статистики

Сбор статистики, настройка

  • Расширенная статистика
  • Statistics targets 
Параметры, влияющие на оптимизатор и на планы выполнения запросов 
  • effective_cache_size 
  • work_mem 
  • constraint_exclusion 
  • cursor_tuple_fraction 
  • Optimizing for fully cached datasets 
  • Testing for query equivalence 
  • Disabling optimizer features 
Лабораторная работа
 
Глава 12: Активность БД и интерпретация статистик производительности 
  • Представления и просмотр статистик в БД
  • Кумулятивная и текущая статистики БД
  • Table statistics 
  • Table I/O 
  • Index статистика 
  • Index I/O 
События ожидания
  • Сессии
  • Блокировки
  • Decoding lock 
  • Механизм табличных блокировок и ожидания их
  • Deadlocks 
  • Ожидания дискового ввода-вывода
  • Мониторинг событий ожидания
  • Настройка сохранения статистик
Лабораторная работа

Глава 13: Средства мониторинга UNIX 

Установка и настройка

  • vmstat 
  • iostat 
  • top
  • iotop for Linux 
  • Примеры и кейсы
Глава 14: Pooling и Caching 

Connection pooling 

  • pgpool-II 
  • Репликация
  • Failover 
  • Load balancing 
  • pgBouncer 
  • pgmemcache
Лабораторная работа
 
Глава 15: Репликация и масштабирование

Кластеры высокой доступности

  • Master/Master
  • Master/Slave
  • Master/Standby
  • Кластеры с балансировкой нагрузки
  • Вычислительные кластеры
  • Данные ПГ с точки зрения кластера. Логические и физические структуры
Стратегии масштабирования для PostgreSQL.
  • Проблема производительности
  • Проблема высокой доступности
Лабораторная работа
 
Глава 16: Основные проблемы производительности и кейсы по их решению
 
Bulk loading 
  • Настройка bulk loads 
  • Skipping WAL acceleration 
  • Перестройка индексов и добавление ограничений
  • Паралельное восстановление ( restore)
  • Post load очистка
Наиболее общие проблемы с производительностью и их решение
  • Counting rows 
  • Unexplained writes 
  • PL/pgSQL benchmarking 
  • High foreign key overhead 
  • Trigger memory use 
  • Heavy statistics collector overhead 
  • Targeted statistics resets 
  • Материализованные представления
Лабораторная работа
Записаться на курс: Настройка производительности базы данных Postgres

Начало курса: 12.02.19


Поделиться
Отправьте другу или начальнику ссылку на почту
Заявка на обучение

Заявка на обучение

Записаться на курс:

Выберите дату начала курса: