State of the art of Public Object Storage Europe - cURL
Go back to listlibcurl is an open source library considered as a swiss knife for various layer 7 communication protocols. By using it, we aim to collect the Time-To-First-Byte (TTFB) and the different timings inherent to a HTTPs connection.
Each provider has been tested by launching isolated HTTPS requests on 512KB objects. Here's an example of output:
{
"configuration": {
"chart": {
"type": "bar",
"polar": false,
"zoomType": "",
"options3d": {},
"height": 300,
"width": null,
"margin": null,
"inverted": false
},
"credits": {
"enabled": false
},
"title": {
"text": ""
},
"colorAxis": null,
"subtitle": {
"text": ""
},
"xAxis": {
"title": {
"text": "",
"useHTML": false
},
"categories": ["Example"],
"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": "In ms - Lower is better",
"useHTML": false
},
"categories": null,
"plotLines": null,
"plotBands": null,
"lineWidth": null,
"tickInterval": null,
"tickLength": 10,
"floor": null,
"ceiling": null,
"gridLineInterpolation": null,
"gridLineWidth": null,
"gridLineColor": null,
"min": null,
"max": null,
"minorTickInterval": null,
"minorTickWidth": 0,
"startOnTick": true,
"endOnTick": null,
"minRange": null,
"labels": {
"enabled": true,
"formatter": null
}
},
"zAxis": {
"title": {
"text": "In ms - Lower is better"
}
},
"plotOptions": {
"series": {
"dataLabels": {
"enabled": false,
"format": null,
"distance": 30,
"align": "center",
"inside": null,
"style": {
"fontSize": "11px"
}
},
"showInLegend": null,
"turboThreshold": 1000,
"stacking": "normal",
"groupPadding": 0.2,
"centerInCategory": false
}
},
"rangeSelector": {
"enabled": false
},
"legend": {
"enabled": true,
"align": "center",
"verticalAlign": "bottom",
"layout": "horizontal",
"width": null,
"margin": 12,
"reversed": true
},
"series": [
{
"name": "wait_byte",
"data": [14.283053333333338]
},
{
"name": "wait_time",
"data": [0.015706666666666737]
},
{
"name": "ssl_time",
"data": [36.18365333333334]
},
{
"name": "tcp_time",
"data": [0.5799333333333335]
},
{
"name": "dns_time",
"data": [4.2351866666666655]
}
],
"tooltip": {
"enabled": true,
"useHTML": false,
"headerFormat": "",
"pointFormat": "<span style=\"color:{series.color}\">{series.name}</span>: <b>{point.y:.2f}</b><br/>",
"footerFormat": "",
"shared": false,
"outside": false,
"valueDecimals": null,
"split": false
}
},
"hc_type": "chart",
"id": "139682988425056"
}
- DNS: Time taken by client to translate domain name to IP. This value is entirely dependent of the client and and its DNS server. Object Storages aren't involved.
- TCP: Time taken for TCP/IP handshake. Layer 4 communication linking client and Object Storage's endpoint
- SSL: Time taken for SSL negociation. Layer 5 protocol encrypting communication between client and Object Storage.
- Wait: Time taken for HTTP negociation. Generally close to null.
- Wait bytes: Time before the first data byte is received by client. It represents the time for the Object Storage to retrieve the file and start to send it.