Skip to content

Commit

Permalink
TiFlash configuration: update io_rate_limit (#6176)
Browse files Browse the repository at this point in the history
  • Loading branch information
en-jin19 authored Aug 20, 2021
1 parent 4e7a27b commit fdbc54d
Showing 1 changed file with 44 additions and 24 deletions.
68 changes: 44 additions & 24 deletions tiflash/tiflash-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,29 +51,25 @@ minmax_index_cache_size = 5368709120
delta_index_cache_size = 0

## The storage path of TiFlash data. If there are multiple directories, separate each directory with a comma.
## `path` and `path_realtime_mode` are deprecated since v4.0.9. Use the configurations
## in the `[storage]` section to get better performance in the multi-disk deployment scenarios
## path and path_realtime_mode are deprecated since v4.0.9. Use the configurations
## in the [storage] section to get better performance in the multi-disk deployment scenarios
# path = "/tidb-data/tiflash-9000"
## or
# path = "/ssd0/tidb-data/tiflash,/ssd1/tidb-data/tiflash,/ssd2/tidb-data/tiflash"
## The default value is `false`. If you set it to `true` and multiple directories
## The default value is false. If you set it to true and multiple directories
## are set in the path, the latest data is stored in the first directory and older
## data is stored in the rest directories.
# path_realtime_mode = false

## The path in which the TiFlash temporary files are stored. By default it is the first directory in `path`
## or in `storage.latest.dir` appended with "/tmp".
## The path in which the TiFlash temporary files are stored. By default it is the first directory in path
## or in storage.latest.dir appended with "/tmp".
# tmp_path = "/tidb-data/tiflash-9000/tmp"

## Storage paths settings take effect starting from v4.0.9
[storage]
## [Experimental] New in v5.0. This item limits the total write rate of background tasks in bytes per second. It is not recommended to use this experimental feature in a production environment.
## The unit is bytes. Currently, the setting such as "10GB" is not supported.
## The default value is 0, which means no limit.
## This parameter is used to control the usage of machine disk bandwidth by background tasks mainly for the scenario where TiFlash is deployed on the AWS EBS (gp2/gp3) disk.
## This parameter can be used to improve the stability of the TiFlash query performance. The recommended configuration in this scenario is 50% of the disk bandwidth.
## It is not recommended to modify this configuration in other scenarios.
bg_task_io_rate_limit = 0
## This configuration item is deprecated since v5.2.0. You can use the [storage.io_rate_limit] settings below instead.

# bg_task_io_rate_limit = 0

[storage.main]
## The list of directories to store the main data. More than 90% of the total data is stored in
Expand All @@ -82,30 +78,54 @@ delta_index_cache_size = 0
## or
# dir = [ "/ssd0/tidb-data/tiflash", "/ssd1/tidb-data/tiflash" ]

## The maximum storage capacity of each directory in `storage.main.dir`.
## The maximum storage capacity of each directory in storage.main.dir.
## If it is not set, or is set to multiple 0, the actual disk (the disk where the directory is located) capacity is used.
## Note that human-readable numbers such as "10GB" are not supported yet.
## Numbers are specified in bytes.
## The size of the `capacity` list should be the same with the `dir` size.
## The size of the capacity list should be the same with the dir size.
## For example:
# capacity = [ 10737418240, 10737418240 ]

[storage.latest]
## The list of directories to store the latest data. About 10% of the total data is stored in
## the directory list. The directories (or directory) listed here require higher IOPS
## metrics than those in `storage.main.dir`.
## If it is not set (by default), the values of `storage.main.dir` are used.
## metrics than those in storage.main.dir.
## If it is not set (by default), the values of storage.main.dir are used.
# dir = [ ]
## The maximum storage capacity of each directory in `storage.latest.dir`.
## The maximum storage capacity of each directory in storage.latest.dir.
## If it is not set, or is set to multiple 0, the actual disk (the disk where the directory is located) capacity is used.
# capacity = [ 10737418240, 10737418240 ]

## [storage.io_rate_limit] settings are new in v5.2.0.
[storage.io_rate_limit]
## This configuration item determines whether to limit the I/O traffic, which is disabled by default. This traffic limit in TiFlash is suitable for cloud storage that has the disk bandwidth of a small and specific size.
## The total I/O bandwidth for disk reads and writes. The unit is bytes and the default value is 0, which means the I/O traffic is not limited by default.
# max_bytes_per_sec = 0
## max_read_bytes_per_sec and max_write_bytes_per_sec have similar meanings to max_bytes_per_sec. max_read_bytes_per_sec means the total I/O bandwidth for disk reads, and max_write_bytes_per_sec means the total I/O bandwidth for disk writes.
## These configuration items limit I/O bandwidth for disk reads and writes separately. You can use them for cloud storage that calculates the limit of I/O bandwidth for disk reads and writes separately, such as the Persistent Disk provided by Google Cloud Platform.
## When the value of max_bytes_per_sec is not 0, max_bytes_per_sec is prioritized.
# max_read_bytes_per_sec = 0
# max_write_bytes_per_sec = 0

## The following parameters control the bandwidth weights assigned to different I/O traffic types. Generally, you do not need to adjust these parameters.
## TiFlash internally divides I/O requests into four types: foreground writes, background writes, foreground reads, background reads.
## When the I/O traffic limit is initialized, TiFlash assigns the bandwidth according to the following weight ratio.
## The following default configurations indicate that each type of traffic gets a weight of 25% (25 / (25 + 25 + 25 + 25) = 25%).
## If the weight is configured to 0, the corresponding I/O traffic is not limited.
# foreground_write_weight = 25
# background_write_weight = 25
# foreground_read_weight = 25
# background_read_weight = 25
## TiFlash supports automatically tuning the traffic limit for different I/O types according to the current I/O load. Sometimes, the tuned bandwidth might exceed the weight ratio set above.
## auto_tune_sec indicates the interval of automatic tuning. The unit is seconds. If the value of auto_tune_sec is 0, the automatic tuning is disabled.
# auto_tune_sec = 5

[flash]
tidb_status_addr = TiDB status port and address. # Multiple addresses are separated with commas.
service_addr = The listening address of TiFlash Raft services and coprocessor services.

## Multiple TiFlash nodes elect a master to add or delete placement rules to PD,
## and the configurations in `flash.flash_cluster` control this process.
## and the configurations in flash.flash_cluster control this process.
[flash.flash_cluster]
refresh_interval = Master regularly refreshes the valid period.
update_rule_interval = Master regularly gets the status of TiFlash replicas and interacts with PD.
Expand Down Expand Up @@ -140,7 +160,7 @@ delta_index_cache_size = 0
[profiles]

[profiles.default]
## The default value is `true`. This parameter determines whether the segment
## The default value is true. This parameter determines whether the segment
## of DeltaTree Storage Engine uses logical split.
## Using the logical split can reduce the write amplification, and improve the write speed.
## However, these are at the cost of disk space waste.
Expand All @@ -162,21 +182,21 @@ delta_index_cache_size = 0
## Security settings take effect starting from v4.0.5.
[security]
## New in v5.0. This configuration item enables or disables log redaction. If the configuration value
## is set to `true`, all user data in the log will be replaced by `?`.
## Note that you also need to set `security.redact-info-log` for tiflash-learner's logging in tiflash-learner.toml.
## is set to true, all user data in the log will be replaced by ?.
## Note that you also need to set security.redact-info-log for tiflash-learner's logging in tiflash-learner.toml.
# redact_info_log = false

## Path of the file that contains a list of trusted SSL CAs. If set, the following settings
## `cert_path` and `key_path` are also needed.
## cert_path and key_path are also needed.
# ca_path = "/path/to/ca.pem"
## Path of the file that contains X509 certificate in PEM format.
# cert_path = "/path/to/tiflash-server.pem"
## Path of the file that contains X509 key in PEM format.
# key_path = "/path/to/tiflash-server-key.pem"

## New in v5.0. This configuration item enables or disables log redaction. If the configuration value
## is set to `true`, all user data in the log will be replaced by `?`.
## Note that you also need to set `security.redact-info-log` for tiflash-learner's logging in tiflash-learner.toml.
## is set to true, all user data in the log will be replaced by ?.
## Note that you also need to set security.redact-info-log for tiflash-learner's logging in tiflash-learner.toml.
# redact_info_log = false
```

Expand Down

0 comments on commit fdbc54d

Please sign in to comment.