How to trace the postgres?

Поиск
Список
Период
Сортировка
От Wen Yi
Тема How to trace the postgres?
Дата
Msg-id tencent_1C2195E258DC80A4A35C3AEB0657334CD909@qq.com
обсуждение исходный текст
Список pgsql-general
Hi team,
Now I am start to analyse the process of the postgres, using the gdb.
As you can see, at the beginnning of my work, I use the ps to find the postgres's process.

[postgres@fedora postgresql]$ ps -ef | grep postgres
postgres   67468    1599  0 08:11 ?        00:00:01 /home/postgres/pgsql/lib/bin/postgres -D /home/postgres/pgsql/data
postgres   67471   67468  0 08:11 ?        00:00:00 postgres: checkpointer
postgres   67472   67468  0 08:11 ?        00:00:00 postgres: background writer
postgres   67474   67468  0 08:11 ?        00:00:00 postgres: walwriter
postgres   67475   67468  0 08:11 ?        00:00:00 postgres: autovacuum launcher
postgres   67476   67468  0 08:11 ?        00:00:00 postgres: logical replication launcher
root       90486   90459  0 14:32 pts/0    00:00:00 su postgres
postgres   90494   90486  0 14:32 pts/0    00:00:00 bash
postgres   90526   90494  0 14:32 pts/0    00:00:00 psql
postgres   90527   67468  0 14:32 ?        00:00:00 postgres: postgres postgres [local] idle
root       90680   90652  0 14:33 pts/2    00:00:00 su postgres
postgres   90683   90680  0 14:33 pts/2    00:00:00 bash
postgres   90766   90683  0 14:33 pts/2    00:00:00 ps -ef
postgres   90767   90683  0 14:33 pts/2    00:00:00 grep --color=auto postgres

After that, I use the gdp to debug one of the postgres's process

[postgres@fedora postgresql]$ gdb -p 67468

WaitEventSetWait (set=0x25221d8, timeout=60000, occurred_events=0x7ffe2ea9df70, nevents=64, wait_event_info=0) at latch.c:1478
1478    in latch.c
(gdb) next
1480    in latch.c
(gdb) next
1481    in latch.c
(gdb) next
1484    in latch.c
(gdb) next
1487    in latch.c
(gdb) next
1490    in latch.c
(gdb) next
1492    in latch.c
(gdb) next
1493    in latch.c
(gdb) next
1494    in latch.c
(gdb) next
1495    in latch.c
(gdb) next

With the gdb's work, I use the psql to send the query to the postgres.

One thing confuses me is, I really don't know how to trace the postgres's process, I try to trace the background writer, the walwriter but I still don't know what is them work logical.

I think they seem to work in a loop(I read the related code, that's true), but what I want to verify is to identify all the functions and objects involved in the entire process of PGSQL (from syntax parsing to rewriting, from rewriting to optimization, and from optimization to execution).

Can someone give me some advice?
Thanks in advance!

Yours,
Wen Yi

В списке pgsql-general по дате отправления:

Предыдущее
От: "Wen Yi"
Дата:
Сообщение: Re: What is gcda file?
Следующее
От: Lorusso Domenico
Дата:
Сообщение: Re: Question about where to deploy the business logics for data processing