Hi All,
I ran pgbench. Here some result:

-bash-3.1$ pgbench -c 50 -t 1000
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 100
number of clients: 50
number of transactions per client: 1000
number of transactions actually processed: 50000/50000
tps = 377.351354 (including connections establishing)
tps = 377.788377 (excluding connections establishing)

Some vmstat samplings in the meantime:

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id
wa st
0  4     92 127880   8252 3294512    0    0   458 12399 2441 14903 22  9 34
35  0
11 49     92 125336   8288 3297016    0    0   392 11071 2390 11568 17  7 51
24  0
 0  2     92 124548   8304 3297764    0    0   126  8249 2291 3829  5  3 64
28  0
 0  1     92 127268   7796 3295672    0    0   493 11387 2323 14221 23  9 47
21  0
 0  2     92 127256   7848 3295492    0    0   501 10654 2215 14599 24  9 42
24  0
 0  2     92 125772   7892 3295656    0    0    34  7541 2311  327  0  1 59
40  0
 0  1     92 127188   7952 3294084    0    0   537 11039 2274 15460 23 10 43
24  0
 7  4     92 123816   7996 3298620    0    0   253  8946 2284 7310 11  5 52
32  0
 0  2     92 126652   8536 3294220    0    0   440  9563 2307 9036 13  6 56
25  0
 0 10     92 125268   8584 3296116    0    0   426 10696 2285 11034 20  9 39
32  0
 0  2     92 124168   8604 3297252    0    0   104  8385 2319 4162  3  3 40
54  0
 0  8     92 123780   8648 3296456    0    0   542 11498 2298 16613 25 10 16
48  0


-bash-3.1$ pgbench -t 10000 -c 50
starting vacuum...end.
transaction type: SELECT only
scaling factor: 100
number of clients: 50
number of transactions per client: 10000
number of transactions actually processed: 500000/500000
tps = 8571.573651 (including connections establishing)
tps = 8594.357138 (excluding connections establishing)


-bash-3.1$ pgbench -t 10000 -c 50 -S
starting vacuum...end.
transaction type: SELECT only
scaling factor: 100
number of clients: 50
number of transactions per client: 10000
number of transactions actually processed: 500000/500000
tps = 8571.573651 (including connections establishing)
tps = 8594.357138 (excluding connections establishing)


(next test is with scaling factor 1)

-bash-3.1$ pgbench -t 20000 -c 8 -S pgbench
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 8
number of transactions per client: 20000
number of transactions actually processed: 160000/160000
tps = 11695.895318 (including connections establishing)
tps = 11715.603720 (excluding connections establishing)

Any comment ?

I can give you also some details about database usage of my application:
- number of active connections: about 60
- number of idle connections: about 60

Here some number from a mine old pgfouine report:
- query peak: 378 queries/s
- select: 53,1%, insert 3,8%, update 2,2 %, delete 2,8 %

The application is basically a web application and the db size is 37 GB.

Is there a way to have the number of queries per second and the percentages
of  select/update/insert/delete without pgfouine ?
What is the performance impact of stats_start_collector = on and
stats_row_level = on (they are on since I use autovacuum)

Thanks a lot for your help.

ste


On Wed, Jan 7, 2009 at 8:05 PM, Stefano Nichele
<stefano.nich...@gmail.com>wrote:

