Re: Slow updates, poor IO

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

 



Thanks to everyone that responded.
I've done some benchmarking

checkpoint _segments=16 is fine, going to 64 made no improvement.
Using "update file set size=99" as a statement, but changing 99 on each run..

With 32M shared memory, time in sec and leaving the system idle long enough between runs for auto vacuum to complete.

415
421
470

The I decided to drop the Db and restore from a dump

1150
1500
1018
1071
1077
1140

Then I tried shared_mem=256M as suggested.

593
544

So thats made a big difference. vmstat showed a higher, more consistent, IO level

I wondered why it slowed down after a restore. I thought it would improve, less fragmentation
and all that. So I tried a reindex on all three indexes.

209
228

So thats it! lots of ram and reindex as part of standard operation.

Interestingly, the reindexing took about 16s each. The update on the table with no indexes took about 48sec So the aggregate time for each step would be about 230s. I take that as being an indicator that it is
now maximally efficient.


The option of having more spindles for improved IO request processing isn't feasible in most cases. With the requirement for redundancy, we end with a lot of them, needing an external enclosure. They would have to be expensive SCSI/SAS/FC drives too, since SATA just don't have the IO processing.

It will be interesting to see what happens when good performing SSD's appear.

Meanwhile RAM is cheaper than that drive array!

It would be nice if thing like
* The effect of updates on indexed tables
* Fill Factor
* reindex  after restore

Were mentioned in the 'performance' section of the manual, since that's the part someone will go
to when looking for a solution.


Again, thanks to everyone,

--John



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

  Powered by Linux