> 1) Memory - clumsily adjusted shared_buffer - tried three values: 64,
> 128, 256 with no discernible change in performance. Also adjusted,
> clumsily, effective_cache_size to 1000, 2000, 4000 - with no
> discernible change in performance. I looked at the Admin manual and
> googled around for how to set these values and I confess I'm clueless
> here. I have no idea how many kernel disk page buffers are used nor do
> I understand what the "shared memory buffers" are used for (although
> the postgresql.conf file hints that it's for communication between
> multiple connections). Any advice or pointers to articles/docs is
You want values *much* higher than that. How much RAM do you have? See:
For example, if you have 512mb RAM, I'd crank up the shared buffers to 8000.
the sort_mem to 8mb, and the effective_cache_size to 24,000.
> 3) RAID - haven't tried it - but I'm guessing that the speed
> improvement from a RAID 5 may be on the order of 10x
Probably not ... more like 1.5x - 2.0x, but that's still a significant help,
yes? Also, the advantage will get better the more your data grows.
> - which I can
> likely get from using something like HDF.
HDF sucks for I/O speed. XServe will become a much more significant option
in the market when Apple can bring themselves to abandon HDF, and adopt XFS
or something. This is part of your problem.
> Since the data is unlikely to
> grow beyond 10-20gig, a fast drive and firewire ought to give me the
> performance I need.
Not sure about that. Is Firewire really faster for I/O than modern SCSI or
233mhz ATA? I don't do much Mac anymore, but I'd the impression that
Firewire was mainly for peripherals ....
What is important for your app in terms of speed is to get the data coming
from multiple drives over multiple channels. Were it a PC, I'd recommend a
motherboard with 4 IDE channels or Serial ATA, and spreading the data over 4
drives via RAID 0 or RAID 5, and adding dual processors. Then you could use
multiple postgres connections to read different parts of the table
> I know experimentally that the current machine can
> sustain a 20MB/s transfer rate which is 20-30x the speed of these
That is interesting. Adjust your PostgreSQL.conf and see what results you
get. It's possible that PostgreSQL is convinced that you have little or no
RAM because of your .conf settings, and is swapping stuff to temp file on
> 4) I'd previously commented out the output/writing steps from the app -
> to isolate read performance.
Aglio Database Solutions
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?