Рейтинг:0

Влияет ли размер пакета на задержку ответа?

флаг ua

Я тестирую свое веб-приложение локально на микробазе данных Amazon, расположенной в Северной Вирджинии. Я живу в Гронингене, Нидерланды. Когда я отправляю запрос на выборку через общедоступный Интернет, требуется 2616 (мс) чтобы вернуть набор результатов размером 42 килобайта.

[INFO] 2022-01-17 10:22:02.147 [http-nio-8080-exec-1] http_access_log - method=GET uri="/api/journal/get/virtual-scroll" status-code=206 bytes= 42350 продолжительность=2616(мс) клиент: удаленный ip=0:0:0:0:0:0:0:1 useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko ) Chrome/97.0.4692.71 Safari/537,36"

Когда я делаю простой ВЫБЕРИТЕ 1 ИЗ ТАБЛИЦЫ запрос занимает 550 мс, чтобы получить ответ. Значит ли это, что задержка ответа будет увеличиваться при увеличении размера ответа? Или запрос, возвращающий набор результатов, просто работает медленно? Это вызов хранимой процедуры.

флаг cn
Bob
Вообще говоря, приложения, управляемые базой данных, плохо справляются с высокой задержкой (в смысле высокой [задержки прохождения туда и обратно](https://en.wikipedia.org/wiki/Круговая_задержка)) между сервером базы данных и приложением. Плохой дизайн базы данных, плохие запросы и плохой дизайн приложения усугубят это. Для повышения производительности убедитесь, что приложение и база данных могут обмениваться данными со скоростью локальной сети, а не по каналам глобальной сети/Интернета.
Рейтинг:0
флаг ru

Когда я отправляю запрос на выборку через общедоступный Интернет, требуется 2616 (мс), чтобы вернуть набор результатов размером 42 килобайта.

Имейте в виду, что запрос должен достичь сервера, быть обработанным там, а ответ должен вернуться к клиенту. Каждая передача состоит из сериализации и распространения к месту назначения, поэтому время зависит от размера данных.

Однако в вашем случае наибольшее влияние, скорее всего, оказывает обработка на сервере. Сложные запросы могут потребовать довольно много времени, в зависимости от их сложности (не обязательно связанной с размером вывода) и производительности сервера.

Для полноты:

  • задержка сериализации = размер данных / пропускная способность (42 КБ / 100 Мбит/с ≈ 3,5 мс)
  • задержка распространения: не менее 5 мс на 1000 км, в зависимости от подключения и среды (Гронинген-Вирджиния >30 мс за поездку)

Таким образом, вы можете приблизительно оценить, что круговое путешествие займет менее 100 мс, а остальная часть задержки связана с обработкой сервера. Вот почему жизненно важно, чтобы ваш сервер и база данных были оптимизированы для вашей рабочей нагрузки. Также необходимо учитывать задержку передачи, поэтому приложение должно максимально оптимизировать и объединять запросы.

Maurice avatar
флаг ua
`Кроме того, вы должны принять во внимание задержку передачи`. Что такое задержка передачи?
Zac67 avatar
флаг ru
Определения немного различаются, но выше я использую задержку сериализации + задержку распространения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.