Квоты
Квоты позволяют вам ограничить использование ресурсов за определенный период времени или отслеживать использование ресурсов. Квоты настраиваются в конфигурации пользователя, которая обычно называется 'users.xml'.
Система также имеет функцию ограничения сложности одного запроса. Смотрите раздел Ограничения на сложность запроса.
В отличие от ограничений на сложность запросов, квоты:
- Устанавливают ограничения на набор запросов, которые могут выполняться за определенный период времени, вместо ограничения одного запроса.
- Учитывают ресурсы, затраченные на всех удаленных серверах для распределенной обработки запросов.
Давайте рассмотрим раздел файла 'users.xml', который определяет квоты.
По умолчанию квота отслеживает потребление ресурсов каждый час, не ограничивая использование. Потребление ресурсов, рассчитанное для каждого интервала, выводится в журнал сервера после каждого запроса.
Для квоты 'statbox' ограничения устанавливаются на каждый час и каждые 24 часа (86 400 секунд). Временной интервал подсчитывается, начиная с фиксированного момента времени, определенного реализацией. Другими словами, 24-часовой интервал не обязательно начинается в полночь.
Когда интервал заканчивается, все собранные значения очищаются. На следующий час расчет квоты начинается заново.
Вот варианты, которые могут быть ограничены:
queries
– Общее количество запросов.
query_selects
– Общее количество запросов SELECT.
query_inserts
– Общее количество запросов INSERT.
errors
– Количество запросов, вызвавших исключение.
result_rows
– Общее количество строк, выданных в результате.
read_rows
– Общее количество исходных строк, прочитанных из таблиц для выполнения запроса на всех удаленных серверах.
execution_time
– Общее время выполнения запроса, в секундах (wall time).
Если лимит превышен хотя бы для одного временного интервала, выбрасывается исключение с текстом о том, какое ограничение было превышено, для какого интервала и когда начинается новый интервал (когда запросы могут быть отправлены снова).
Квоты могут использовать функцию "quota key" для отчета о ресурсах для нескольких ключей независимо. Вот пример этого:
Квота назначается пользователям в разделе 'users' конфигурации. Смотрите раздел "Права доступа".
Для распределенной обработки запросов накопленные суммы хранятся на сервере запросов. Поэтому, если пользователь переходит на другой сервер, квота там "начнется заново".
Когда сервер перезагружается, квоты сбрасываются.