Si quelqu'un d'autre chez Red veut essayer, j'en ai refait un plus rapide et orienté peering:
#!/usr/bin/env python3
import subprocess
from statistics import mean
def measure_bw(url):
cmd = 'curl --fail --location --max-time 1 -4 -s --write-out "%{time_namelookup} %{time_connect} %{time_starttransfer} %{time_total} %{size_download}" -o /dev/null '
cmd += url
status, output = subprocess.getstatusoutput(cmd)
time_namelookup, time_connect, time_starttransfer, time_total, size_download = [float(x.replace(',', '.')) for x in output.split()]
took_transfer = time_total - time_starttransfer
bandwidth_bytes_per_sec = size_download / took_transfer
bandwidth_mbit_per_sec = bandwidth_bytes_per_sec * 8 / 1000000
return bandwidth_mbit_per_sec
def measure_bw_average(url, runs=3):
results = list()
for i in range(runs):
bw = measure_bw(url)
if bw:
results.append(bw)
return mean(results)
test_files = {
'bouygues': 'https://bouygues.testdebit.info/1G.iso',
'k-net': 'https://k-net.testdebit.info/1G.iso',
'ikoula': 'https://ikoula.testdebit.info/1G.iso',
'scaleway': 'https://scaleway.testdebit.info/1G.iso',
'ovh': 'http://www.ovh.net/files/1Gio.dat',
'aws us-east-1': 'https://github.com/balena-io/etcher/releases/download/v1.5.109/balena-etcher-electron_1.5.109_amd64.deb',
}
results = dict()
for host, url in test_files.items():
print(host, "%.1f Mbits/s" % measure_bw_average(url))
Malheureusement je ne peux plus tester chez Red, mais chez Sosh ça me donne:
k-net 283.2 Mbits/s
ikoula 286.7 Mbits/s
scaleway 298.7 Mbits/s
ovh 295.2 Mbits/s
aws us-east-1 37.4 Mbits/s
Chez Red, j'avais 30 Mbit/s chez ikoula et OVH, et 2 Mbits/s depuis AWS