Оптимизация производительности ArangoDB
В версии 3.1 добавлена настройка управления длительностью запросов для предотвращения повышенного потребления памяти сервисом ArangoDB. Значение установлено по умолчанию, и может быть изменено для более точной настройки работы сервиса в соответствии с таблицей. В случае прерывания по таймауту AQL-запроса клиентскому приложению (Aristoteles, Euclid) возвращается код ошибки 410, а запрос сохраняется в журнал событий с кодом ошибки 1500 — ERROR_QUERY_KILLED.
При работе с переменной рекомендуется минимизировать ее значение во избежание переполнения очереди запросов СУБД и последующего повышенного потребления ресурсов памяти и CPU. При использовании небольших значений могут возникнуть ошибки выполнения длительных миграций и других фоновых AQL запросов, не связанных с работой приложения.
Для серверов в минимальной конфигурации при возникновении ошибок следует одновременно уменьшать значения таймаутов клиента и переменной ARANGODB_MAX_RUNTIME.
Для серверов с большим количеством свободных ресурсов, при возникновении ошибок выполнения длительных запросов допускается увеличить значение переменной.
| Наименование переменной | Расположение переменной | Тип | Единицы измерения | Значение по умолчанию* |
|---|---|---|---|---|
| ARANGODB_MAX_ RUNTIME | ~/install_pgs/ group_vars/all/main.yml | Int | Секунда | 61 |
* — значение по умолчанию состоит из времени таймаута клиента СУБД для приложений Aristoteles и Euclid + 1 секунда.