Недавно мы обнаружили, что время ответа на запрос API составляет около 500 мс, как видно из журналов с нашего сервера. Мы поняли, что это произошло потому, что наш API работал в aws-west-1, а удаленная БД работала в aws-east-1. Переместив их в тот же регион, aws-east-1, мы увидели падение времени отклика с ~ 500 мс до <50 мс. Мы выполняем один запрос Mongo (я считаю, что это случай на основе Mongoose ORM), чтобы получить все документы из коллекции данных объемом около 80 КБ и выполнить минимальную обработку на сервере.
Однако, когда я смотрю на время пинга, я вижу намного ниже время пинга между двумя регионами составляет около 65 мс. Так как же получается, что между двумя регионами есть эхо-запрос ~ 65 мс, но перемещение их в один и тот же регион увеличивает задержку примерно на 450 мс? Я подумал, может быть, это связано с тем, что есть рукопожатие TCP, но оно должно быть примерно в 1,5 раза больше, чем я понимаю? Есть ли еще много лишней болтовни, которую я не учитываю в своих расчетах?
Мне больше всего любопытно, почему это вызвало такое резкое падение и почему раньше оно было намного медленнее, хотя межрегиональный пинг был намного меньше, чем увеличенная задержка, которую мы видели.
Нет однозначного ответа. Вот несколько возможностей: