mirror of https://github.com/hashicorp/consul
31 lines
1.9 KiB
Markdown
31 lines
1.9 KiB
Markdown
---
|
|
layout: docs
|
|
page_title: Initialize rate limit settings
|
|
description: Learn how to determine regular and peak loads in your network so that you can set the initial global rate limit configurations.
|
|
---
|
|
|
|
# Initialize rate limit settings
|
|
|
|
Because each network has different needs and application, you need to find out what the regular and peak loads in your network are before you set traffic limits. We recommend completing the following steps to benchmark request rates in your environment so that you can implement limits appropriate for your applications.
|
|
|
|
1. In the agent configuration file, specify a global rate limit with arbitrary values based on the following conditions:
|
|
|
|
- Environment where Consul servers are running
|
|
- Number of servers and the projected load
|
|
- Existing metrics expressing requests per second
|
|
|
|
1. Set the [`limits.request_limits.mode`](/consul/docs/agent/config/config-files#mode-1) parameter in the agent configuration to `permissive`. In the following example, the configuration allows up to 1000 reads and 500 writes per second for each Consul agent:
|
|
|
|
```hcl
|
|
request_limits {
|
|
mode = "permissive"
|
|
read_rate = 1000.0
|
|
write_rate = 500.0
|
|
}
|
|
```
|
|
1. Observe the logs and metrics for your application's typical cycle, such as a 24 hour period. Refer to [Monitor traffic rate limit data](/consul/docs/agent/limits/usage/monitor-rate-limits) for additional information. Call the [`/agent/metrics`](/consul/api-docs/agent#view-metrics) HTTP API endpoint and check the data for the following metrics:
|
|
|
|
- `rpc.rate_limit.exceeded` with value `global/read` for label `limit_type`
|
|
- `rpc.rate_limit.exceeded` with value `global/write` for label `limit_type`
|
|
|
|
1. If the limits are not reached, set the `mode` configuration to `enforcing`. Otherwise, continue to adjust and iterate until you find your network's unique limits. |