Vazhdimi i artikullit ««.
Artikulli do tĂ« shqyrtojĂ« dhe do tĂ« tregojĂ« me kĂ«rkesa dhe shembuj konkretĂ« â çfarĂ« informacioni tĂ« dobishĂ«m mund tĂ« merrni me anĂ« tĂ« historikut tĂ« paraqitjes pg_stat_activity.
Kujdes.
Në lidhje me novitetin e temës dhe përfundimin e periudhës së testimit, artikulli mund të përmbajë gabime. Kritikat dhe vërejtjet janë gjithmonë të mirëpritura dhe të pritura.
Të dhënat hyrëse
Historia e paraqitjes pg_stat_statements
pg_stat_history
KRIJO TABELĂ pg_stat_history (
id SERIAL,
snapshot_timestamp timestamp pa zonë kohe,
database_id integer,
dbid oid,
userid oid,
queryid bigint,
query tekst,
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 );Tabela plotësohet çdo orë, duke përdorur dblink në bazën e të dhënave të synuar. Kolona më interesante dhe e dobishme në tabelë është, natyrisht queryid.
Historia e paraqitjes pg_stat_activity
archive_pg_stat_activity
KRIJO TABELĂ arkiv_pg_stat_activity
(
timepoint timestamp pa zonë kohe,
datid oid,
datname emër,
pid integer,
usesysid oid,
usename emër,
application_name tekst,
client_addr inet,
client_hostname tekst,
client_port integer,
backend_start timestamp pa zonë kohe,
xact_start timestamp pa zonë kohe,
query_start timestamp pa zonë kohe,
state_change timestamp pa zonë kohe,
wait_event_type tekst,
wait_event tekst,
state tekst,
backend_xid xid,
backend_xmin xid,
query tekst,
backend_type tekst,
queryid bigint
);Tabeli paraqet njĂ« tabelĂ« tĂ« ndarĂ« sipas orĂ«ve historike_pg_stat_activity (MĂ« shumĂ« kĂ«tu â dhe kĂ«tu â
Të dhënat dalëse
KOHA E CPU KLASHT (SISTEMI + KLIENTĂT)
Kërkesë
ME
t SI
(
ZBULO
date_trunc('sekondë', timepoint)
FROM activity_hist.archive_pg_stat_activity aa
WHERE timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 orë') DHE pg_stat_history_end+(current_hour_diff * interval '1 orë') DHE
( aa.wait_event_type ĂSHTĂ NULL ) DHE
aa.state = 'aktive'
)
ZBULO count(*)
NDĂR INTO cpu_total
FROM t ;Shembuj
KOHA E CPU KLASHT (SISTEMI + KLIENTĂT) : 28:37:46KOHA E PRITJES KLASHT
Kërkesë
ME
t SI
(
ZBULO
date_trunc('sekondë', timepoint)
FROM activity_hist.archive_pg_stat_activity aa
WHERE timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 orë') DHE pg_stat_history_end+(current_hour_diff * interval '1 orë') DHE
( aa.wait_event_type ĂSHTĂ JO NULL ) DHE
aa.state = 'aktive'
)
ZBULO count(*)
NDĂR INTO cpu_total
FROM t ;Shembuj
KOHA E PRITJES KLASHT : 30:12:49Vlerat totale të pg_stat_statements
Kërkesë
--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 â koha totale e ekzekutimit tĂ« kĂ«rkesave
Kërkesë
dbtime_total = interval '1 millisecond' * pg_total_stat_history_rec.total_time ;Shembuj
SQL DBTIME : 136:49:36SQL CPU TIME â koha e CPU e shpenzuar pĂ«r ekzekutimin e kĂ«rkesave
Kërkesë
ME
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 ;Shembuj
SQL CPU TIME : 27:40:15SQL WAITINGS TIME â koha totale e pritjeve pĂ«r kĂ«rkesat
Kërkesë
ME
t SI
(
Zgjidh
data_trunc('sekond', timepoint)
Nga activity_hist.archive_pg_stat_activity aa
KUJT timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 orë') DHE pg_stat_history_end+(current_hour_diff * interval '1 orë') DHE
( aa.wait_event_type IS NOT NULL ) DHE
aa.state = 'aktive' DHE
backend_type = 'klienti prapa'
)
Zgjidh count(*)
NĂ waiting_total
NGA t ;Shembuj
KOHA E PRITJES SQL: 30:04:09Këto kërkesa janë banale dhe për kursimin e hapësirës detajet e realizimit ato anashkalohen:
Shembuj
| KOHA IOTIME SQL: 19:44:50
| KOHA E KĂRKESES SQL: 19:44:32
| KOHA E SHKRIMIT SQL: 00:00:17
|
| THIRRJET SQL: 12188248
-------------------------------------------------------------
| SHKALLAT E NDARJES SE SHERBIMEVE SQL: 7997039120
| SHKALLAT E HITEVE TE SHERBIMEVE SQL: 8868286092
| PĂSHAT E HITEVE TE SHERBIMEVE SQL / SHKALLAT %: 110.89
| SHKALLAT E DIRTUARA TE SHERBIMEVE SQL: 419945
| SHKALLAT E SHKRIMT TE SHERBIMEVE SQL: 19857
|
| SHKALLAT TEMPORALE TĂ NDARJES SQL: 7836169
| SHKALLAT TEMPORALE TĂ SHKRUARA SQL: 10683938
Të kalojmë te seksi më interesant
STATISTIKAT E PRITJES
TOP 10 PRITJET NGA KOHA TOTAL E PRITJES PĂR PROCESET E KLIENTIT
Kërkesë
ZRIN
wait_event_type , wait_event ,
merr_dhënien_dhe_kohën( wait_event_type , wait_event ,pg_stat_history_begin+(current_hour_diff * interval '1 orë') ,pg_stat_history_end+(current_hour_diff * interval '1 orë') ) si kohë
Nga
activity_hist.archive_pg_stat_activity aa
KUJT
timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 orë') DHE pg_stat_history_end+(current_hour_diff * interval '1 orë') DHE backend_type != 'klienti prapa' DHE wait_event_type IS NOT NULL
GRUPI NGA
wait_event_type, wait_event
RREGULLO Nga 3 ZBRITĂN
KUFIZIMI 10Shembuj
+------------------------------------------------------------------------------------ | 10 MĂ TĂ PRITUR NGA KOHA TOTALE E PRITJES PĂR PROCESAT E SISTEMIT +-----+------------------------------+--------------------+-------------------- | #| lloji_eventit_tĂ«_pritjes| ngjarja_e_pritjes| kohĂ«zgjatja +-----+------------------------------+--------------------+-------------------- | 1| Aktiviteti| LogicalLauncherMain| 10:43:28 | 2| Aktiviteti| AutoVacuumMain| 10:42:49 | 3| Aktiviteti| WalWriterMain| 10:28:53 | 4| Aktiviteti| CheckpointerMain| 10:23:50 | 5| Aktiviteti| BgWriterMain| 09:11:59 | 6| Aktiviteti| 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 PRITJET NGA KOHA TOTAL E PRITJES PĂR PROCESET E KLIENTIT
Kërkesë
Zgjedh
lloji_eventit_të_pritjes, ngjarja_e_pritjes,
get_clients_waiting_duration( lloji_eventit_të_pritjes, ngjarja_e_pritjes, pg_stat_history_begin+(current_hour_diff * interval '1 orë'), pg_stat_history_end+(current_hour_diff * interval '1 orë')) as kohëzgjatja
Nga
activity_hist.archive_pg_stat_activity aa
Këtu
timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 orĂ«') DHE pg_stat_history_end+(current_hour_diff * interval '1 orĂ«') DHE backend_type = 'client backend' DHE lloji_eventit_tĂ«_pritjes NUK ĂSHTĂ NULL
GRUPI NGA lloji_eventit_të_pritjes, ngjarja_e_pritjes
RENDIT NGA 3 ZBRITJE
LIMIT 10Shembuj
+-----+------------------------------+--------------------+--------------------+---------- | #| tipi_eventit_pritur| eventi_pritur| durata| % dbtime +-----+------------------------------+--------------------+--------------------+---------- | 1| Bllokim| id_transaksionit| 08:16:47| 6.05 | 2| IO| LeximiSkedarit| 06:13:41| 4.55 | 3| Skadimi| PgSleep| 02:53:21| 2.11 | 4| LWLock| hartimi_bufrit| 00:40:42| 0.5 | 5| LWLock| io_bufrit| 00:17:17| 0.21 | 6| IO| ShkrimiBufit| 00:01:34| 0.02 | 7| Bllokim| tuple| 00:01:32| 0.02 | 8| Klienti| LeximiKlientit| 00:01:19| 0.02 | 9| IO| LeximiBufit| 00:00:37| 0.01 | 10| LWLock| përmbajtja_bufrit| 00:00:08| 0 +-----+------------------------------+--------------------+--------------------+----------
TIPET E PRITURVE Sipas KOHĂS SĂ TOTALIT TĂ PRITURVE, PĂR PROCESET E SISTEMIT
Kërkesë
ZBRASNI
tipi_eventit_pritur ,
merr_kohën_e_pritur_të_sistemit( tipi_eventit_pritur , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) si durata
FROM
activity_hist.archive_pg_stat_activity aa
WHERE
koha_mesatare 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 != 'klienti backend' AND tipi_eventit_pritur IS NOT NULL
GROUP BY tipi_eventit_pritur
ORDER BY 2 DESCShembuj
+-----+------------------------------+-------------------- | #| wait_event_type| duration +-----+------------------------------+-------------------- | 1| Activity| 53:08:45 | 2| IO| 00:06:24 | 3| LWLock| 00:03:02 +-----+------------------------------+--------------------
LLOJAT E PRITJES SĂ KLIENTĂVE KĂR VETM
Kërkesë
ZHVAT
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') ) si kohëzgjatje
FROM
activity_hist.archive_pg_stat_activity aa
WHERE
timepoint MIDIS pg_stat_history_begin+(current_hour_diff * interval '1 hour') DHE pg_stat_history_end+(current_hour_diff * interval '1 hour') DHE backend_type = 'client backend' DHE wait_event_type IS NOT NULL
GROUP BY wait_event_type
ORDER BY 2 DESCShembuj
+-----+------------------------------+--------------------+-------------------- | #| 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 +-----+------------------------------+--------------------+--------------------
Kohëzgjatja e pritjeve, për proceset sistemore dhe kërkesat e veçanta.
PRITJET PĂR PROCESET SISTEMORE
Kërkesë
ZGJOJ
lloj_backend , emri_dat , tipi_eventeve_pret , eventi_pret , merr_backend_type_waiting_duration( lloj_backend , tipi_eventeve_pret , eventi_pret , pg_stat_history_begin+(ndryshimi_i_ores_sektorial * interval '1 ore') , pg_stat_history_end+(ndryshimi_i_ores_sektorial * interval '1 ore') ) si kohëzgjatje
PREJ
aktivitet_hist.archive_pg_stat_activity aa
KU
pika_tĂ«_kohĂ«s NDĂRKOH qĂ« pg_stat_history_begin+(ndryshimi_i_ores_sektorial * interval '1 ore') DHE pg_stat_history_end+(ndryshimi_i_ores_sektorial * interval '1 ore') DHE lloj_backend != 'klient_backend' DHE tipi_eventeve_pret IS NOT NULL
GRUPI NGA lloj_backend , emri_dat , tipi_eventeve_pret , eventi_pret
RENDIT sipas 5 ZONAShembuj
+-----+-----------------------------+----------+--------------------+----------------------+-------------------- | #| backend_type| dbname| wait_event_type| wait_event| duration +-----+-----------------------------+----------+--------------------+----------------------+-------------------- | 1| lanse logjike replikuese | | Aktivitet| LogjikaLauncherMain| 10:43:28 | 2| lanse autovakuumi | | Aktivitet| AutoVacuumMain| 10:42:49 | 3| walshkrues | | Aktivitet| WalWriterMain| 10:28:53 | 4| kontrolluesi | | Aktivitet| CheckpointerMain| 10:23:50 | 5| shkruesi në sfond | | Aktivitet| BgWriterMain| 09:11:59 | 6| shkruesi në sfond | | Aktivitet| BgWriterHibernate| 01:37:46 | 7| punonjës paralel | tdb1| IO| BufFileWrite| 00:02:35 | 8| punonjës paralel | tdb1| LWLock| buffer_mapping| 00:01:41 | 9| punonjës paralel | tdb1| IO| DataFileRead| 00:01:22 | 10| punonjës paralel | tdb1| IO| BufFileRead| 00:00:59 | 11| walshkrues | | IO| WALWrite| 00:00:57 | 12| punonjës paralel | tdb1| LWLock| buffer_io| 00:00:47 | 13| punonjës autovakuumi | tdb1| LWLock| buffer_mapping| 00:00:13 | 14| shkruesi në sfond | | IO| DataFileWrite| 00:00:12 | 15| kontrolluesi | | IO| DataFileWrite| 00:00:11 | 16| walshkrues | | LWLock| WALWriteLock| 00:00:09 | 17| kontrolluesi | | LWLock| WALWriteLock| 00:00:06 | 18| shkruesi në sfond | | LWLock| WALWriteLock| 00:00:06 | 19| walshkrues | | IO| WALInitWrite| 00:00:02 | 20| punonjës autovakuumi | tdb1| LWLock| WALWriteLock| 00:00:02 | 21| walshkrues | | IO| WALInitSync| 00:00:02 | 22| punonjës autovakuumi | tdb1| IO| DataFileRead| 00:00:01 | 23| kontrolluesi | | IO| ControlFileSyncUpdate| 00:00:01 | 24| shkruesi në sfond | | IO| WALWrite| 00:00:01 | 25| shkruesi në sfond | | IO| DataFileFlush| 00:00:01 | 26| kontrolluesi | | IO| SLRUFlushSync| 00:00:01 | 27| punonjës autovakuumi | tdb1| IO| WALWrite| 00:00:01 | 28| kontrolluesi | | IO| DataFileSync| 00:00:01 +-----+-----------------------------+----------+--------------------+----------------------+--------------------
PRITJET PĂR SQL â pritjet pĂ«r kĂ«rkesa tĂ« veçanta sipas queryid
Kërkesë
Zgjidhni
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')) si duratë
FROM
activity_hist.archive_pg_stat_activity aa
WHERE
timepoint NGA pg_stat_history_begin+(current_hour_diff * interval '1 hour') DHE pg_stat_history_end+(current_hour_diff * interval '1 hour') DHE backend_type = 'client backend' DHE wait_event_type NUK ĂSHTĂ NULL DHE queryid NUK ĂSHTĂ NULL
GROUP BY queryid, datname, wait_event_type, wait_event
ORDER BY 1, 5 DESC Shembuj
+-----+-------------------------+----------+--------------------+--------------------+--------------------+-------------------- | #| 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| +-----+-------------------------+----------+--------------------+--------------------+--------------------+--------------------
STATISTIKAT E KLIENTĂVE SQL â KĂRKESAT MĂ TĂ MĂDHA
Kërkesat për të marrë, përsëri, janë banale dhe për të kursyer hapësirë, nuk janë paraqitur.
Shembuj
+------------------------------------------------------------------------------------ | SQL i KLIENTIT sipas Kohës së Kalimit +--------------------+----------+----------+----------+----------+----------+-------------------- | koha e kaluar| thirrje| % kohë db| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+-------------------- | 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 i KLIENTIT sipas Kohës së CPU +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | koha CPU| thirrje| % kohë db|kohë_totale| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | SQL i KLIENTIT sipas Kohës së Pritjes së I/O +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | koha io_wait| thirrje| % kohë db|kohë_totale| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 i KLIENTIT sipas Leximeve të Buffers të Ndara +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | lexime buffers| thirrje| % kohë db|kohë_totale| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | SQL i KLIENTIT sipas Kohës së Leximeve të Diskut +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | koha e leximit| thirrje| % kohë db|kohë_totale| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | SQL i KLIENTIT sipas Ekzekutimeve +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | thirrje| rreshta| % kohë db|kohë_totale| % CPU| % IO| emri_db| id_kërkese +--------------------+----------+----------+----------+----------+----------+----------+-------------------- | 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 +--------------------+----------+----------+----------+----------+----------+----------+--------------------
Përfundimi
Duke përdorimi i kërkesave të paraqitura dhe raportimeve të marra, mund të kemi një pasqyrë më të plotë për analizën dhe zgjidhjen e problemeve të degradimit të performancës së kërkesave të veçanta dhe të gjithësisë së klasës, në tërësi.
Zhvillimi
Plani i zhvillimit është si më poshtë:
- Të plotësohet raporti me historinë e bllokimeve. Kërkesat janë në testim dhe do të paraqiten së shpejti.
- Të përdoret zgjerimi TimescaleDB për ruajtjen e historisë pg_stat_activity dhe pg_locks.
- Përgatitni një zgjidhje grupore në github për shpërndarjen masive në bazat e të dhënave në prodhim.
VazhdonâŠ
Burimi: habr.com
