เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดคเตเดเตผเดเตเด "
เดชเตเดฐเดคเตเดฏเตเด เดเตเดฆเตเดฏเดเตเดเดณเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเตเด เดเดชเดฏเตเดเดฟเดเตเดเต, pg_stat_activity เดเดพเดดเตเดเดฏเตเดเต เดเดฐเดฟเดคเตเดฐเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดจเตเดคเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดฒเดญเดฟเดเตเดเตเด เดเดจเตเดจเต เดฒเตเดเดจเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดเดฏเตเด เดเดพเดฃเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต
เดตเดฟเดทเดฏเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดคเตเดฎเดฏเตเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเดพเดคเตเดค เดชเดฐเตเดเตเดทเดฃ เดเดพเดฒเดฏเดณเดตเตเด เดเดพเดฐเดฃเด, เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดชเดฟเดถเดเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเดพเด. เดตเดฟเดฎเตผเดถเดจเดเตเดเดณเตเด เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเตเด เดถเดเตเดคเดฎเดพเดฏเดฟ เดธเตเดตเดพเดเดคเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเตปเดชเตเดเตเดเต เดกเดพเดฑเตเดฑ
pg_stat_statements เดธเดฎเตผเดชเตเดชเดฟเดเตเดเตฝ เดเดฐเดฟเดคเตเดฐเด
pg_stat_history
CREATE 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 );
เดเดพเตผเดเตเดฑเตเดฑเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต dblink เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดฎเดฃเดฟเดเตเดเตเดฑเดฟเดฒเตเด เดชเดเตเดเดฟเด เดชเตเดชเตเดชเตเดฒเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดชเดเตเดเดฟเดเดฏเดฟเดฒเต เดเดฑเตเดฑเดตเตเด เดฐเดธเดเดฐเดตเตเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดตเตเดฎเดพเดฏ เดจเดฟเดฐ, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดเตเดตเดฑเดฟเดกเต.
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
);
เดชเดเตเดเดฟเด เดฎเดฃเดฟเดเตเดเตเตผ เดชเตเดฐเดเดพเดฐเด เดชเดพเตผเดเตเดเตเดทเตป เดเตเดฏเตเดค เดเดฐเต history_pg_stat_activity เดชเดเตเดเดฟเดเดฏเดพเดฃเต (เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดเดตเดฟเดเต -
เดเดเตเดเตเดชเตเดเตเดเต
เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเดฟเดชเดฟเดฏเต เดธเดฎเดฏเด (เดธเดฟเดธเตเดฑเตเดฑเด + เดเตเดฒเดฏเดจเตเดฑเตเดเตพ)
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
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 เดฎเตเดฒเตเดฏเดเตเดเตพ
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
--TOTAL pg_stat
SELECT
SUM(calls) AS calls, SUM(total_time) AS total_time, SUM(rows) AS rows ,
SUM(shared_blks_hit) AS shared_blks_hit,SUM(shared_blks_read) AS shared_blks_read ,
SUM(shared_blks_dirtied) AS shared_blks_dirtied,SUM(shared_blks_written) AS shared_blks_written ,
SUM(local_blks_hit) AS local_blks_hit , SUM(local_blks_read) AS local_blks_read ,
SUM(local_blks_dirtied) AS local_blks_dirtied , SUM(local_blks_written) AS local_blks_written,
SUM(temp_blks_read) AS temp_blks_read, SUM(temp_blks_written) temp_blks_written ,
SUM(blk_read_time) AS blk_read_time , SUM(blk_write_time) AS blk_write_time
INTO
pg_total_stat_history_rec
FROM
pg_stat_history
WHERE
snapshot_timestamp BETWEEN pg_stat_history_begin AND pg_stat_history_end AND
queryid IS NULL;
SQL DBTIME - เดฎเตเดคเตเดคเด เด เดจเตเดตเตเดทเดฃ เดจเดฟเตผเดตเตเดตเดนเดฃ เดธเดฎเดฏเด
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
dbtime_total = interval '1 millisecond' * pg_total_stat_history_rec.total_time ;
เดเดฆเดพเดนเดฐเดฃเด:
SQL DBTIME : 136:49:36
เดเดธเตโเดเตเดฏเตเดเตฝ เดธเดฟเดชเดฟเดฏเต เดธเดฎเดฏเด - เดเตเดฆเตเดฏเดเตเดเตพ เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดเตเดฒเดตเดดเดฟเดเตเด เดธเดฟเดชเดฟเดฏเต เดธเดฎเดฏเด
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
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 CPU TIME : 27:40:15
SQL เดเดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเต เดธเดฎเดฏเด - เดเตเดฆเตเดฏเดเตเดเตพเดเตเดเตเดณเตเดณ เดฎเตเดคเตเดคเด เดเดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเต เดธเดฎเดฏเด
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
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
เดจเดฎเตเดเตเดเต เดเดฑเตเดฑเดตเตเด เดฐเดธเดเดฐเดฎเดพเดฏ เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด
เดตเตเดฏเดฟเดฑเตเดฑเดฟเดเดเตเดธเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต
เดเตเดฒเดฏเดจเตเดฑเต เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดฎเตเดคเตเดคเด เดเดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเต เดธเดฎเดฏเด เด เดจเตเดธเดฐเดฟเดเตเดเต เดฎเดฟเดเดเตเด 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 เดเดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเตเดเตพ -------------------+--------------------- | #| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต_เดคเดฐเด| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต| เดเดพเดฒเดพเดตเดงเดฟ +------+------------------------------------------- -- -------+--------- | 1| เดชเตเดฐเดตเตผเดคเตเดคเดจเด| เดฒเตเดเดฟเดเตเดเตฝ เดฒเตเดเตเดเตผ เดฎเตเดฏเดฟเตป| 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| BuffFileWrite| 00:02:35 | 8| LWLock| เดฌเดซเตผ_เดฎเดพเดชเตเดชเดฟเดเดเต| 00:01:54 | 9| IO| DataFileRead| 00:01:23 | 10| IO| WALWrite| 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
เดเดฆเดพเดนเดฐเดฃเด:
+------------------------------------------------------ --- -------+----------+---------- | #| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต_เดคเดฐเด| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต| เดเดพเดฒเดพเดตเดงเดฟ| % 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| เดฌเดซเตผ_io| 00:17:17| 0.21 | 6| IO| BuffFileWrite| 00:01:34| 0.02 | 7| เดฒเตเดเตเดเต| เดเตเดฏเตเดชเตเดชเดฟเตพ| 00:01:32| 0.02 | 8| เดเตเดฒเดฏเดจเตเดฑเต| ClientRead| 00:01:19| 0.02 | 9| IO| BuffFileRead| 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
เดเดฆเดพเดนเดฐเดฃเด:
+------------------------------------------------------ ---------- | #| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต_เดคเดฐเด| เดเดพเดฒเดพเดตเดงเดฟ +------+------------------------------------------- -- ------- | 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
เดเดฆเดพเดนเดฐเดฃเด:
+------------------------------------------------------ --- -------+---------- | #| เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด_เดเดตเดจเตเดฑเต_เดคเดฐเด| เดเดพเดฒเดพเดตเดงเดฟ| % 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| duration +-----+-----------------------------+----------+--------------------+----------------------+-------------------- | 1| logical replication launcher| | Activity| LogicalLauncherMain| 10:43:28 | 2| autovacuum launcher| | Activity| AutoVacuumMain| 10:42:49 | 3| walwriter| | Activity| WalWriterMain| 10:28:53 | 4| checkpointer| | Activity| CheckpointerMain| 10:23:50 | 5| background writer| | Activity| BgWriterMain| 09:11:59 | 6| background writer| | Activity| BgWriterHibernate| 01:37:46 | 7| parallel worker| tdb1| IO| BufFileWrite| 00:02:35 | 8| parallel worker| tdb1| LWLock| buffer_mapping| 00:01:41 | 9| parallel worker| tdb1| IO| DataFileRead| 00:01:22 | 10| parallel worker| tdb1| IO| BufFileRead| 00:00:59 | 11| walwriter| | IO| WALWrite| 00:00:57 | 12| parallel worker| tdb1| LWLock| buffer_io| 00:00:47 | 13| autovacuum worker| tdb1| LWLock| buffer_mapping| 00:00:13 | 14| background writer| | IO| DataFileWrite| 00:00:12 | 15| checkpointer| | IO| DataFileWrite| 00:00:11 | 16| walwriter| | LWLock| WALWriteLock| 00:00:09 | 17| checkpointer| | LWLock| WALWriteLock| 00:00:06 | 18| background writer| | LWLock| WALWriteLock| 00:00:06 | 19| walwriter| | IO| WALInitWrite| 00:00:02 | 20| autovacuum worker| tdb1| LWLock| WALWriteLock| 00:00:02 | 21| walwriter| | IO| WALInitSync| 00:00:02 | 22| autovacuum worker| tdb1| IO| DataFileRead| 00:00:01 | 23| checkpointer| | IO| ControlFileSyncUpdate| 00:00:01 | 24| background writer| | IO| WALWrite| 00:00:01 | 25| background writer| | IO| DataFileFlush| 00:00:01 | 26| checkpointer| | IO| SLRUFlushSync| 00:00:01 | 27| autovacuum worker| tdb1| IO| WALWrite| 00:00:01 | 28| checkpointer| | IO| DataFileSync| 00:00:01 +-----+-----------------------------+----------+--------------------+----------------------+--------------------
SQL-เดจเตเดณเตเดณ เดเดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเตเดเตพ - queryid เดฎเตเดเตเดจเดฏเตเดณเตเดณ เดตเตเดฏเดเตเดคเดฟเดเดค เดเตเดฆเตเดฏเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเด
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
เดเดฆเดพเดนเดฐเดฃเด:
+-----+-------------------------+----------+--------------------+--------------------+--------------------+-------------------- | #| queryid| dbname| wait_event_type| wait_event| waitings| total | | | | | | duration| duration +-----+-------------------------+----------+--------------------+--------------------+--------------------+-------------------- | 1| -8247416849404883188| tdb1| Client| ClientRead| 00:00:02| | 2| -6572922443698419129| tdb1| Client| ClientRead| 00:00:05| | 3| -6572922443698419129| tdb1| IO| DataFileRead| 00:00:01| | 4| -5917408132400665328| tdb1| Client| ClientRead| 00:00:04| | 5| -4091009262735781873| tdb1| Client| ClientRead| 00:00:03| | 6| -1473395109729441239| tdb1| Client| ClientRead| 00:00:01| | 7| 28942442626229688| tdb1| IO| BufFileWrite| 00:01:34| 00:46:06 | 8| 28942442626229688| tdb1| LWLock| buffer_mapping| 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| buffer_io| 00:00:35| 00:46:06 | 12| 28942442626229688| tdb1| Client| ClientRead| 00:00:05| 00:46:06 | 13| 28942442626229688| tdb1| IPC| MessageQueueReceive| 00:00:03| 00:46:06 | 14| 28942442626229688| tdb1| IPC| BgWorkerShutdown| 00:00:01| 00:46:06 | 15| 389015618226997618| tdb1| Lock| transactionid| 03:55:09| 04:14:15 | 16| 389015618226997618| tdb1| IO| DataFileRead| 03:23:09| 04:14:15 | 17| 389015618226997618| tdb1| LWLock| buffer_mapping| 00:12:09| 04:14:15 | 18| 389015618226997618| tdb1| LWLock| buffer_io| 00:10:18| 04:14:15 | 19| 389015618226997618| tdb1| Lock| tuple| 00:00:35| 04:14:15 | 20| 389015618226997618| tdb1| LWLock| WALWriteLock| 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| Client| ClientRead| 00:00:01| 04:14:15 | 24| 734234407411547467| tdb1| Client| ClientRead| 00:00:11| | 25| 734234407411547467| tdb1| LWLock| buffer_mapping| 00:00:05| | 26| 734234407411547467| tdb1| IO| DataFileRead| 00:00:02| | 27| 1237430309438971376| tdb1| LWLock| buffer_mapping| 00:02:18| 02:45:40 | 28| 1237430309438971376| tdb1| IO| DataFileRead| 00:00:27| 02:45:40 | 29| 1237430309438971376| tdb1| Client| ClientRead| 00:00:02| 02:45:40 | 30| 2404820632950544954| tdb1| Client| ClientRead| 00:00:01| | 31| 2515308626622579467| tdb1| Client| ClientRead| 00:00:02| | 32| 4710212362688288619| tdb1| LWLock| buffer_mapping| 00:03:08| 02:18:21 | 33| 4710212362688288619| tdb1| IO| DataFileRead| 00:00:22| 02:18:21 | 34| 4710212362688288619| tdb1| Client| ClientRead| 00:00:06| 02:18:21 | 35| 4710212362688288619| tdb1| LWLock| buffer_io| 00:00:02| 02:18:21 | 36| 9150846928388977274| tdb1| IO| DataFileRead| 00:01:19| | 37| 9150846928388977274| tdb1| LWLock| buffer_mapping| 00:00:34| | 38| 9150846928388977274| tdb1| Client| ClientRead| 00:00:10| | 39| 9150846928388977274| tdb1| LWLock| buffer_io| 00:00:01| +-----+-------------------------+----------+--------------------+--------------------+--------------------+--------------------
เดเตเดฒเดฏเดจเตเดฑเต SQL เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเตโเดธเต - เดฎเตเตปเดจเดฟเดฐ เด เดจเตเดตเตเดทเดฃเดเตเดเตพ
เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดตเตเดฃเตเดเตเด เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฃเต, เดเดเด เดฒเดพเดญเดฟเดเตเดเดพเตป เดจเตฝเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ
+------------------------------------------------------------------------------------ | CLIENT SQL ordered by Elapsed Time +--------------------+----------+----------+----------+----------+----------+-------------------- | elapsed time| calls| % 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 +--------------------+----------+----------+----------+----------+----------+-------------------- | CLIENT SQL ordered by CPU Time +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | cpu time| calls| % 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | CLIENT SQL ordered by User I/O Wait Time +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | io_wait time| calls| % 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | CLIENT SQL ordered by Shared Buffers Reads +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | buffers reads| calls| % 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 ordered by Disk Reads Time +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | read time| calls| % 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 ordered by Executions +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | calls| rows| % 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 เดตเดฟเดชเตเดฒเตเดเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเตเด.
- เดเตฝเดชเตเดชเดพเดฆเดจ เด เดเดฟเดคเตเดคเดฑเดฏเดฟเตฝ เดตเตปเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดฟเดคเตเดคเดฌเดฟเตฝ เดเดฐเต เดชเดพเดเตเดเตเดเต เดชเดฐเดฟเดนเดพเดฐเด เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเด.
เดคเตเดเดฐเตเดฃเตเดเดคเต ...
เด
เดตเดฒเดเดฌเด: www.habr.com