рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг PgCenter рдХреЗ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрд▓реЗрдХреНрд╕реА рд▓реЗрд╕реЛрд╡реНрд╕реНрдХреА

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЕрд▓реЗрдХреНрд╕рдИ рд▓реЗрд╕реЛрд╡реНрд╕реНрдХреА рджреНрд╡рд╛рд░рд╛ 2019 рдХреА рд╢реБрд░реБрдЖрдд рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ - "рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде


рд╕рдордп-рд╕рдордп рдкрд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕реНрд░реЛрдд рдЬрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ рдФрд░ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрддрдиреЗ рд╣реА рдЖрднрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрддреЗ рд╣реИрдВред pgCenter CLI рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рдФрд░ рдЕрдм рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ pgCenter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреИрд╕реЗ рдФрд░ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рдХреИрд╕реЗ рджрд┐рдпрд╛ рдЬрд╛рдП:


  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ Postgres рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ;
  • рдЬрд▓реНрджреА рд╕реЗ рдмреБрд░реЗ рдЧреНрд░рд╛рд╣рдХ рдвреВрдВрдвреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦрддреНрдо рдХрд░реЗрдВ;
  • рднрд╛рд░реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВ;
  • рдФрд░ pgCenter рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЧреБрд░ред


, . Data Egret. . , PostgreSQL.


, pgCenter , .



. . Linux, , . - Postgres'. Postgres . PostgreSQL DBA. , Postgres . .



. : Slack, Telegram. - . .



, , Linix. . , Linux . , , .



, Postgres. Postgres. - Postgres'. Postgres. Postgres.



Postgres . Postgres Postgres. , Postgres (views), .


. . . - .



- , , , , , . - . : ┬л ?┬╗, ┬л ?┬╗ ┬л ?┬╗. , .



, , , , . - pgCenter.


. , TOP- .


- , C . .. . Golang, , . .


Go pgCenter . . , , , targz, deb- rpm- . .. - , make, GCC Golang. , , .



pgCenter , top- ( ).



. , . wait_events. , -.



PSQL. Postgres, PSQL Postgres. pgCenter , ┬лpgcenter top┬╗ postgres - (-, ).



, - , , , , PSQL, , , .



, UNIX-, . . go' , pgCenter , UNIX.



, libpq. , , pg_stat_statements pgCenter , . .



(pgcenter top). , , . , - . , , . . , pgCenter, top-, .



тАУ . .



тАУ , Postgres. - , Postgres .



тАУ (views). stat-, Postgres, .



, . -, . . , , , , . .


, . (regexp). . , , - : .



, pgCenter. тАУ - .



, USE . . - , .



. . , Top, . : , ..



, : , , .



, , swap. swap, , swap. тАУ .



- : ┬л - ?┬╗. . , .



, тАУ - Postgres. uptime. , uptime Postgres тАУ , , . , Postgres .



. , Postgres, . , , . . . .



, , . , , . , . , . - .



, Postgres MVCC . MVCC . , . .



'd'.


, pg_stat_database , ┬лrollbacks┬╗. ┬лROLLBACK┬╗, /. (constraints), . . , .


pg_stat_database (conflicts) (deadlocks). , , , - .



, pgCenter. , . -, :


  • top


  • vmstat


  • iostat


  • nicstat


  • pg_stat_activity


  • pg_stat_statements



, .



, , - .



. , , . . . CPU usage тАУ 85 %. , - . , . , Postgres. Postgres , .



, , 38 , - . state: waiting idle_xact. Waiting 0, . . . , 20 idle . , (xact_age) тАУ . , . тАУ 15 . , .



(: pg_stat_statements. pg_stat_statements "x", . "shift + x" pg_stat_statements_timings. "pg_stat_statements not available on this database", pg_stat_statements postgres postgres: create extension pg_stat_statements;)


, () . , . pg_stat_statements. contrib. : , . contrib , . , -. Postgres тАУ pg_stat_statements.


, . , . . , CPU pg_stat_statements. тАУ 2 . SELECT COUNT (*) FROM "game_competition_events". . . , , , , . , - , , -. , .


. total_time. total_time , , /: . , ┬лt_cpu_t┬╗. . .



, . , , ┬лcpu_t┬╗, , , . snapshot , , . . SELECT "courses_logs".* FROM course_logs. , 5 . , , , , .


┬лcalls┬╗, , . . . . .



, . Top pg_stat_activity pg_stat_statements. pgCenter .



тАУ -. , , , -.



. , - тАУ 27 %. , -.



, ┬лbackground worker┬╗. , .



┬лwait_event┬╗. , -. . . .



-. 'B' iostat. . , 99 %. тАУ , NVME. , latency.



latency, latency 1 . .


, . , SSD NVME- - , , latency. latency, , - .



, -. pg_stat_statements , -. ┬лt_read_t┬╗, . . , .


. ┬лread_t┬╗. , -, .


/ track_io_timing.


, , . pgCenter queryid. . , pg_stat_statements. . . . . pgCenter . queryid. pgCenter .



:


  • тАУ summary, , pg_stat_statements. , , -.


  • , , summary. .


  • , , .



, , .



, , , top, iostat pg_stat_activity, pg_stat_statements. , .



тАУ , -. Postgres , .


:


  • Checkpointer pocess.


  • WAL writer process.


  • Autovacuum workers.


  • Background workers.



pgCenter , , .



, : - , . , , .



, , . - .



.



. , , 22 21 . , - .



wait_event , , . . . - - , , .



, (idle in transaction). , 6 . .



, , 10- , . , , 7 . 10- .



wait_etype, wait_event , , , (Client:Client Read). , - , - . , , - , , . , , .


