Amazon Web Services : M5 vs M5a vs M6g
In other words Intel vs AMD vs ARM. AWS recently released Graviton series for all their main instance types: R6g with extended memory, C6g for compute optimized and M6g for general purpose. Their offering has always been based on Intel but in the past years we saw AMD and now with Graviton 2 making AWS is based on their own chips. Amazon Web services announces their Graviton processors as a new choice for their customers for increase their performance for a lower cost. But what's the difference between all these solutions identical on the paper ? Let's do CPU benchmark to answer it.
Specification
For our benchmark, we took 8CPU-32GB VM from each series:
Product | Price | CPU | Frequency |
---|---|---|---|
m5.2xlarge | 0.38 | Intel(R) Xeon(R) Platinum 8175M Intel(R) Xeon(R) Platinum 8259CL | 2.5-3.2GHz |
m5a.2xlarge | 0.34 | AMD EPYC 7571 | 2.4-3.0GHz |
m6g.2xlarge | 0.31 | aarch64 | N/A |
These data are collected by our Cloud Transparency Platform, prices are for us-east (N. Virginia) region.
Performance testing
Prime number search with sysbench CPU
{"configuration": {"chart": {"type": "spline", "polar": false, "zoomType": "", "options3d": {}, "height": null, "width": null, "margin": null, "inverted": false}, "credits": {"enabled": false}, "title": {"text": "m5.2xlarge - sysbench CPU"}, "colorAxis": null, "subtitle": {"text": ""}, "xAxis": {"title": {"text": "Threads"}, "categories": [""], "lineWidth": 1, "tickInterval": null, "tickWidth": 1, "tickLength": 10, "plotLines": null, "labels": {"enabled": true, "formatter": ""}, "plotBands": null, "visible": true, "floor": null, "ceiling": null, "type": null, "min": null, "gridLineWidth": null, "gridLineColor": null, "minorTickInterval": null, "minorTickWidth": 0, "minTickInterval": null, "startOnTick": true, "endOnTick": null}, "yAxis": {"title": {"text": "Rate"}, "categories": null, "plotLines": null, "lineWidth": null, "tickInterval": null, "tickLength": 10, "floor": null, "ceiling": null, "gridLineInterpolation": null, "gridLineWidth": null, "gridLineColor": null, "min": null, "minorTickInterval": null, "minorTickWidth": 0, "startOnTick": true, "endOnTick": null}, "zAxis": {"title": {"text": ""}}, "plotOptions": {"series": {"dataLabels": {"enabled": false, "format": null, "distance": 30}, "showInLegend": null, "turboThreshold": 10000, "stacking": ""}}, "rangeSelector": {"enabled": false}, "legend": {"enabled": true, "align": "center", "verticalAlign": "bottom", "layout": "horizontal", "width": null, "margin": 12, "reversed": false}, "series": [ {"name": "m5.2xlarge", "color": "#f7981d", "data": [{"y": 86.39, "x": 1}, {"y": 172.31, "x": 2}, {"y": 344.82, "x": 4}, {"y": 522.86, "x": 8}, {"y": 524.52, "x": 16}]}, {"name": "m5a.2xlarge", "color": "#f7983d", "data": [{"y": 99.97, "x": 1}, {"y": 208.32, "x": 2}, {"y": 369.82, "x": 4}, {"y": 381.75, "x": 8}, {"y": 381.75, "x": 16}]}, {"name": "m6g.2xlarge", "color": "#f7986d", "data": [{"y": 213.38, "x": 1}, {"y": 426.52, "x": 2}, {"y": 852.62, "x": 4}, {"y": 1705.66, "x": 8}, {"y": 1704.25, "x": 16}]} ], "tooltip": {"enabled": true, "useHTML": true, "headerFormat": "<span style=\"color:{series.color}\">{series.name}</span><table><tbody>", "pointFormat": "<tr><th>Speed:</th><td>{point.y}/sec</th></tr><tr><th>Thread(s):</th><td>{point.x}</th></tr>", "footerFormat": "</tbody></table>", "shared": false, "outside": false, "valueDecimals": null, "split": false}}, "hc_type": "chart", "id": "139659200957184"}
Sysbench CPU can be categorized as arithmetic operations on integer.
We can observe an increase of +100% on single thread and close to 400% between M5 and M6g with 8 threads.
Encryption with AES-256 CBC
{"configuration": {"chart": {"type": "heatmap", "polar": false, "zoomType": "", "options3d": {}, "height": null, "width": null, "margin": null, "inverted": false}, "credits": {"enabled": false}, "title": {"text": "m5.2xlarge"}, "colorAxis": {"min": 91107085.65333332, "max": 407132159.1466667, "minColor": "#FFFFFF", "maxColor": "#f7981d"}, "subtitle": {"text": ""}, "xAxis": {"title": {"text": "Thread"}, "categories": [1, 2, 4, 8, 16], "lineWidth": 1, "tickInterval": null, "tickWidth": 1, "tickLength": 0, "plotLines": null, "labels": {"enabled": true, "formatter": ""}, "plotBands": null, "visible": true, "floor": null, "ceiling": null, "type": null, "min": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "minorTickInterval": null, "minorTickWidth": 0, "minTickInterval": null, "startOnTick": true, "endOnTick": null}, "yAxis": {"title": {"text": "Block size"}, "categories": [16, 64, 256, 1024, 8192, 16384, 65535], "plotLines": null, "plotBands": null, "lineWidth": null, "tickInterval": null, "tickLength": 0, "floor": null, "ceiling": null, "gridLineInterpolation": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "min": null, "minorTickInterval": null, "minorTickWidth": 0, "startOnTick": true, "endOnTick": null}, "zAxis": {"title": {"text": "Block size"}}, "plotOptions": {"series": {"dataLabels": {"enabled": false, "format": null, "distance": 30}, "showInLegend": null, "turboThreshold": 0, "stacking": ""}}, "rangeSelector": {"enabled": false}, "legend": {"enabled": true, "align": "right", "verticalAlign": "middle", "layout": "vertical", "width": null, "margin": 0, "reversed": true}, "series": [{"name": "m5.2xlarge by Amazon Web Services", "data": [{"x": 0, "y": 0, "value": 91107085.65333332, "verbose": "91.1 MB"}, {"x": 1, "y": 0, "value": 181813120.85333332, "verbose": "181.8 MB"}, {"x": 2, "y": 0, "value": 362937504.42666674, "verbose": "362.9 MB"}, {"x": 3, "y": 0, "value": 371682982.3999999, "verbose": "371.7 MB"}, {"x": 4, "y": 0, "value": 374459897.17333335, "verbose": "374.5 MB"}, {"x": 0, "y": 1, "value": 98867547.30666667, "verbose": "98.9 MB"}, {"x": 1, "y": 1, "value": 197134533.97333333, "verbose": "197.1 MB"}, {"x": 2, "y": 1, "value": 394659447.4666667, "verbose": "394.7 MB"}, {"x": 3, "y": 1, "value": 394629429.76, "verbose": "394.6 MB"}, {"x": 4, "y": 1, "value": 397315403.94666654, "verbose": "397.3 MB"}, {"x": 0, "y": 2, "value": 100570068.48, "verbose": "100.6 MB"}, {"x": 1, "y": 2, "value": 201086942.72, "verbose": "201.1 MB"}, {"x": 2, "y": 2, "value": 402646385.49333334, "verbose": "402.6 MB"}, {"x": 3, "y": 2, "value": 400612887.03999996, "verbose": "400.6 MB"}, {"x": 4, "y": 2, "value": 403168431.78666663, "verbose": "403.2 MB"}, {"x": 0, "y": 3, "value": 101666362.88, "verbose": "101.7 MB"}, {"x": 1, "y": 3, "value": 202816143.35999998, "verbose": "202.8 MB"}, {"x": 2, "y": 3, "value": 405620594.34666663, "verbose": "405.6 MB"}, {"x": 3, "y": 3, "value": 402667976.5333333, "verbose": "402.7 MB"}, {"x": 4, "y": 3, "value": 404768779.9466667, "verbose": "404.8 MB"}, {"x": 0, "y": 4, "value": 101765346.98666666, "verbose": "101.8 MB"}, {"x": 1, "y": 4, "value": 203470393.17333332, "verbose": "203.5 MB"}, {"x": 2, "y": 4, "value": 407132159.1466667, "verbose": "407.1 MB"}, {"x": 3, "y": 4, "value": 403953436.16, "verbose": "404.0 MB"}, {"x": 4, "y": 4, "value": 406437661.0133333, "verbose": "406.4 MB"}, {"x": 0, "y": 5, "value": 101994042.02666669, "verbose": "102.0 MB"}, {"x": 1, "y": 5, "value": 203395886.93333337, "verbose": "203.4 MB"}, {"x": 2, "y": 5, "value": 406551331.84, "verbose": "406.6 MB"}, {"x": 3, "y": 5, "value": 403164495.35999995, "verbose": "403.2 MB"}, {"x": 4, "y": 5, "value": 405874313.3866667, "verbose": "405.9 MB"}, {"x": 0, "y": 6, "value": 101147812.69333333, "verbose": "101.1 MB"}, {"x": 1, "y": 6, "value": 202202128.21333334, "verbose": "202.2 MB"}, {"x": 2, "y": 6, "value": 404461451.0933333, "verbose": "404.5 MB"}, {"x": 3, "y": 6, "value": 403217671.68, "verbose": "403.2 MB"}, {"x": 4, "y": 6, "value": 405969734.82666665, "verbose": "406.0 MB"}], "borderWidth": 1, "color": "#f7981d", "borderColor": "#f7981d", "dataLabels": {"enabled": true, "format": "{point.verbose}"}}], "tooltip": {"enabled": true, "useHTML": false, "headerFormat": "", "pointFormat": "<span style=\"color:{series.color}\">Rate</span>: <b>{point.verbose}/sec</b>", "footerFormat": "", "shared": false, "outside": false, "valueDecimals": null, "split": false}}, "hc_type": "chart", "id": "140016597165448"}
{"configuration": {"chart": {"type": "heatmap", "polar": false, "zoomType": "", "options3d": {}, "height": null, "width": null, "margin": null, "inverted": false}, "credits": {"enabled": false}, "title": {"text": "m5a.2xlarge"}, "colorAxis": {"min": 83421743.78666666, "max": 905822416.2133332, "minColor": "#FFFFFF", "maxColor": "#f7981d"}, "subtitle": {"text": ""}, "xAxis": {"title": {"text": "Thread"}, "categories": [1, 2, 4, 8, 16], "lineWidth": 1, "tickInterval": null, "tickWidth": 1, "tickLength": 0, "plotLines": null, "labels": {"enabled": true, "formatter": ""}, "plotBands": null, "visible": true, "floor": null, "ceiling": null, "type": null, "min": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "minorTickInterval": null, "minorTickWidth": 0, "minTickInterval": null, "startOnTick": true, "endOnTick": null}, "yAxis": {"title": {"text": "Block size"}, "categories": [16, 64, 256, 1024, 8192, 16384, 65535], "plotLines": null, "plotBands": null, "lineWidth": null, "tickInterval": null, "tickLength": 0, "floor": null, "ceiling": null, "gridLineInterpolation": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "min": null, "minorTickInterval": null, "minorTickWidth": 0, "startOnTick": true, "endOnTick": null}, "zAxis": {"title": {"text": "Block size"}}, "plotOptions": {"series": {"dataLabels": {"enabled": false, "format": null, "distance": 30}, "showInLegend": null, "turboThreshold": 0, "stacking": ""}}, "rangeSelector": {"enabled": false}, "legend": {"enabled": true, "align": "right", "verticalAlign": "middle", "layout": "vertical", "width": null, "margin": 0, "reversed": true}, "series": [{"name": "m5a.2xlarge by Amazon Web Services", "data": [{"x": 0, "y": 0, "value": 83421743.78666666, "verbose": "83.4 MB"}, {"x": 1, "y": 0, "value": 158981251.41333333, "verbose": "159.0 MB"}, {"x": 2, "y": 0, "value": 309586633.38666666, "verbose": "309.6 MB"}, {"x": 3, "y": 0, "value": 342550865.92, "verbose": "342.6 MB"}, {"x": 4, "y": 0, "value": 344896017.06666666, "verbose": "344.9 MB"}, {"x": 0, "y": 1, "value": 86810876.58666666, "verbose": "86.8 MB"}, {"x": 1, "y": 1, "value": 166903709.01333335, "verbose": "166.9 MB"}, {"x": 2, "y": 1, "value": 323382034.7733334, "verbose": "323.4 MB"}, {"x": 3, "y": 1, "value": 363567805.44, "verbose": "363.6 MB"}, {"x": 4, "y": 1, "value": 365939235.84, "verbose": "365.9 MB"}, {"x": 0, "y": 2, "value": 89959495.68, "verbose": "90.0 MB"}, {"x": 1, "y": 2, "value": 172939108.69333336, "verbose": "172.9 MB"}, {"x": 2, "y": 2, "value": 334120459.9466667, "verbose": "334.1 MB"}, {"x": 3, "y": 2, "value": 370340567.03999996, "verbose": "370.3 MB"}, {"x": 4, "y": 2, "value": 372324894.72, "verbose": "372.3 MB"}, {"x": 0, "y": 3, "value": 183297704.95999995, "verbose": "183.3 MB"}, {"x": 1, "y": 3, "value": 354420802.56, "verbose": "354.4 MB"}, {"x": 2, "y": 3, "value": 689987128.32, "verbose": "690.0 MB"}, {"x": 3, "y": 3, "value": 896977122.9866667, "verbose": "897.0 MB"}, {"x": 4, "y": 3, "value": 902254528.8533334, "verbose": "902.3 MB"}, {"x": 0, "y": 4, "value": 185386327.04000005, "verbose": "185.4 MB"}, {"x": 1, "y": 4, "value": 351059514.02666664, "verbose": "351.1 MB"}, {"x": 2, "y": 4, "value": 685444210.3466667, "verbose": "685.4 MB"}, {"x": 3, "y": 4, "value": 899440641.7066666, "verbose": "899.4 MB"}, {"x": 4, "y": 4, "value": 903975082.6666666, "verbose": "904.0 MB"}, {"x": 0, "y": 5, "value": 185169237.33333334, "verbose": "185.2 MB"}, {"x": 1, "y": 5, "value": 350674942.29333335, "verbose": "350.7 MB"}, {"x": 2, "y": 5, "value": 688110704.64, "verbose": "688.1 MB"}, {"x": 3, "y": 5, "value": 903662248.96, "verbose": "903.7 MB"}, {"x": 4, "y": 5, "value": 905822416.2133332, "verbose": "905.8 MB"}, {"x": 0, "y": 6, "value": 90005041.49333334, "verbose": "90.0 MB"}, {"x": 1, "y": 6, "value": 172976512.0, "verbose": "173.0 MB"}, {"x": 2, "y": 6, "value": 336551350.6133334, "verbose": "336.6 MB"}, {"x": 3, "y": 6, "value": 372649306.4533333, "verbose": "372.6 MB"}, {"x": 4, "y": 6, "value": 374869683.2, "verbose": "374.9 MB"}], "borderWidth": 1, "color": "#f7981d", "borderColor": "#f7981d", "dataLabels": {"enabled": true, "format": "{point.verbose}"}}], "tooltip": {"enabled": true, "useHTML": false, "headerFormat": "", "pointFormat": "<span style=\"color:{series.color}\">Rate</span>: <b>{point.verbose}/sec</b>", "footerFormat": "", "shared": false, "outside": false, "valueDecimals": null, "split": false}}, "hc_type": "chart", "id": "140016596287616"}
{"configuration": {"chart": {"type": "heatmap", "polar": false, "zoomType": "", "options3d": {}, "height": null, "width": null, "margin": null, "inverted": false}, "credits": {"enabled": false}, "title": {"text": "m6g.large"}, "colorAxis": {"min": 132046081.70666666, "max": 1155030512.64, "minColor": "#FFFFFF", "maxColor": "#f7981d"}, "subtitle": {"text": ""}, "xAxis": {"title": {"text": "Thread"}, "categories": [1, 2, 4, 8, 16], "lineWidth": 1, "tickInterval": null, "tickWidth": 1, "tickLength": 0, "plotLines": null, "labels": {"enabled": true, "formatter": ""}, "plotBands": null, "visible": true, "floor": null, "ceiling": null, "type": null, "min": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "minorTickInterval": null, "minorTickWidth": 0, "minTickInterval": null, "startOnTick": true, "endOnTick": null}, "yAxis": {"title": {"text": "Block size"}, "categories": [16, 64, 256, 1024, 8192, 16384, 65535], "plotLines": null, "plotBands": null, "lineWidth": null, "tickInterval": null, "tickLength": 0, "floor": null, "ceiling": null, "gridLineInterpolation": null, "gridLineWidth": null, "gridLineColor": "#e6e6e6", "min": null, "minorTickInterval": null, "minorTickWidth": 0, "startOnTick": true, "endOnTick": null}, "zAxis": {"title": {"text": "Block size"}}, "plotOptions": {"series": {"dataLabels": {"enabled": false, "format": null, "distance": 30}, "showInLegend": null, "turboThreshold": 0, "stacking": ""}}, "rangeSelector": {"enabled": false}, "legend": {"enabled": true, "align": "right", "verticalAlign": "middle", "layout": "vertical", "width": null, "margin": 0, "reversed": true}, "series": [{"name": "m6g.2xlarge by Amazon Web Services", "data": [{"x": 0, "y": 0, "value": 132046081.70666666, "verbose": "132.0 MB"}, {"x": 1, "y": 0, "value": 264074970.45333335, "verbose": "264.1 MB"}, {"x": 2, "y": 0, "value": 528147807.57333326, "verbose": "528.1 MB"}, {"x": 3, "y": 0, "value": 1054261992.1066667, "verbose": "1.1 GB"}, {"x": 4, "y": 0, "value": 1061385804.8000001, "verbose": "1.1 GB"}, {"x": 0, "y": 1, "value": 140597256.53333333, "verbose": "140.6 MB"}, {"x": 1, "y": 1, "value": 281175777.28000003, "verbose": "281.2 MB"}, {"x": 2, "y": 1, "value": 562458272.4266666, "verbose": "562.5 MB"}, {"x": 3, "y": 1, "value": 1124649705.8133333, "verbose": "1.1 GB"}, {"x": 4, "y": 1, "value": 1130922069.3333333, "verbose": "1.1 GB"}, {"x": 0, "y": 2, "value": 142331335.68, "verbose": "142.3 MB"}, {"x": 1, "y": 2, "value": 284674717.0133333, "verbose": "284.7 MB"}, {"x": 2, "y": 2, "value": 569253331.6266667, "verbose": "569.3 MB"}, {"x": 3, "y": 2, "value": 1137702541.6533334, "verbose": "1.1 GB"}, {"x": 4, "y": 2, "value": 1143965636.2666667, "verbose": "1.1 GB"}, {"x": 0, "y": 3, "value": 143330191.36, "verbose": "143.3 MB"}, {"x": 1, "y": 3, "value": 286677957.97333336, "verbose": "286.7 MB"}, {"x": 2, "y": 3, "value": 573251990.1866667, "verbose": "573.3 MB"}, {"x": 3, "y": 3, "value": 1145877447.68, "verbose": "1.1 GB"}, {"x": 4, "y": 3, "value": 1151451021.6533334, "verbose": "1.2 GB"}, {"x": 0, "y": 4, "value": 143657186.98666665, "verbose": "143.7 MB"}, {"x": 1, "y": 4, "value": 287213794.9866667, "verbose": "287.2 MB"}, {"x": 2, "y": 4, "value": 574636941.6533333, "verbose": "574.6 MB"}, {"x": 3, "y": 4, "value": 1148484266.6666667, "verbose": "1.1 GB"}, {"x": 4, "y": 4, "value": 1154986548.9066668, "verbose": "1.2 GB"}, {"x": 0, "y": 5, "value": 143667653.97333333, "verbose": "143.7 MB"}, {"x": 1, "y": 5, "value": 287343501.65333337, "verbose": "287.3 MB"}, {"x": 2, "y": 5, "value": 574482932.0533334, "verbose": "574.5 MB"}, {"x": 3, "y": 5, "value": 1148550258.3466666, "verbose": "1.1 GB"}, {"x": 4, "y": 5, "value": 1155030512.64, "verbose": "1.2 GB"}, {"x": 0, "y": 6, "value": 143416067.41333333, "verbose": "143.4 MB"}, {"x": 1, "y": 6, "value": 286824849.06666666, "verbose": "286.8 MB"}, {"x": 2, "y": 6, "value": 573729798.8266667, "verbose": "573.7 MB"}, {"x": 3, "y": 6, "value": 1146394840.7466667, "verbose": "1.1 GB"}, {"x": 4, "y": 6, "value": 1152561940.4800003, "verbose": "1.2 GB"}], "borderWidth": 1, "color": "#f7981d", "borderColor": "#f7981d", "dataLabels": {"enabled": true, "format": "{point.verbose}"}}], "tooltip": {"enabled": true, "useHTML": false, "headerFormat": "", "pointFormat": "<span style=\"color:{series.color}\">Rate</span>: <b>{point.verbose}/sec</b>", "footerFormat": "", "shared": false, "outside": false, "valueDecimals": null, "split": false}}, "hc_type": "chart", "id": "140016605525608"}
Where AMD's performance depends of block size, Intel and Graviton are homogeneous across sizes. The ARM chip is able to encrypt at 1.2 GB/sec where the M5 and M5a respectively cap at 400MB/sec (200%) and 900MB/sec (130%).
Price
Product | Hourly | Monthly (estimation) | Yearly (estimation) | Discount |
---|---|---|---|---|
m5.2xlarge | 0.38 | 280 | 3,360 | — |
m5a.2xlarge | 0.34 | 251 | 3,012 | -11% |
m6g.2xlarge | 0.31 | 224 | 2,688 | -22% |
Monthly is based on 730 hours, yearly on 8,760 hours without long term subscription
Prices make no doubt, each new generation offers a lower cost and M6g owns the lowest.
Conclusion
Depending of your workload, Graviton offers until +400% of performance compared to the Intel analogous. Combined with a lower pricing, M6G is definitively the best EC2 choice for any CPU related workload compatible with ARM architecture.
Check out data in our Public Cloud Reference