Скорость трансграничных соединений
В последнее время заметил проблемы со скоростью отдельных соединений до заграничных серверов по вечерам (часовой пояс Самары - UTC +4). Заметил, что проблемы обычно начинаются в "прайм-тайм" - когда люди в европейской части России активно пользуются интернетом.
В моменты замедления как speedtest, так и iperf показывают снижение скорости до разных европейских серверов (иногда только speedtest). Можно заметить снижение юзабельности сайтов.
Решил написать простенький скрипт на Python, который скачивает один и тот же файл с установленной периодичностью и заносит данные в CSV файл.
import argparse
import csv
import datetime
import warnings
warnings.filterwarnings("ignore")
import requests
from time import sleep
parser = argparse.ArgumentParser(prog='Periodic DL perf test', description='Tests network performance by downloading file from specified URL')
parser.add_argument('url')
parser.add_argument('-t', '--interval', help='Interval between tests in minutes (may be float or int)')
parser.add_argument('-o', '--output', default='log.csv', help='Name of the CSV file for test result logging')
parser.add_argument('-i', '--ignore-ssl', action='store_true', help='If set, SSL certificate errors will be ignored')
args = parser.parse_args()
sleep_interval = int(args.interval) * 60
log_file = open(args.output, 'a')
log_writer = csv.writer(log_file, dialect='excel')
while True:
start = datetime.datetime.now()
try:
length = len(requests.get(args.url, verify=(not args.ignore_ssl)).content)
end = datetime.datetime.now()
time_taken = (end - start).total_seconds()
print('Downloaded ' + str(length) + ' bytes in ' + str(time_taken) + ' seconds')
except:
time_taken = -1.0
print("Failed to download file")
end = datetime.datetime.now()
length = -1
log_writer.writerow([start.strftime("%Y-%m-%d %H:%M:%S"), end.strftime("%Y-%m-%d %H:%M:%S"), time_taken, length])
log_file.flush()
interval = max(1.0, sleep_interval - time_taken)
print("Sleeping", interval, "seconds")
sleep(interval)
По результатам полного дня измерений построил графики, сопоставив с объемами обмена на MSK-IX:
Как видно на картинке, пиковое количество аномалий (длительная загрузка, ошибки загрузки) совпадает с пиковым объемом трафика на MSK-IX. Также среднее время на загрузку файла растет в несколько раз.
В ближайшее время проведу ещё некоторые тесты, которые позволят определить, является ли это замедление следствием перегруженности каналов или проблема в чём-то ещё.
Кажется (но это не точно), вам нравится мой контент. Перейдите в раздел настроек, чтобы подписаться на пуш-уведомления или разрешить сбор аналитических данных, которые позволяют улучшать этот сайт и его содержимое.
Перейти к настройкам