All storage systems
- IOPs stands for Input/output Operations Per Second, and are each SCSI command or NAS operation
- Commonly used to measure the performance of storage
- For read or write operations, please keep in mind they can be measured in units of bytes
- Sometimes this is called operation or block size
- A 1 MB file for example can be read in 256 4kB blocks, or 8 64kB blocks
- In this example, 4kB would be 256 read IOPs, or 8 64kB read IOPs
- Other IOPS are anything not read/write (metadata generally) and each request on the wire is accounted as one IOP in ONTAP
What are the performance characteristics of different op sizes in ONTAP 9?
- Random IOPs will take more CPU and may have higher latency than sequential
- Random IOPs blocks are read not in any order off of disk, like block 3, 12, 66, 1, etc.
- Sequential IOPs blocks are read in order off of disk, like block 1, 2, 3, 4, etc.
- Smaller operation sizes generally require more computation
- In the example above of a 1 MB file, ONTAP has to go to disk 256 times and process 256 operations at 4kB vs only 16 at 64kB
- ONTAP will handle over 64kB fine, but due to the normalization of operation sizes, latency may appear slightly higher
- This is better in newer versions of ONTAP 9 compared to Data ONTAP 8
- A 1 MB read size will have 16 WAFL requests of 64kB each in parallel
Are disk IOPS measured the same as frontend IOPS?
- Disk IOPS vary for various reasons and are decoupled from backend IOPS
- For more information see Why does the sum of all volume IOPs in an aggregate not match the aggregate IOPs?
What causes IOPS?
- ONTAP does not track IOPS for internal processes but uses different methods of accounting them
- IOPS are generated from user requests for all served data protocols (CIFS/FCP/iSCSI/NFS/NVMe*/S3)
- If a workload burst happens, then it must be investigated from the client end
- A list of NFS and CIFS operations, and link to Wikipedia SCSI codes are on this article: What operations are categorized under Other IOPS in ONTAP?
- How to confirm volume latency and IOPS