Квоты
Квоты позволяют ограничивать использование ресурсов за определенный период времени или отслеживать использование ресурсов.
Квоты настраиваются в конфигурации пользователя, которая обычно называется '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' конфигурации. См. раздел "Права доступа".
Для распределенной обработки запросов накопленные суммы хранятся на сервере запросов. Поэтому, если пользователь переходит на другой сервер, квота там "начинается заново".
При перезапуске сервера квоты сбрасываются.