Назад | Перейти на главную страницу

Данные, полученные из ping: туда и обратно или в одну сторону?

У меня есть 2 сервера, каждый в двух разных местах. Мне нужно разместить приложение на одном, а сервер базы данных - на другом.

С сервера приложений, если я пингую сервер базы данных, в среднем я получаю около 30 мс.

У меня вопрос:

When I query the database from the app;

Это займет 30 ms + database_server_query_run_time

Или;

Это займет 30 ms + database_server_query_run_time + 30 мс

Я хотел бы понять это, пожалуйста.

Обычно требуется больше, чем эти два варианта.

Ping измеряет только время от клиента до сервера и обратно (rtt - время приема-передачи)

Обычно базы данных используют TCP, поэтому вам сначала нужно отправить пакет SYN, чтобы начать квитирование TCP (для упрощения, скажем, 15 мс * + время процессора, затем вы получаете и SYN / ACK (15 мс + время процессора), отправляете обратно ACK и запрос (как минимум 15 мс + время ЦП), затем время, необходимое БД для обработки запроса, а затем время (15 мс + ЦП), чтобы получить данные обратно, и еще немного, чтобы подтвердить и закрыть соединение.

Это, конечно, не считая аутентификации (имя пользователя / пароль) в базе данных и никакого шифрования (ssl-рукопожатия / DH или что-то еще, что необходимо).

* половина времени туда и обратно, при условии, что маршрут туда и обратно симметричен (половина времени, чтобы добраться туда, а половина - обратно ... время обработки процессора для ответа ping очень короткое)

Время пинга - туда и обратно. Если задуматься - как можно измерить время в один конец? Таким образом, это займет 30 мс плюс время запроса.