Hi, I was reading a benchmark that sets out block sizes against raw IO performance for a number of different RAID configurations involving high end SSDs (the Mtron 7535) on a powerful RAID controller (the Areca 1680IX with 4GB RAM). See http://jdevelopment.nl/hardware/one-dvd-per-second/ From the figures being given it seems to be the case that a 16KB block size is the ideal size. Namely, in the graphs its clear that a high amount of IOPS (60000) is maintained until the 16KB block size, but drops sharply after that. MB/sec however still increases until a block size of ~128KB. I would say that the sweet spot is therefor either 16KB (if you emphasis many IOPS) or something between 16KB and 128KB if you want to optimize for both a large number of IOPS and a large number of MB/sec. It seems to me that MB/sec is less important for most database operations, but since we're talking about random IO MB/sec might still be an important figure. PostgreSQL however defaults to using a block size of 8KB. From the observations made in the benchmark this seems to be a less than optimal size (at least for such an SSD setup). The block size in PG only seems to be changeable by means of a recompile, so it's not something for a quick test. Nevertheless, the numbers given in the benchmark intrigue me and I wonder if anyone has already tried setting PG's block size to 16KB for such a setup as used in the SSD benchmark. Thanks in advance for all help, Henk Express yourself instantly with MSN Messenger! MSN Messenger |