On Wed, Jun 29, 2016 at 02:36:29PM +0000, Rhodes, Richard L. wrote:
OnTap 8.1.2p1
Our DBA's are complaining that our nSeries (N3220/FAS2240) is reading really slow due to it only returning small 16k blocks. The DBA's are saying the Oracle multi-block read ahead should be reading 128 x 16k blocks = 2m read, but it's only seems to be reading/returning 16k at a time.
On a AIX filesystem mounted CIO, if I run "dd if=/dev/zero of=z bs=1m count=9999" I see writes of 500k.
I may be wrong, but my understanding is that with NFS there is no such think as "block size", at least with V3. Each NFS request R/W request specifies the size and offset.
Unless its past EOF, a read will always return the number of bytes requested and a write will transfer the bytes in the write request.
On solaris, any read by a process becomes a 32K NFS read (which I think is the maximum supported by SUNRPC), and read ahead is 4 "blocks". So a single byte read results in 128K coming in via NFS, and of course is cached on the client OS. Any read of up to 128K results in 128K transferred from the server.
The size of block on the netapp which I think is 4K is irrelevant.
So, in short, its the local OS that controlls read/write to the NFS server. The filer just does what its told. I
Please correct me if I am wrong.
Regards, pdg