default_kb_per_strip can only be set when you create the database. The docs refer to this as an option that can be set any time, but that is currently incorrect and the docs are being changed.
The option only controls how much we write to a single dbfile before moving to the next. It does not control the size of each IO operation. In IQ, an IO operation will consist of data from a single memory page that is compressed. There are no settings or options that will change this behavior. 1 memory page gets compressed and is written (and read when needed) from disk as a single IO operation.
We have not seen much issue with IQ having larger IO sizes than storage. While I am sure there is some small overhead, having proper storage with enough bandwidth (50-100 MB/sec per CORE) is the most critical piece. Then factor in the IOPS needed to support that using roughly one-half the page size as an average IO size.
That brings up the last point. IQ IO operations are variable in nature. There is not a set, static size that gets used. This is because the page compression may result in pages that are compressed to less than 10% the original size or pages that compress very little. And everything between. Typically, we see that an IQ page will compress to half the original size in memory (this is above and beyond the other compression that was done to get the data onto the page).
While trying to match the storage sizes to IQ read and write sizes is a good exercise, we find that we can spend a significant portion of our time on something that won't yield much improvement.
Mark