Высокая задержка на домене с CDN
У меня проблемы с задержкой на сервере, вот тесты, которые я провел с помощью blitz.io
Альбом Latency
https://i.stack.imgur.com/nKV1r.jpg
Я бы загрузил изображения здесь, но для этого требуется более 10 репутаций, и нельзя публиковать несколько ссылок, поэтому я загрузил изображения в альбом на imgur.
Мой домен размещен наCloudflare-CDN-сеть. Я размещаю наОблачный хостинг на базе SSD, DigitalOcean.
Задержка на серверебыл~40 мс при отсутствии трафика.
Задержка на серверес CDNсейчас ~270мс
Задержка на серверебез CDNсоставляет ~300мс
Раньше я размещал свои файлы на Windows Azure,
Задержкабез движениябыло ~70мс
Задержкас трафикомбыло ~210мс
Тем не менее, несмотря на то, что задержка на DigitalOcean выше, мой контент загружается гораздо быстрее, чем на серверах Windows Azure.
Старый сервер Azure, альбом
imgur.com/a/fpHK9
Я не могу разместить больше 2 ссылок, c/p в браузере
На сервере DigitalOcean не настроен брандмауэр, на серверах Microsoft Azure по умолчанию используется Azure FW, конфигурация с конечными точками.
Содержание
Размер полезной нагрузки
изображения ~156 КБ
CSS ~12 КБ
логотип ~20 КБ
случайный контент загружается при каждом просмотре страницы 4КБ
общий размер случайного контента 116 КБ, который загружается
Всего ~300КБ, все размещено на CDN. Не все загружается сразу.
Статистика Cloudflare, альбом
imgur.com/a/qxnbo
Я не могу разместить больше 2 ссылок, c/p в браузере
Сетевой анализ с помощью Firefox, альбом
https://i.stack.imgur.com/8z16E.jpg
Контент загружается после завершения загрузки страницы.
Память
Сервер работает наlighttpd.
Память
XXX@XXX:~# free -h
total used free shared buffers cached
Mem: 995M 835M 159M 0B 150M 471M
-/+ buffers/cache: 214M 780M
Swap: 1.0G 26M 997M
Вершина
top - 14:29:13 up 21 days, 1:00, 1 user, load average: 0.00, 0.04, 0.05
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 1.4 sy, 0.0 ni, 94.3 id, 0.7 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem: 1019056 total, 856144 used, 162912 free, 153748 buffers
KiB Swap: 1048572 total, 27084 used, 1021488 free, 482660 cached
Капля включена1Гбитобщее подключение.
Связи
При выполнении netstat -n я насчитал ~620 TIME_WAIT/ESTABLISHED соединений
При выполнении netstat -n | grep 'ESTABLISHED' я насчитал ~120 подключений
100 МБ тест
Тестовая загрузка 100 МБ
XXX@XXX:~# wget speedtest.london.linode.com/100MB-london.bin
--2013-09-05 14:35:08-- speedtest.london.linode.com/100MB-london.bin
Resolving speedtest.london.linode.com (speedtest.london.linode.com)... 176.58.107.39, 2a01:7e00::4b
Connecting to speedtest.london.linode.com (speedtest.london.linode.com)|176.58.107.39|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: ‘100MB-london.bin’
100%[===================================================================================================>] 104,857,600 8.46MB/s in 11s
2013-09-05 14:35:19 (9.47 MB/s) - ‘100MB-london.bin’ saved [104857600/104857600]
Тест загрузки 100 МБ
Я создал еще один сервер и просто скачал с первого тот же файл размером 100 МБ.
XXX@XXX:~# wget domain_with_no_cdn.com/test/100MB-london.bin
--2013-09-05 12:38:00-- domain_with_no_cdn.com/test/100MB-london.bin
Resolving domain_with_no_cdn.com (domain_with_no_cdn.com)... Server_IP
Connecting to domain_with_no_cdn.com (domain_with_no_cdn.com)|Server_IP|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100MB-london.bin'
100%[=======================================================================================>] 104,857,600 13.4M/s in 6.1s
2013-09-05 12:38:07 (16.5 MB/s) - `100MB-london.bin' saved [104857600/104857600]
Тестовая загрузка 100 МБ через CDN
XXX@XXX:~# wget domain_over_CDN.com/test/100MB-london.bin
--2013-09-05 12:44:26-- domain_over_CDN.com/test/100MB-london.bin
Resolving domain_over_CDN.com (domain_over_CDN.com)... 108.162.200.169, 141.101.127.168
Connecting to domain_over_CDN.com (domain_over_CDN.com)|108.162.200.169|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100MB-london.bin'
100%[=======================================================================================>] 104,857,600 12.5M/s in 11s
2013-09-05 12:44:37 (8.96 MB/s) - `100MB-london.bin' saved [104857600/104857600]
Можете ли вы рассказать мне, какие могут быть проблемы с моей настройкой?
Можете ли вы дать мне несколько руководств или ссылок, где я могу узнать, как балансировать нагрузку между серверами или что именно мне нужно сделать, чтобы задержка составила менее 100 мс?
День 2, тестирование
Я связался со службой поддержки Cloudflare, и они решили проблему в моей стране, но не все серверы сообщают о задержке менее 100 мс.
Я разместил новые фотографии в альбоме
imgur.com/a/xajge
Я не могу разместить больше 2 ссылок, c/p в браузере
Как вы можете видеть на рисунке 2, все еще есть проблемы с серверами в США на доменах с CDN. Я предполагаю, что они испытывают проблемы из-за обновлений оборудования за последние несколько недель, но я хотел бы знать, как снизить задержку на моем собственном сервере ниже 100 мс.
Я разделяю сервер пиксельного пинга и сервер данных, надеюсь, это снизит задержку.
Если у кого-то есть какие-либо рекомендации, которые могут решить мои проблемы, пожалуйста, любая помощь будет оценена по достоинству :)