Thread: stats on cursor and query execution troubleshooting

stats on cursor and query execution troubleshooting

From
"Alban Médici (NetCentrex)"
Date:
Hi,

I'm looking for the statistic of memory,  CPU,  filesystem access while executing some regular SQL query,  and I want to compare them to
same kind of results while executing a cursor function.

The stat collector give me good results (sequencial scans ,  acceded tuple .....)  for regular query but nor for cursor (as explain in the documentation)

For more results, i have activated some log level in the postgresql.conf :
    show_query_stats = true

But I have some trouble in the results interpretation  such as :

! system usage stats:
!       2.776053 elapsed 1.880000 user 0.520000 system sec
!       [1.910000 user 0.540000 sys total]
!       0/0 [0/0] filesystem blocks in/out
!       5/1 [319/148] page faults/reclaims, 0 [0] swaps
!       0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
!       0/0 [0/0] voluntary/involuntary context switches
! postgres usage stats:
!       Shared blocks:       3877 read,          0 written, buffer hit rate = 0.00%
!       Local  blocks:          0 read,          0 written, buffer hit rate = 0.00%
!       Direct blocks:          0 read,          0 written

Here is  result done after fetching ALL a row with 178282 records in the table.
looking at the i/o stat of linux I saw a filesystem access while executing this request but not in the previous log !!!
!       0/0 [0/0] filesystem blocks in/out

I'm running postgresql 7.2.4  under redhat 7.2

Does am i wrong in my interpretation ?

Does any newest postgresql version could told me execution paln for a fetch AND better stats ?

thx

Ps: please excuse my poor english

-- 
Alban Médici
R&D software engineer
------------------------------
you can contact me @ :
http://www.netcentrex.net
------------------------------

Re: stats on cursor and query execution troubleshooting

From
Tom Lane
Date:
=?ISO-8859-1?Q?=22Alban_M=E9dici_=28NetCentrex=29=22?= <amedici@fr.netcentrex.net> writes:
> I'm looking for the statistic of memory,  CPU,  filesystem access while=20
> executing some regular SQL query,  and I want to compare them to
> same kind of results while executing a cursor function.

I think your second query is finding all the disk pages it needs in
kernel disk cache, because they were all read in by the first query.
This has little to do with cursor versus non cursor, and everything
to do with hitting recently-read data again.

            regards, tom lane

Re: stats on cursor and query execution troubleshooting

From
"Alban Médici (NetCentrex)"
Date:
Thanks for your repply,  but I still don"t understand why the statistic logs   :
!       0/0 [0/0] filesystem blocks in/out

it told me there is no hard disk access, I'm sure there is,  I heard my HDD,  and see activity using gkrellm (even using my first query ; big select *) ?

2004-10-08 10:40:05 DEBUG:  query: select * from "LINE_Line";
2004-10-08 10:40:53 DEBUG:  QUERY STATISTICS
! system usage stats:
!       48.480196 elapsed 42.010000 user 0.700000 system sec
!       [42.030000 user 0.720000 sys total]
!       0/0 [0/0] filesystem blocks in/out
!       6/23 [294/145] page faults/reclaims, 0 [0] swaps
!       0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
!       0/0 [0/0] voluntary/involuntary context switches
! postgres usage stats:
!       Shared blocks:       3902 read,          0 written, buffer hit rate = 11.78%
!       Local  blocks:          0 read,          0 written, buffer hit rate = 0.00%
!       Direct blocks:          0 read,          0 written


looking at the web some logs,  I saw those fields filled (i/o filesystem)
Does my postgresql.conf missing an option or is therer a known bug of my postgresql server  7.2.4 ?



thx
regards

Alban Médici


on 06/10/2004 16:16 Tom Lane said the following:
"Alban Médici (NetCentrex)" <amedici@fr.netcentrex.net> writes: 
I'm looking for the statistic of memory,  CPU,  filesystem access while=20
executing some regular SQL query,  and I want to compare them to
same kind of results while executing a cursor function.   
I think your second query is finding all the disk pages it needs in
kernel disk cache, because they were all read in by the first query.
This has little to do with cursor versus non cursor, and everything
to do with hitting recently-read data again.
		regards, tom lane
 

-- 
Alban Médici
R&D software engineer
------------------------------
you can contact me @ :
http://www.netcentrex.net
------------------------------
=?ISO-8859-1?Q?=22Alban_M=E9dici_=28NetCentrex=29=22?= <amedici@fr.netcentrex.net> writes:
> Thanks for your repply,  but I still don"t understand why the statistic
> logs   :
> !       0/0 [0/0] filesystem blocks in/out
> it told me there is no hard disk access, I'm sure there is,

Complain to your friendly local kernel hacker.  We just report what
getrusage() tells us; so if the number is wrong then it's a kernel bug.

            regards, tom lane

Re: [pgsql-benchmarks] stats on cursor and query execution

From
"Alban Médici (NetCentrex)"
Date:
Ok thanks tom, what shall we do without U ?

by the way I have look at my kernel and getrusage() is well configure and return good results.
i/o stats too.

I test an other version of postgresql and now, it works fine.
It' seems to be an install bug.

thx
regards, Alban Médici


on 08/10/2004 15:55 Tom Lane said the following:
"Alban Médici (NetCentrex)" <amedici@fr.netcentrex.net> writes: 
Thanks for your repply,  but I still don"t understand why the statistic
logs   :
!       0/0 [0/0] filesystem blocks in/out
it told me there is no hard disk access, I'm sure there is,   
Complain to your friendly local kernel hacker.  We just report what
getrusage() tells us; so if the number is wrong then it's a kernel bug.
		regards, tom lane
 

-- 
Alban Médici
R&D software engineer
------------------------------
you can contact me @ :
IPPhone : +33 (0)2 31 46 37 68
alban.medici@fr.netcentrex.net
http://www.netcentrex.net
------------------------------