diff --git a/ydb/docs/ru/core/dev/timeouts.md b/ydb/docs/ru/core/dev/timeouts.md index 10ab38e20b17..11fd9348fe96 100644 --- a/ydb/docs/ru/core/dev/timeouts.md +++ b/ydb/docs/ru/core/dev/timeouts.md @@ -23,9 +23,19 @@ На каждый запрос клиент должен выставить транспортный таймаут. Данное значение позволяет определить количество времени, которое клиент готов ждать ответа от сервера. Если за данное время сервер не ответил, то клиенту будет возвращена транспортная ошибка c кодом ``DeadlineExceeded``. Важно выставить такое значение клиентского таймаута чтоб при нормальной работе приложения и сети транспортные таймауты не срабатывали. +{% note tip %} + +Лучше выставлять транспортный таймаут с запасом относительно времени (измеренного во время нагрузочного тестирования или тестирования на отказ) ответа на запрос. + +Например, можно использовать удвоенное значение 99-го перцентиля времени ответа. Иными словами, таймаут должен равняться $2 × P99$ + +Время ответа для конкретного запроса нужно измерять в коде клиента (не стоит использовать метрики времени ответа, которые предоставляет сервер, или данные из статистики запроса). + +{% endnote %} + ## Применение таймаутов {#usage} -Всегда рекомендуется устанавливать и таймаут на операцию и транспортный таймаут. Значение транспортного таймаута следует делать на 50-100 миллисекунд больше чем значение таймаута на операцию, чтобы оставался некоторый запас времени, за который клиент сможет получить серверную ошибку c кодом ``Timeout``. +Всегда рекомендуется устанавливать и таймаут на операцию, и транспортный таймаут. Значение транспортного таймаута следует делать на 50-100 миллисекунд больше, чем значение таймаута на операцию, чтобы оставался некоторый запас времени, за который клиент сможет получить серверную ошибку c кодом ``Timeout``. Пример использования таймаутов: