AWS New I/O optimized I4i - IOPS
Go back to listI/O Per Seconds is one of the most used value to evaluate the performance of a volume, raw SSD, magnetic or Block Storage. The average and maximum IOPS gives a good preview of what will be the speed of a database or any disk-intensive task.
To measure IOPS, we use the well known tool Flexible I/O Tester (FIO) the following configuration:
- 4KB blocks
- Random access
- Read then Write
- Direct access to device without filesystems
- libaio engine
- Number of job equal to CPU
{
"configuration": {
"chart": {
"type": "bar",
"polar": false,
"zoomType": "",
"options3d": {},
"height": 600,
"width": null,
"margin": null,
"inverted": false,
"zooming": {}
},
"credits": {
"enabled": false
},
"title": {
"text": ""
},
"colorAxis": null,
"subtitle": {
"text": ""
},
"xAxis": {
"title": {
"text": [
""
],
"useHTML": false,
"style": {
"color": "#666666"
}
},
"categories": [
"provider__name",
"flavor__name"
],
"lineWidth": 1,
"tickInterval": null,
"tickWidth": 0,
"tickLength": 10,
"tickPixelInterval": null,
"plotLines": null,
"labels": {
"enabled": false,
"format": null,
"formatter": "",
"style": {
"color": "#666666",
"cursor": "default",
"fontSize": "11px"
},
"useHTML": false,
"step": 0
},
"plotBands": null,
"visible": true,
"floor": null,
"ceiling": null,
"type": "linear",
"min": null,
"gridLineWidth": null,
"gridLineColor": null,
"minorTickInterval": null,
"minorTickWidth": 0,
"minTickInterval": null,
"startOnTick": true,
"endOnTick": null,
"tickmarkPlacement": null,
"units": null,
"minRange": null
},
"yAxis": [
{
"title": {
"text": [
"IOPS - Higher is better<br>Read colored, Write darker"
],
"useHTML": false,
"style": {
"color": "#666666"
}
},
"categories": [
"readwrite"
],
"plotLines": null,
"plotBands": null,
"lineWidth": null,
"tickInterval": 50000,
"tickLength": 10,
"floor": null,
"ceiling": null,
"gridLineInterpolation": null,
"gridLineWidth": 1,
"gridLineColor": "#CCC",
"min": null,
"max": 414558,
"minorTickInterval": null,
"minorTickWidth": 0,
"minTickInterval": null,
"startOnTick": true,
"endOnTick": null,
"minRange": null,
"type": "linear",
"tickmarkPlacement": null,
"labels": {
"enabled": true,
"formatter": ":abs",
"style": {
"color": "#666666",
"cursor": "default",
"fontSize": "11px"
},
"useHTML": false
}
},
{
"title": {
"enabled": false
},
"categories": [
"readwrite"
],
"plotLines": null,
"plotBands": null,
"lineWidth": null,
"tickInterval": 50000,
"tickLength": 10,
"floor": null,
"ceiling": null,
"gridLineInterpolation": null,
"gridLineWidth": 1,
"gridLineColor": "#CCC",
"min": null,
"max": 414558,
"minorTickInterval": null,
"minorTickWidth": 0,
"minTickInterval": null,
"startOnTick": true,
"endOnTick": null,
"minRange": null,
"type": "linear",
"tickmarkPlacement": null,
"labels": {
"enabled": false
},
"inkedTo": 0
}
],
"zAxis": {
"title": {
"text": "IOPS - Higher is better<br>Read colored, Write darker"
}
},
"plotOptions": {
"series": {
"dataLabels": {
"enabled": true,
"format": "{series.name}",
"distance": 30,
"align": "left",
"inside": null,
"allowOverlap": false,
"style": {
"fontSize": "17px"
}
},
"showInLegend": null,
"turboThreshold": 1000,
"stacking": "normal",
"groupPadding": 0,
"centerInCategory": false,
"findNearestPointBy": "x"
}
},
"navigator": {
"enabled": false
},
"scrollbar": {
"enabled": false
},
"rangeSelector": {
"enabled": false,
"inputEnabled": false
},
"legend": {
"enabled": false,
"maxHeight": null,
"align": "center",
"verticalAlign": "bottom",
"layout": "horizontal",
"width": null,
"margin": 12,
"reversed": false
},
"series": [
{
"name": "Amazon Web Services i3.4xlarge",
"verbose": "Amazon Web Services i3.4xlarge Read",
"data": [
{
"x": 0,
"y": 414255.3,
"verbose": 414255.3
}
],
"color": "rgba(247, 152, 29, 0.8)",
"zIndex": 10
},
{
"name": "Amazon Web Services i3.4xlarge",
"verbose": "Amazon Web Services i3.4xlarge Write",
"data": [
{
"x": 0,
"y": 182614.26315789475,
"verbose": 182614.26315789475
}
],
"pointPlacement": 0.1,
"color": "#9e9fa3",
"linkedTo": ":previous",
"yAxis": 1,
"dataLabels": {
"enabled": false,
"style": {
"textAlign": "left"
}
}
},
{
"name": "Amazon Web Services i3en.3xlarge",
"verbose": "Amazon Web Services i3en.3xlarge Read",
"data": [
{
"x": 1,
"y": 259565.55555555556,
"verbose": 259565.55555555556
}
],
"color": "rgba(247, 152, 29, 0.8)",
"zIndex": 10
},
{
"name": "Amazon Web Services i3en.3xlarge",
"verbose": "Amazon Web Services i3en.3xlarge Write",
"data": [
{
"x": 1,
"y": 207597.7,
"verbose": 207597.7
}
],
"pointPlacement": 0.1,
"color": "#9e9fa3",
"linkedTo": ":previous",
"yAxis": 1,
"dataLabels": {
"enabled": false,
"style": {
"textAlign": "left"
}
}
},
{
"name": "Amazon Web Services i4i.4xlarge",
"verbose": "Amazon Web Services i4i.4xlarge Read",
"data": [
{
"x": 2,
"y": 414025.1,
"verbose": 414025.1
}
],
"color": "rgba(247, 152, 29, 0.8)",
"zIndex": 10
},
{
"name": "Amazon Web Services i4i.4xlarge",
"verbose": "Amazon Web Services i4i.4xlarge Write",
"data": [
{
"x": 2,
"y": 227681.2,
"verbose": 227681.2
}
],
"pointPlacement": 0.1,
"color": "#9e9fa3",
"linkedTo": ":previous",
"yAxis": 1,
"dataLabels": {
"enabled": false,
"style": {
"textAlign": "left"
}
}
}
],
"drilldown": {},
"tooltip": {
"enabled": true,
"useHTML": false,
"format": null,
"headerFormat": "",
"pointFormat": "<span style=\"color:{series.color}\">{series.name}</span>: <b>{point.y:.1f} IOPS</b><br/>",
"footerFormat": "",
"shared": false,
"outside": false,
"valueDecimals": null,
"split": false
},
"annotations": null
},
"hc_type": "chart",
"id": "317694200016877924484583559879987877339"
}
Assertions
- With the chosen sizes, i3 and i4i propose quite the same level of performance with read operations. i4i has a boost of 40 KIOPS in write.
- The i3en and its 7.5TB SSD gives a better rate than i3 in write but lower in read.