> Ok, here some information:
>
> OS: Centos 5.x (Linux 2.6.18-53.1.21.el5 #1 SMP Tue May 20 09:34:18 EDT
> 2008 i686 i686 i386 GNU/Linux)
> RAID: it's a hardware RAID controller
> The disks are 9600rpm SATA drives
>
> (6 disk 1+0 RAID array and 2 separate disks for the OS).
>
>
> About iostat (on sdb I have pg_xlog, on sdc I have data)
>
> > iostat -k
> Linux 2.6.18-53.1.21.el5 (*******)       01/07/2009
>
> avg-cpu:  %user   %nice %system %iowait  %steal   %idle
>         17.27    0.00    5.13   45.08    0.00   32.52
>
> Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
> sda              30.42        38.50       170.48  182600516  808546589
> sdb              46.16         0.23        52.10    1096693  247075617
> sdc             269.26       351.51       451.00 1667112043 2138954833
>
>
>
> > iostat -x -k -d 2 5
> Linux 2.6.18-53.1.21.el5 (*******)       01/07/2009
>
> Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz
> avgqu-sz   await  svctm  %util
> sda               0.17    12.68  0.47 29.95    38.51   170.51    13.74
> 0.03    0.86   0.19   0.57
> sdb               0.01    80.11  0.05 46.11     0.23    52.01     2.26
> 0.01    0.22   0.22   1.01
> sdc               7.50    64.57 222.55 46.69   350.91   450.98     5.96
> 0.57    2.05   3.13  84.41
>
> Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz
> avgqu-sz   await  svctm  %util
> sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00
> 0.00    0.00   0.00   0.00
> sdb               0.00   196.00  1.00 117.00     4.00  1252.00    21.29
> 0.02    0.19   0.19   2.30
> sdc               1.50    66.00 277.00 66.50  3100.00   832.00    22.89
>  50.84  242.30   2.91 100.10
>
> Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz
> avgqu-sz   await  svctm  %util
> sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00
> 0.00    0.00   0.00   0.00
> sdb               0.00   264.50  0.00 176.50     0.00  1764.00    19.99
> 0.04    0.21   0.21   3.70
> sdc               3.50   108.50 291.50 76.00  3228.00   752.00    21.66
>  89.42  239.39   2.72 100.05
>
> Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz
> avgqu-sz   await  svctm  %util
> sda               0.00     4.98  0.00  1.00     0.00    23.88    48.00
> 0.00    0.00   0.00   0.00
> sdb               0.00    23.88  0.00  9.45     0.00   133.33    28.21
> 0.00    0.21   0.21   0.20
> sdc               1.00   105.97 274.13 53.73  3297.51   612.94    23.85
>  67.99  184.58   3.04  99.55
>
> Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz
> avgqu-sz   await  svctm  %util
> sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00
> 0.00    0.00   0.00   0.00
> sdb               0.00    79.00  0.00 46.00     0.00   500.00    21.74
> 0.01    0.25   0.25   1.15
> sdc               2.50   141.00 294.00 43.50  3482.00   528.00    23.76
>  51.33  170.46   2.96 100.05
>
>
> vmstat in the same time:
> > vmstat 2
> procs -----------memory---------- ---swap-- -----io---- --system--
> -----cpu------
> r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id
> wa st
> 0 27     80 126380  27304 3253016    0    0    98    55    0    1 17  5 33
> 45  0
> 0 26     80 124516  27300 3255456    0    0  3438  1724 2745 4011 11  2  8
> 78  0
> 1 25     80 124148  27276 3252548    0    0  3262  2806 3572 7007 33 11  3
> 53  0
> 1 28     80 128272  27244 3248516    0    0  2816  1006 2926 5624 12  3 12
> 73  0
>
>
> I will run pgbench in the next days.
>
>
>
>> Aside from all the advice here about system tuning, as a system admin I'd
>> also ask is the box doing the job you need? And are you looking at the
>> Postgres log (with logging of slow queries) to see that queries perform in a
>> sensible time? I'd assume with the current performance figure there is an
>> issue somewhere, but I've been to places where it was as simple as adding
>> one index, or even modifying an index so it does what the application
>> developer intended instead of what they ask for ;)
>>
>>
>
> I already checked postgres log and resolved index/slow queries issues.
> Actually I have queries that sometime are really fast, and sometime go in
> timeout.
> But all the required indexes are there. For sure, there are space to
> improve performances also in that way, but I would like also to investigate
> issue from other point of views (in order to understand also how to monitor
> the server).
>
>
> Cheers and thanks a lot.
> ste
>
>
> --
> Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance
>

Reply via email to