рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ "
PostgreSQL рдХреЗ рд▓рд┐рдП ASH рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ "ред
рд▓реЗрдЦ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ - pg_stat_nivity рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреМрди рд╕реА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЪреЗрддрд╛рд╡рдиреАред
рд╡рд┐рд╖рдп рдХреА рдирд╡реАрдирддрд╛ рдФрд░ рдЕрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдХреЗ рдХрд╛рд░рдг, рд▓реЗрдЦ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдФрд░ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИред
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛
рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреЗрдВ pg_stat_statements
pg_stat_historyCREATE TABLE pg_stat_history ( id SERIAL, snapshot_timestamp timestamp without time zone, database_id integer, dbid oid, userid oid, queryid bigint, query text, calls bigint, total_time double precision, min_time double precision, max_time double precision, mean_time double precision, stddev_time double precision, rows bigint, shared_blks_hit bigint, shared_blks_read bigint, shared_blks_dirtied bigint, shared_blks_written bigint, local_blks_hit bigint, local_blks_read bigint, local_blks_dirtied bigint, local_blks_written bigint, temp_blks_read bigint, temp_blks_written bigint, blk_read_time double precision, blk_write_time double precision, baseline_id integer );
рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реНрддрдВрдн, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИред
Pg_stat_activity рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреЗрдВ
archive_pg_stat_activity CREATE TABLE archive_pg_stat_activity ( timepoint timestamp without time zone, datid oid, datname name, pid integer, usesysid oid, usename name, application_name text, client_addr inet, client_hostname text, client_port integer, backend_start timestamp without time zone, xact_start timestamp without time zone, query_start timestamp without time zone, state_change timestamp without time zone, wait_event_type text, wait_event text, state text, backend_xid xid, backend_xmin xid, query text, backend_type text, queryid bigint );
рддрд╛рд▓рд┐рдХрд╛ рдПрдХ рдШрдбрд╝реА-рд╡рд┐рднрд╛рдЬрд┐рдд рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ_pg_stat_activity table (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП,
pg_stat_statements + pg_stat_activity + loq_query = pg_ash? рдФрд░ рдпрд╣рд╛рдВ
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд▓рд┐рдП ASH рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)рдЙрддреНрдкрд╛рджрди
рдЧреНрд░рд╛рд╣рдХ рд╕реАрдкреАрдпреВ рд╕рдордп (рд╕рд┐рд╕реНрдЯрдо + рдЧреНрд░рд╛рд╣рдХ)
рдЬрд╛рдВрдЪ WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NULL ) AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
рдЙрджрд╛рд╣рд░рдг CLUSTER CPU TIME (SYSTEM + CLIENTS ) : 28:37:46
рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп
рдЬрд╛рдВрдЪ WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NOT NULL ) AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
рдЙрджрд╛рд╣рд░рдг CLUSTER WAITINGS TIME : 30:12:49
рдХреБрд▓ pg_stat_statements рдорд╛рди
SQL DBTIME - рдХреБрд▓ рдХреНрд╡реЗрд░реА рд░рдирдЯрд╛рдЗрдо
рдЬрд╛рдВрдЪ dbtime_total = interval '1 millisecond' * pg_total_stat_history_rec.total_time ;
SQL CPU TIME CPU рдХреЗ рдЯрд╛рдЗрдо рдиреЗ рдПрдХреНрдЬреАрдХреНрдпреВрдЯрд┐рд╡ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдмрд┐рддрд╛рдпрд╛
рдЬрд╛рдВрдЪ WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NULL ) AND backend_type = 'client backend' AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
SQL WAITINGS TIME - рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп
рдЬрд╛рдВрдЪ WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NOT NULL ) AND aa.state = 'active' AND backend_type = 'client backend' ) SELECT count(*) INTO waiting_total FROM t ;
рдЙрджрд╛рд╣рд░рдг SQL WAITINGS TIME : 30:04:09
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рддреБрдЪреНрдЫ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рди рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджрд┐рдП рдЧрдП рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг | SQL IOTIME : 19:44:50 | SQL READ TIME : 19:44:32 | SQL WRITE TIME : 00:00:17 | | SQL CALLS : 12188248 ------------------------------------------------------------- | SQL SHARED BLOCKS READS : 7997039120 | SQL SHARED BLOCKS HITS : 8868286092 | SQL SHARED BLOCKS HITS/READS % : 110.89 | SQL SHARED BLOCKS DIRTED : 419945 | SQL SHARED BLOCKS WRITTEN : 19857 | | SQL TEMPORARY BLOCKS READS : 7836169 | SQL TEMPORARY BLOCKS WRITTEN : 10683938
рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЦрдВрдб рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ
WAITINGS рд╕рд╛рдВрдЦреНрдпрд┐рдХреА
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ 10 рд╕рдВрд╕реНрдХрд░рдг
рдЬрд╛рдВрдЪ SELECT wait_event_type , wait_event , get_system_waiting_duration( wait_event_type , wait_event ,pg_stat_history_begin+(current_hour_diff * interval '1 hour') ,pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type, wait_event ORDER BY 3 DESC LIMIT 10
рдЙрджрд╛рд╣рд░рдг + ------------------------------------------------- -----------------------------------
| рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рд╕рдордп рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд╢реАрд░реНрд╖ 10 рдЕрднрд┐рдпреЛрдЧ
+ ----- + ------------------------------ + ------------ -------- + --------------------
| # # Wait_event_type | Wait_event | рдЕрд╡рдзрд┐
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | рдЧрддрд┐рд╡рд┐рдзрд┐ | LogicalLauncherMain | 10:43:28
| 2 | рдЧрддрд┐рд╡рд┐рдзрд┐ | AutoVacuumMain | 10:42:49
| 3 | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalWriterMain | 10:28:53
| 4 | рдЧрддрд┐рд╡рд┐рдзрд┐ | рдЪреЗрдХрдкреЙрдЗрдВрдЯрдореИрди | 10:23:50
| 5 | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterMain | 09:11:59
| 6 | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterHibernate | 01:37:46
| 7 | IO | BufFileWrite | 00:02:35
| 8 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:01:54
| 9 | IO | DataFileRead | 00:01:23
| 10 | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:59
+ ----- + ------------------------------ + ------------ -------- + --------------------
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ 10 рд╕рдВрд╕реНрдХрд░рдг
рдЬрд╛рдВрдЪ SELECT wait_event_type , wait_event , get_clients_waiting_duration( wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type, wait_event ORDER BY 3 DESC LIMIT 10
рдЙрджрд╛рд╣рд░рдг + ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| # # Wait_event_type | Wait_event | рдЕрд╡рдзрд┐ | % dbtime
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| 1 | рддрд╛рд▓рд╛ | рд▓реЗрди-рджреЗрди | 08: 16: 47 | 6.05
| 2 | IO | DataFileRead | 06: 13: 41 | 4.55
| 3 | рдЯрд╛рдЗрдордЖрдЙрдЯ | PgSleep | 02: 53: 21 | 2.11
| 4 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 40: 42 | 0.5
| 5 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 17: 17 | 0.21
| 6 | IO | BufFileWrite | 00: 01: 34 | 0.02
| 7 | рддрд╛рд▓рд╛ | рдЯрдкрд▓ | 00: 01: 32 | 0.02
| 8 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 01: 19 | 0.02
| 9 | IO | BufFileRead | 00: 00: 37 | 0.01
| 10 | LWLock | рдмрдлрд░_ рдХреЙрдиреНрдЯреЗрдВрдЯ | 00: 00: 08 | 0
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рд╡реЙрдЗрдЯ рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫреВрдЯ
рдЬрд╛рдВрдЪ SELECT wait_event_type , get_system_waiting_type_duration( wait_event_type , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type ORDER BY 2 DESC
рдЙрджрд╛рд╣рд░рдг + ----- + ------------------------------ + ------------ --------
| # # Wait_event_type | рдЕрд╡рдзрд┐
+ ----- + ------------------------------ + ------------ --------
| 1 | рдЧрддрд┐рд╡рд┐рдзрд┐ | 53:08:45
| 2 | IO | 00:06:24
| 3 | LWLock | 00:03:02
+ ----- + ------------------------------ + ------------ --------
рдХреБрд▓рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП
рдЬрд╛рдВрдЪ SELECT wait_event_type , get_clients_waiting_type_duration( wait_event_type , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type ORDER BY 2 DESC
рдЙрджрд╛рд╣рд░рдг + ----- + ------------------------------ + ------------ -------- + --------------------
| # # Wait_event_type | рдЕрд╡рдзрд┐ | % dbtime
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | рддрд╛рд▓рд╛ | 08: 18: 19 | 6.07
| 2 | IO | 06: 16: 01 | 4.58
| 3 | рдЯрд╛рдЗрдордЖрдЙрдЯ | 02: 53: 21 | 2.11
| 4 | LWLock | 00: 58: 12 | 0.71
| 5 | рдЧреНрд░рд╛рд╣рдХ | 00: 01: 19 | 0.02
| 6 | рдЖрдИрдкреАрд╕реА | 00: 00: 04 | 0
+ ----- + ------------------------------ + ------------ -------- + --------------------
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреА рдЕрд╡рдзрд┐ред
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛
рдЬрд╛рдВрдЪ SELECT backend_type , datname , wait_event_type , wait_event , get_backend_type_waiting_duration( backend_type , wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY backend_type , datname , wait_event_type , wait_event ORDER BY 5 DESC
рдЙрджрд╛рд╣рд░рдг + ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| # # backend_type | dbname | Wait_event_type | Wait_event | рдЕрд╡рдзрд┐
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| 1 | рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд▓рд╛рдВрдЪрд░ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | LogicalLauncherMain | 10:43:28
| 2 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓рд╛рдВрдЪрд░ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | AutoVacuumMain | 10:42:49
| 3 | рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalWriterMain | 10:28:53
| 4 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | рдЪреЗрдХрдкреЙрдЗрдВрдЯрдореИрди | 10:23:50
| 5 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterMain | 09:11:59
| 6 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterHibernate | 01:37:46
| 7 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | BufFileWrite | 00:02:35
| 8 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:01:41
| 9 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | DataFileRead | 00:01:22
| 10 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | BufFileRead | 00:00:59
| 11 | рд▓реЗрдЦрдХ | | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:57
| 12 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00:00:47
| 13 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:00:13
| 14 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | IO | DataFileWrite | 00:00:12
| 15 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | IO | DataFileWrite | 00:00:11
| 16 | рд▓реЗрдЦрдХ | | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:09
| 17 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:06
| 18 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:06
| 19 | рд▓реЗрдЦрдХ | | IO | WalInitWrite | 00:00:02
| 20 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:02
| 21 | рд▓реЗрдЦрдХ | | IO | WalInitSync | 00:00:02
| 22 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | DataFileRead | 00:00:01
| 23 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | IO | ControlFileSyncUpdate | 00:00:01
| 24 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:01
| 25 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | IO | DataFileFlush | 00:00:01
| 26 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | IO | SLRUFlushSync | 00:00:01
| 27 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:01
| 28 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | IO | DataFileSync | 00:00:01
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
SQL рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ - рдХреНрд╡реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ
рдЬрд╛рдВрдЪ SELECT queryid , datname , wait_event_type , wait_event , get_query_waiting_duration( queryid , wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL AND queryid IS NOT NULL GROUP BY queryid , datname , wait_event_type , wait_event ORDER BY 1 , 5 DESC
рдЙрджрд╛рд╣рд░рдг + ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
| # # рдХреНрд╡реЗрд░реА | dbname | Wait_event_type | Wait_event | рдкреНрд░рддреАрдХреНрд╖рд╛ | рд╕рдВрдкреВрд░реНрдг
| | | | | | рдЕрд╡рдзрд┐ | рдЕрд╡рдзрд┐
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
| 1 | -8247416849404883188 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 |
| 2 | -6572922443698419129 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 05 |
| 3 | -6572922443698419129 | tdb1 | IO | DataFileRead | 00: 00: 01 |
| 4 | -5917408132400665328 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 04 |
| 5 | -4091009262735781873 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 03 |
| 6 | -147339510972929441239 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 01 |
| 7 | 28942442626229688 | tdb1 | IO | BufFileWrite | 00: 01: 34 | 00:46:06
| 8 | 28942442626229688 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 01: 05 | 00:46:06
| 9 | 28942442626229688 | tdb1 | IO | DataFileRead | 00: 00: 44 | 00:46:06
| 10 | 28942442626229688 | tdb1 | IO | BufFileRead | 00: 00: 37 | 00:46:06
| 11 | 28942442626229688 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 00: 35 | 00:46:06
| 12 | 28942442626229688 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 05 | 00:46:06
| 13 | 28942442626229688 | tdb1 | рдЖрдИрдкреАрд╕реА | MessageQueueReceive | 00: 00: 03 | 00:46:06
| 14 | 28942442626229688 | tdb1 | рдЖрдИрдкреАрд╕реА | BgWorkerShutdown | 00: 00: 01 | 00:46:06
| 15 | 389015618226997618 | tdb1 | рддрд╛рд▓рд╛ | рд▓реЗрди-рджреЗрди | 03: 55: 09 | 04:14:15
| 16 | 389015618226997618 | tdb1 | IO | DataFileRead | 03: 23: 09 | 04:14:15
| 17 | 389015618226997618 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 12: 09 | 04:14:15
| 18 | 389015618226997618 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 10: 18 | 04:14:15
| 19 | 389015618226997618 | tdb1 | рддрд╛рд▓рд╛ | рдЯрдкрд▓ | 00: 00: 35 | 04:14:15
| 20 | 389015618226997618 | tdb1 | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00: 00: 02 | 04:14:15
| 21 | 389015618226997618 | tdb1 | IO | DataFileWrite | 00: 00: 01 | 04:14:15
| 22 | 389015618226997618 | tdb1 | LWLock | SyncScanLock | 00: 00: 01 | 04:14:15
| 23 | 389015618226997618 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 01 | 04:14:15
| 24 | 734234407411547467 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 11 |
| 25 | 734234407411547467 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 00: 05 |
| 26 | 734234407411547467 | tdb1 | IO | DataFileRead | 00: 00: 02 |
| 27 | 1237430309438971376 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 02: 18 | 02:45:40
| 28 | 1237430309438971376 | tdb1 | IO | DataFileRead | 00: 00: 27 | 02:45:40
| 29 | 1237430309438971376 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 02:45:40
| 30 | 2404820632950544954 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 01 |
| 31 | 2515308626622579467 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 |
| 32 | 4710212362688288619 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 03: 08 | 02:18:21
| 33 | 4710212362688288619 | tdb1 | IO | DataFileRead | 00: 00: 22 | 02:18:21
| 34 | 4710212362688288619 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 06 | 02:18:21
| 35 | 4710212362688288619 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 00: 02 | 02:18:21
| 36 | 9150846928388977274 | tdb1 | IO | DataFileRead | 00: 01: 19 |
| 37 | 9150846928388977274 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 00: 34 |
| 38 | 9150846928388977274 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 10 |
| 39 | 9150846928388977274 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 00: 01 |
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
рдЧреНрд░рд╛рд╣рдХ SQL рд╕рд╛рдВрдЦреНрдпрд┐рдХреА - рд╢реАрд░реНрд╖ рдкреНрд░рд╢реНрди
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз, рддреБрдЪреНрдЫ рд╣реИрдВ рдФрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╣реАрдВ рджрд┐рдП рдЧрдП рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг + ------------------------------------------------- -----------------------------------
| CLIENT SQL рджреНрд╡рд╛рд░рд╛ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп | рдХреЙрд▓ | % dbtime | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| 04: 14: 15 | 19 | 3.1 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 02: 45: 40 | 746 | 2.02 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 02: 18: 21 | 749 | 1.69 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 46: 06 | 375 | 0.56 | 0.94 | 0.41 | tdb1 | 28942442626229688
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| рд╕реАрдкреАрдпреВ рдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХреА рдЧрдИ SQL SQL
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| cpu рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 02: 59: 49 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 01: 10: 12 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 00: 56: 15 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 15: 35 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ I / O рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢рд┐рдд SQL SQL
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| io_wait рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 03: 23: 10 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 00: 02: 54 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 00: 00: 27 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 00: 00: 22 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рд╕рд╛рдЭрд╛ рдмрдлрд╝рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд SQL рдСрд░реНрдбрд░
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдмрдлрд╝рд░реНрд╕ рдкрдврд╝рддрд╛ рд╣реИ | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 1056388566 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 11709251 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 3439004 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 3373330 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| CLIENT SQL рдХреЛ рдбрд┐рд╕реНрдХ рд░реАрдбрд░реНрд╕ рдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 02: 16: 30 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 00: 04: 50 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 00: 01: 10 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 00: 57 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| CLIENT SQL рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдХреЙрд▓ | рдкрдВрдХреНрддрд┐рдпрд╛рдБ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 749 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 746 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 375 | 0 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 19 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
рдкрд░рд┐рдгрд╛рдо
рд╕рдмрдорд┐рдЯ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рдХрд╛рд╕
рдЕрдм рддрдХ, рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреВрд░рдХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧред рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╢реАрдШреНрд░ рд╣реА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- Pg_stat_activity рдФрд░ pg_locks рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TimescaleDB рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдЙрддреНрдкрд╛рджрди рдард┐рдХрд╛рдиреЛрдВ рдкрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдкрд░ рдПрдХ рдмреИрдЪ рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд░реЗрдВред
рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...