У меня есть собственный маршрутизатор и собственное оборудование, и я отвечаю за свою сеть. Мой HTTP-интерфейс находится на Debian 10 в контейнере LXC на Proxmox.
Веб-интерфейс моего самого большого сайта страдает чрезвычайно высоким TTFB. Я исключил Cloudflare, MySQL, PHP, NGINX и свой собственный VPN.
Это водопад для HTML-документа.
Это водопад для одного и того же HTML-документа при другой перезагрузке.
Единственное, что отличается от этого, - это попытка. В остальном все идентично. Я могу F5 и последовательно получаю каждый.
Это результат CURL для более точных измерений.
time_namelookup: 0.510097
time_connect: 0.685818
time_appconnect: 0.000000
time_pretransfer: 0.685864
time_redirect: 0.000000
time_starttransfer: 0.861670
Мой естественный пинг для этого устройства составляет 175 мс, что на + 3 мс выше естественного пинга для тестовых IP-адресов для моего центра обработки данных, поэтому я также не считаю, что это проблема маршрутизатора.
Я читал, что это могло быть связано с DNS. Я использую общедоступный DNS Google. Я побежал dig
и я также получаю от этого непостоянное время отклика.
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jan 31 14:22:37 UTC 2020
;; MSG SIZE rcvd: 57
;; Query time: 174 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jan 31 14:22:18 UTC 2020
;; MSG SIZE rcvd: 57
Это 50/50, если я получаю 150 мс или 8 мс, снова и снова выполняя команду dig.
Однако Pining 8.8.8.8 - это нормально.
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=8.25 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=8.17 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=13.7 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=8.22 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=57 time=8.18 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=57 time=8.22 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=57 time=8.24 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=57 time=8.23 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=57 time=8.20 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=57 time=8.36 ms
Интересно, пытаюсь dig
Домены, управляемые Cloudflare, стабильно дают низкий MS. Мои сертификаты SSL получены от LetsEncrypt, и мой сертификат SSL, с которым общается Cloudflare, также является LetsEncrypt. Сертификат LetsEncrypt содержит несколько доменов, некоторые из которых находятся за пределами Cloudflare, а некоторые из них.
Однако это не может быть просто SSL-сертификат, потому что при использовании версий сайта без HTTPS все еще наблюдается странное колебание, составляющее не менее 150 мс.
На самой машине я пробежал curl
и проверил вывод. Фактический PHP-FPM последовательно отображает отрисовку всей страницы за 0,05 с. Почти 100% времени загрузки моего сайта связано с какими-то накладными расходами.