trace hooks (for 2nd commitfest)

Поиск
Список
Период
Сортировка
От Itagaki Takahiro
Тема trace hooks (for 2nd commitfest)
Дата
Msg-id 20090723162853.9828.52131E4D@oss.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Sampling profiler updated  (Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
Список pgsql-hackers
I wrote:
> How about export dtrace functions as hook function pointers?

Here is a proposal to integrate profiler to postgres without adding
any tracing markers. The goal is to provide platform-independent
and easy-to-use performance profiler. (typically just adding some
configuration to postgresql.conf.)

----
1. Add Gen_trace_hooks.sed to generate hook functions from probes.d.   It appends hook variables at the tail of
probes.hlike:       extern void (*TRANSACTION_START_hook)(LocalTransactionId arg1);
 

2. Rewrite trace function calls into PG_TRACE(name, (args...)).   Trace macros are defined as:       #define
PG_TRACE(name,args) \           do { \               TRACE_POSTGRESQL_##name args; \               if (name##_hook) \
               name##_hook args; \           } while(0)   and called as:       PG_TRACE(TRANSACTION_START,
(vxid.localTransactionId));
   The changes are not always necessary, but PG_TRACE macro is   useful to add common logic for all probes. We can also
useit   to disable probes; Gen_dummy_probes.sed will be no longer needed.
 

3. Implement profiler using trace hooks.   Timer callbacks might be needed for periodical sampling,   but I'll try to
usesimple polling from sql for now.
 
----

I tested performance regression by empty dtrace-probes and empty
trace-hooks, but the differences were 1-2%. Close enough to dtrace.
   $ pgbench -n -S -c8 -T60   No probes              : tps = 28103   ENABLE_TRACE_HOOK only : tps = 28101
ENABLE_DTRACEonly     : tps = 27945   Enable both            : tps = 27760
 


Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center




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

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: [PATCH] "could not reattach to shared memory" on Windows
Следующее
От: Mark Kirkwood
Дата:
Сообщение: Re: Lock Wait Statistics (next commitfest)