Performance question 83 GB Table 150 million rows, distinct select

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linux F12 64bit
Postgres 8.4.4
16 proc / 32GB
8 disk 15KRPM SAS/Raid 5 (I know!)


shared_buffers = 6000MB			
#temp_buffers = 8MB			
max_prepared_transactions = 0		
work_mem = 250MB				
maintenance_work_mem = 1000MB		
	




We now have about 180mill records in that table. The database size is
about 580GB and the userstats table which is the biggest one and the
one we query the most is 83GB.

Just a basic query takes 4 minutes:

For e.g. select count(distinct uid) from userstats where log_date >'11/7/2011'

Since we are looking for distinct we can't obviously use an index. But
I'm wondering what should be expected and what is caused be tuning or
lack there of? Doing an iostat  I see maybe 10-15%, however the cpu
that this query is attached to is obviously in the 99-100% busy arena.
Or am I really IOBound for this single query (sure lots of data
but?!).

It takes roughly 5.5 hours to do a concurrent re-index and this DB is
vac'd nightly.

Just not sure if this is what to expect, however there are many other
DB's out there bigger than ours, so I'm curious what can I do?

Thanks
Tory

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.41    0.00    0.20    1.61    0.00   96.78

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              92.17      3343.06      1718.85 46273281004 23791660544

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.47    0.00    0.61    5.85    0.00   92.07

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             417.50     90372.00         0.00     180744          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.88    0.00    0.76    6.34    0.00   90.03

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             725.00    183560.00       148.00     367120        296

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.18    0.00    0.60    3.59    0.00   93.63

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             711.00    179952.00       240.00     359904        480

[blue@adb01 ~]$ iostat -xd 2
Linux 2.6.32.26-175.fc12.x86_64 (adb01) 	11/16/2011 	_x86_64_	(16 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s
avgrq-sz avgqu-sz   await  svctm  %util
sda               0.18   191.40   68.71   23.45  3343.22  1718.85
54.92     0.12    4.61   2.05  18.94

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s
avgrq-sz avgqu-sz   await  svctm  %util
sda               2.00     0.00  706.50    8.00 178832.00   128.00
250.47    77.76   31.21   1.40 100.00

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s
avgrq-sz avgqu-sz   await  svctm  %util
sda               4.98    17.41  584.58   35.32 148497.51   672.64
240.64    38.04  227.07   1.61  99.55

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s
avgrq-sz avgqu-sz   await  svctm  %util
sda               3.50     0.00  688.50    2.00 174556.00    32.00
252.84     2.81    4.66   1.44  99.30

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s
avgrq-sz avgqu-sz   await  svctm  %util
sda               1.00    10.00  717.50    1.50 182084.00    92.00
253.37     2.43    3.37   1.38  99.45

^C
[blue@]$ iostat 2
Linux 2.6.32.26-175.fc12.x86_64 (adb01) 	11/16/2011 	_x86_64_	(16 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.41    0.00    0.20    1.61    0.00   96.78

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              92.17      3343.33      1718.85 46277115652 23791678248

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.79    0.00    0.51    8.51    0.00   83.20

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             235.50     45168.00         0.00      90336          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.90    0.00    0.35    4.46    0.00   89.29

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             160.00     14688.00       132.00      29376        264

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.01    0.00    0.51   12.80    0.00   78.67

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             163.50     11324.00       700.00      22648       1400

-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux