Artikli jÀtk ««.
Artiklis vaadeldakse ja tuuakse vÀlja konkreetsetes pÀringutes ja nÀidetes, millist kasulikku teavet saab pg_stat_activity ajaloo abil hankida.
Hoiatus.
Seoses teema uudsetega ja katseperioodi tÀiendamisega vÔib artikkel sisaldada vigu. Kritika ja mÀrkused on teretulnud ja oodatud.
Sisendandmed
pg_stat_statements ajaloo
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 );Tabel tÀidetakse iga tund, kasutades dblink'i sihtandmebaasi. KÔige huvitavam ja kasulikum veerg tabelis on muidugi queryid.
pg_stat_activity ajaloo
archive_pg_stat_activity
LOO TABEL archive_pg_stat_activity
(
timepoint timestamp ilma ajavööndita,
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 ilma ajavööndita,
xact_start timestamp ilma ajavööndita,
query_start timestamp ilma ajavööndita,
state_change timestamp ilma ajavööndita,
wait_event_type text,
wait_event text,
state text,
backend_xid xid,
backend_xmin xid,
query text,
backend_type text,
queryid bigint
);Tabel on tundide kaupa jagatud tabel history_pg_stat_activity (Lisateavet leiate siit â ja siin â
VĂ€ljund
KLASTRI CPU AEG (SĂSTEEM + KLIENDID)
PĂ€ring
KOOS
t KUI
(
VALI
date_trunc('second', timepoint)
KUST activity_hist.archive_pg_stat_activity aa
KUS timepoint ON TAEVA BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') JA pg_stat_history_end+(current_hour_diff * interval '1 hour') JA
( aa.wait_event_type ON NULL ) JA
aa.state = 'active'
)
VALI count(*)
INTO cpu_total
FROM t ;NĂ€ide
KLASTRI CPU AEG (SĂSTEEM + KLIENDID) : 28:37:46KLASTRI OOTE AEG
PĂ€ring
KOOS
t KUI
(
VALI
date_trunc('second', timepoint)
KUST activity_hist.archive_pg_stat_activity aa
KUS timepoint ON TAEVA BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') JA pg_stat_history_end+(current_hour_diff * interval '1 hour') JA
( aa.wait_event_type ON NULL ) JA
aa.state = 'active'
)
VALI count(*)
INTO cpu_total
FROM t ;NĂ€ide
KLASTRI OOTE AEG : 30:12:49Total pg_stat_statements vÀÀrtused
PĂ€ring
--KOOS PG_STAT
VALI
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) AS 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
KUSTUTA
pg_stat_history
KUS
snapshot_timestamp BETWEEN pg_stat_history_begin AND pg_stat_history_end AND
queryid IS NULL;SQL DBTIME â ĂŒldine pĂ€ringute tĂ€itmise aeg
PĂ€ring
dbtime_total = intervall '1 millisekund' * pg_total_stat_history_rec.total_time ;NĂ€ide
SQL DBTIME : 136:49:36SQL CPU TIME â CPU aeg, mis kulus pĂ€ringute tĂ€itmiseks
PĂ€ring
WITH
t AS
(
VALI
date_trunc('second', timepoint)
FROM activity_hist.archive_pg_stat_activity aa
KUS timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * intervall '1 tund') AND pg_stat_history_end+(current_hour_diff * intervall '1 tund') AND
( aa.wait_event_type IS NULL ) AND
backend_type = 'client backend' AND
aa.state = 'aktive'
)
VALI count(*)
INTO cpu_total
FROM t ;NĂ€ide
SQL CPU TIME : 27:40:15SQL WAITINGS TIME â ĂŒldine ooteaeg pĂ€ringute jaoks
PĂ€ring
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 ;NĂ€ide
SQL WAITINGUD AEG: 30:04:09JĂ€rgmised pĂ€ringud on triviaalset laadi ning ruumi kokkuhoiuks jĂ€etakse vĂ€lja teostuse ĂŒksikasjad:
NĂ€ide
| SQL IOTIME : 19:44:50
| SQL LOE AEG : 19:44:32
| SQL KIRJUTA AEG : 00:00:17
|
| SQL KUTSED : 12188248
-------------------------------------------------------------
| SQL ĂHISTE BLOKKIDE LOOD : 7997039120
| SQL ĂHISTE BLOKKIDE LĂĂGID : 8868286092
| SQL ĂHISTE BLOKKIDE LĂĂGID/LOOD % : 110.89
| SQL ĂHISTE BLOKKIDE SAASTUMINE : 419945
| SQL ĂHISTE BLOKKIDE KIRJUTAMINE : 19857
|
| SQL AJUTISTE BLOKKIDE LOOD : 7836169
| SQL AJUTISTE BLOKKIDE KIRJUTAMINE : 10683938
Liikuge kÔige huvitavama osa juurde
WAITINGU STATISTIKA
TOP 10 WAITINGUDE KOGU WAITINGU AEGA KLIENDIPROSESSIDE NIMEKIRJA JĂRGI
PĂ€ring
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 10NĂ€ide
+------------------------------------------------------------------------------------ | TOP 10 OOTUSED PĂEVA KOGU OOTAMISE AJA KOHTA SĂSTEEMIPROSESSID +-----+------------------------------+--------------------+-------------------- | #| ootamise_tĂŒĂŒp| ootamise_event| kestus +-----+------------------------------+--------------------+-------------------- | 1| Tegevus| LogicalLauncherMain| 10:43:28 | 2| Tegevus| AutoVacuumMain| 10:42:49 | 3| Tegevus| WalWriterMain| 10:28:53 | 4| Tegevus| CheckpointerMain| 10:23:50 | 5| Tegevus| BgWriterMain| 09:11:59 | 6| Tegevus| BgWriterHibernate| 01:37:46 | 7| IO| BufFileWrite| 00:02:35 | 8| LWLock| buffer_mapping| 00:01:54 | 9| IO| DataFileRead| 00:01:23 | 10| IO| WALWrite| 00:00:59 +-----+------------------------------+--------------------+--------------------
TOP 10 WAITINGUDE KOGU WAITINGU AEGA KLIENDIPROSESSIDE NIMEKIRJA JĂRGI
PĂ€ring
VALI
ootamise_tĂŒĂŒp , ootamise_event ,
get_clients_waiting_duration( ootamise_tĂŒĂŒp , ootamise_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as kestus
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 ootamise_tĂŒĂŒp IS NOT NULL
GROUP BY ootamise_tĂŒĂŒp, ootamise_event
ORDER BY 3 DESC
LIMIT 10NĂ€ide
+-----+------------------------------+--------------------+--------------------+---------- | #| wait_event_type| wait_event| duration| % dbtime +-----+------------------------------+--------------------+--------------------+---------- | 1| Lock| transactionid| 08:16:47| 6.05 | 2| IO| DataFileRead| 06:13:41| 4.55 | 3| Timeout| PgSleep| 02:53:21| 2.11 | 4| LWLock| buffer_mapping| 00:40:42| 0.5 | 5| LWLock| buffer_io| 00:17:17| 0.21 | 6| IO| BufFileWrite| 00:01:34| 0.02 | 7| Lock| tuple| 00:01:32| 0.02 | 8| Client| ClientRead| 00:01:19| 0.02 | 9| IO| BufFileRead| 00:00:37| 0.01 | 10| LWLock| buffer_content| 00:00:08| 0 +-----+------------------------------+--------------------+--------------------+----------
OOTE TĂĂBID KOKKU OOTAMISAEGA, SĂSTEEMIPROSESSIDE KAUPA
PĂ€ring
VALI
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
KUST
activity_hist.archive_pg_stat_activity aa
KUS
timepoint ON PG_STAT_HISTORY_BEGIN+(current_hour_diff * interval '1 hour') JA PG_STAT_HISTORY_END+(current_hour_diff * interval '1 hour') JA backend_type != 'client backend' JA wait_event_type ON EI OLE NULL
GRUPPEERI wait_event_type
KOHTA 2 LANGANĂ€ide
+-----+------------------------------+-------------------- | #| wait_event_type| duration +-----+------------------------------+-------------------- | 1| Activity| 53:08:45 | 2| IO| 00:06:24 | 3| LWLock| 00:03:02 +-----+------------------------------+--------------------
KLIENDI PROTSESSIDE OOTAMISAEG TĂŒĂŒbid
PĂ€ring
VALI
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 DESCNĂ€ide
+-----+------------------------------+--------------------+-------------------- | #| wait_event_type| duration| % dbtime +-----+------------------------------+--------------------+-------------------- | 1| Lock| 08:18:19| 6.07 | 2| IO| 06:16:01| 4.58 | 3| Timeout| 02:53:21| 2.11 | 4| LWLock| 00:58:12| 0.71 | 5| Client| 00:01:19| 0.02 | 6| IPC| 00:00:04| 0 +-----+------------------------------+--------------------+--------------------
Ootamisi kestused, sĂŒsteemsete protsesside ja eraldi pĂ€ringute jaoks.
OOTAMISED SĂSTEEMSETELE PROTSESSIDELE
PĂ€ring
VALI
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 kestus
KUST
activity_hist.archive_pg_stat_activity aa
KUS
timepoint KESKUSEL pg_stat_history_begin+(current_hour_diff * interval '1 hour') JA pg_stat_history_end+(current_hour_diff * interval '1 hour') JA backend_type != 'client backend' JA wait_event_type EI OLE NULL
GRUPPEERI backend_type , datname , wait_event_type , wait_event
KORDA 5 KAHONĂ€ide
+-----+-----------------------------+----------+--------------------+----------------------+-------------------- | #| backend_type| dbname| wait_event_type| wait_event| duration +-----+-----------------------------+----------+--------------------+----------------------+-------------------- | 1| loogiline replikeerimise kÀivitaja| | Tegevus| LogicalLauncherMain| 10:43:28 | 2| autovacuum'i kÀivitaja| | Tegevus| AutoVacuumMain| 10:42:49 | 3| walwriter| | Tegevus| WalWriterMain| 10:28:53 | 4| checkpointer| | Tegevus| CheckpointerMain| 10:23:50 | 5| taustakirjutaja| | Tegevus| BgWriterMain| 09:11:59 | 6| taustakirjutaja| | Tegevus| BgWriterHibernate| 01:37:46 | 7| paralleltööline| tdb1| IO| BufFileWrite| 00:02:35 | 8| paralleltööline| tdb1| LWLock| buffer_mapping| 00:01:41 | 9| paralleltööline| tdb1| IO| DataFileRead| 00:01:22 | 10| paralleltööline| tdb1| IO| BufFileRead| 00:00:59 | 11| walwriter| | IO| WALWrite| 00:00:57 | 12| paralleltööline| tdb1| LWLock| buffer_io| 00:00:47 | 13| autovacuum'i töötaja| tdb1| LWLock| buffer_mapping| 00:00:13 | 14| taustakirjutaja| | 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| taustakirjutaja| | LWLock| WALWriteLock| 00:00:06 | 19| walwriter| | IO| WALInitWrite| 00:00:02 | 20| autovacuum'i töötaja| tdb1| LWLock| WALWriteLock| 00:00:02 | 21| walwriter| | IO| WALInitSync| 00:00:02 | 22| autovacuum'i töötaja| tdb1| IO| DataFileRead| 00:00:01 | 23| checkpointer| | IO| ControlFileSyncUpdate| 00:00:01 | 24| taustakirjutaja| | IO| WALWrite| 00:00:01 | 25| taustakirjutaja| | IO| DataFileFlush| 00:00:01 | 26| checkpointer| | IO| SLRUFlushSync| 00:00:01 | 27| autovacuum'i töötaja| tdb1| IO| WALWrite| 00:00:01 | 28| checkpointer| | IO| DataFileSync| 00:00:01 +-----+-----------------------------+----------+--------------------+----------------------+--------------------
WAITINGS FOR SQL â ootused eraldi pĂ€ringute jaoks queryid jĂ€rgi
PĂ€ring
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 NĂ€ide
+-----+-------------------------+----------+--------------------+--------------------+--------------------+-------------------- | #| 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| +-----+-------------------------+----------+--------------------+--------------------+--------------------+--------------------
KLIENDI SQL STATISTIKA â PARIMAD pĂ€ringud
PĂ€ringud, et need uuesti saada, on taas triviaalne ja ruumi kokkuhoiu nimel ei ole need siin toodud.
NĂ€ited
+------------------------------------------------------------------------------------ | KLIENTI SQL jÀrjestatud kulumise aja kohaselt +--------------------+----------+----------+----------+----------+----------+-------------------- | kulumise aeg| kutsed| % dbajas| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+-------------------- | KLIENTI SQL jÀrjestatud CPU aja kohaselt +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | CPU aeg| kutsed| % dbajas|kokku_aeg| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | KLIENTI SQL jÀrjestatud Kasutaja I/O ooteaja kohaselt +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | IO ooteaeg| kutsed| % dbajas|kokku_aeg| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | KLIENTI SQL jÀrjestatud Jaga Buffers Lugemiste kohaselt +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | buffers lugemised| kutsed| % dbajas|kokku_aeg| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | KLIENTI SQL jÀrjestatud Plaadi Lugemise Aja kohaselt +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | lugemise aeg| kutsed| % dbajas|kokku_aeg| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | KLIENTI SQL jÀrjestatud TÀitmiste kohaselt +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | kutsed| read| % dbajas|kokku_aeg| % CPU| % IO| andmebaas| pÀringu id +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+--------------------
KokkuvÔte
Kasutades esitatud pĂ€ringuid ja saadud aruandeid, on vĂ”imalik saada pĂ”hjalikum ĂŒlevaade analĂŒĂŒsimiseks ja jĂ”udluse halvenemise probleemide lahendamiseks ĂŒksikute pĂ€ringute ja kogu klastriga seoses.
Areng
Praegused arendusplaanid on jÀrgmised:
- TĂ€iendame aruannet lukustuste ajalooga. PĂ€ringud on testimisel ja esitatakse varsti.
- Kasutada TimescaleDB laiendust pg_stat_activity ja pg_locks ajaloo sÀilitamiseks.
- Valmistada ette pakett lahenduste jaoks GitHubis, et massiliselt juurutada tootmisandmebaasidesse.
JĂ€tkubâŠ
Allikas: habr.com
