Добавил:
ИВТ (советую зайти в "Несортированное")rnПИН МАГА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Database 2024 / Books / Мониторинг PostgreSQL.pdf
Скачиваний:
26
Добавлен:
20.11.2024
Размер:
6.87 Mб
Скачать

6.2. Отслеживание активности в журнале

165

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

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

Представление pg_stat_statements

Если представление pg_stat_wal содержит общую статистику уровня СУБД, то в представлении pg_stat_statements можно найти аналогичную статистику в контексте отдельных типов запросов:

wal_records—общее количество записей,отправленных в журнал;

wal_fpi—общее количество FPI-страниц,записанное в журнал;

wal_bytes—общий объем данных,записанный в журнал,в байтах.

Вперечисленных полях содержится статистика записи для каждого конкретного типа запросов. С ее помощью можно проанализировать состав WAL-журнала и ответить на вопрос о том, какие запросы пишут в журнал больше остальных:

# SELECT

 

 

 

pg_size_pretty(sum(wal_bytes)) AS wal_volume,

 

left(query, 64) AS query_trunc

 

FROM pg_stat_statements

 

GROUP BY query

 

ORDER BY sum(wal_bytes) DESC

 

LIMIT 10;

 

 

wal_volume

|

query_trunc

------------

 

 

+------------------------------------------------------------------

 

678

 

GB

| UPDATE pgbench_accounts SET abalance = abalance + $1 WHERE aid =

10196 MB

| INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES

8219

MB

| UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid =

7805

MB

| UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid =

9313

kB

| SELECT abalance FROM pgbench_accounts WHERE aid = $1

1394

kB

| truncate pgbench_history

 

536

 

kB

| vacuum pgbench_tellers

 

375

 

kB

| select count(*) from pgbench_branches

250

 

kB

| vacuum pgbench_branches

 

129

 

kB

| SELECT current_database() AS database, schemaname AS schema, fun

Соседние файлы в папке Books