тАУ . : pg_cancel_backend pg_terminate_backend. , backend. pgCenter . backend pid, .



:


  • Pg_stat_activity.


  • Pg_stat_statements.


  • Pg_cancel_backend ().


  • Pg_terminate_backend ().




, . , , .


. , . - . , ( , , ). - , , idle transaction . тАФ .



тАУ . , (deadlocks) .



. ALTER TABLE, , , . . , , 11- . Postgres, . ALTER .



тАУ CREATE INDEX CONCURRENTLY, - , , . .



, .. , production Postgres , .



pg_stat_replication. , Postgres, .


pgCenter pg_stat_replication. , , .


5 . .



, , . 2 walreceiver, . . 2 .



, , , . , , - . , , тАУ - .


, pg_stat_replication , . 1,5 GB. replay_lag тАУ 2 . . . 2- . 2 , . . .



, , 2 pg_basebackup 1 pg_receivewal. Pg_basebackup тАУ . pg_stat_replication. pg_receivewal тАУ , . . . , , . - , .



pg_stat_replication . . , 5 . : pending, write, flush, replay, total_lag. . . .


Pending тАУ , . .


Write тАУ , , . . .


Flush тАУ , .


Replay тАУ . .


Total_lag тАУ .


, , , - , . , ; , ; , , .



, . . , , .



тАУ , . . тАУ , . Postgres, . , - .



:


  • pg_stat_replication.


  • pg_wal_lsn_diff().


  • pg_current_wal_lsn().


  • pg_last_commited_xact().




, .



, top . тАУ Seq Scan, update, delete, insert, .



. . .



. , , . , .



, , pg_stat_progress_vacuum 9.6. , , , , , . pg_stat_progress_vacuum тАУ . , . , , , . , .



, . , , . . postgresql.conf, - reload. , , .


. , , . . , .


psql, . . psql , pgCenter. - , pgCenter, psql .



top- тАУ , pgCenter. top , pgCenter. record report.


, . . report , , Top. тАФ .



-. - , record. . .



wait_eventтАЩ, , .



: SELECT . , , , 44 % , - , тАУ - , .



: VACUUM FULL. , VACUUM FULL IO , 12 %. , , .



! . . . , , pg_stat_statements, query . - - ?


, . , , , , - , . , , - . . - . . . , , -. , , . , , .


. , rollbacks. rollbacks, rollbacks, .


, , , pg_stat_database . rollbacks .


pg_stat_statements rollbacks, .


, . . `SELECT FROM pg_stat_database JNOIN pg_stat_statements` pg_stat_statements, rollbacks , . . , 10-20 .


, ! Postgres ?


9.0-9.1, C . - , , , , . Go , 9.4. 9.4 , SELECTтАж where filter. . (9.3) . . , , . , , , , .


, ! , TOP. .


, , . , тАУ . less ( ), тАУ , .


. TOP ?


. , , , . , . , . , , .


! . , . , 85% CPU usage, , . pg_stat_statements. . , .


. CPU . тАУ t_all_t. pg_stat_statements. , . , . t . . . ┬лt┬╗. . . . , .


. , pg_stat_statements, ?


pg_stat_statements real time.


, pg_stat_statements , 85 CPU usage тАУ .


, . , pg_stat_statements . , , , 10 , . 10 тАУ , , , atop. atop ?


, . pg_stat_statements, CPU, , , pg_stat_statements.


. , Grafana, . . . pgCenter тАУ , , , , .


. pgCenter atop , Grafana?


pgCenter report pgCenter record, . . . , , . . ., , pgCenter report , , pg_stat_database sar . . atop, .


, ! , Postgres, , , . , . ? ?


10 . ┬л-f┬╗, . , , , 10 . , pg_stat_activity , . . , . , , 50 . , , 1-2 %. . . , , - 0,5-2 % .


. , - .


, . , , 0,04 % . , , . - .


.


, .


, ! . wait_event Running тАУ ?


.


CPU.


, . . . , wait_events PID , , backend - , , - . Running, , . . .


CPU?


, CPU, . . - . .


! ! - , , Ubuntu?


C, . , , . PDGD Ubuntu. Launchpad , - . . , . Go -, dev-. . , travis-ci build, build . . . Realeses, . wget, , tarтАЩ , .


Goreleaser, . .


, GO . , . , SOLID. , , Goreleaser , , , . CтАЩ , . , Realeses. !


Updated. Goreleaser , !


, queryid. queryid. , . ?


, . , - . , . - . . . , . . . . , , .


, , queryid тАУ .


рд╣рд╛рдВ, рд╢реБрд░реВ рдореЗрдВ рдХреЙрд▓рдо рдХреА рдЪреМрдбрд╝рд╛рдИ рдЙрдЫрд▓реА рдФрд░ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрд╡-рд╢рд╛рдЦрд╛ рдореЗрдВ рддрдп рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рд╕реНрдЯрд░-рд╢рд╛рдЦрд╛ рдореЗрдВ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИред рдлрд░рд╡рд░реА рдХреЗ рдордзреНрдп рдореЗрдВ, рдореИрдВ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрдлрд┐рд▓рд░ рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдФрд░ рдмрд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрд▓рдо рдЪреМрдбрд╝рд╛рдИ рд╣реЛрдЧреАред


рдорд╣рд╛рдиред


рд╣рд╛рдВ, рдЖрдк рддреАрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреМрдбрд╝рд╛рдИ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдзрдиреНрдпрд╡рд╛рдж рдПрд▓реЗрдХреНрд╕реА!


рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!


рд╡реАрдбрд┐рдпреЛ:



All Articles