Skip to content

Commit 06ac6a4

Browse files
committed
Add information about fine-tuning
1 parent 38e5eae commit 06ac6a4

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

ydb/docs/ru/core/maintenance/manual/performance_metrics.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ $$
2626

2727
Планировщик PDisk управляет порядком выполнения PDisk'ом запросов от его клиентов-VDisk'ов. PDisk честно делит время устройства между своими VDisk'ами, то есть каждому из $n$ VDisk'ов гарантируется $1/n$ секунд работы физического устройства каждую секунду. На основе информации о количестве VDisk'ов-соседей для каждого VDisk'а рассчитывается доступное время диска или `DiskTimeAvailable`.
2828

29-
### Масштабирование метрик
30-
31-
Поскольку коэффициенты производительности
32-
3329
### Детектор берстов
3430

3531
Берст - это резкое краткосрочное повышение нагрузки на VDisk, которое может приводить к деградации latency операций. Значения сенсоров с нод кластера собираются через определенные промежутки времени, например, раз в 15 секунд, что делает невозможным надежное обнаружение краткосрочных событий с помощью одних только метрик Cost и TimeAvailable. Для решения этой задачи используется модифицированный [алгоритм Token Bucket](https://en.wikipedia.org/wiki/Token_bucket), в нашей модификации в ведре может быть отрицательное количество токенов, и такое состояние мы будем называть underflow. К каждому VDisk'у привязан отдельный объект Token Bucket.
@@ -51,6 +47,26 @@ $$
5147
1. `DiskTimeAvailable >= UserDiskCost + InternalDiskCost + CompactionDiskCost + DefragDiskCost + ScrubDiskCost` - средний поток нагрузки не превышает предельно допустимый.
5248
2. `BurstDetector_redMs = 0` - отсутствуют краткосрочные пики нагрузки, приводящие к образованию очередей запросов.
5349

50+
### Масштабирование метрик
51+
52+
Поскольку коэффициенты для формулы cost измерялись на конкретных физических устройствах, а производительность других устройств может отличаться, метрики могут потребовать масштабирования для использования их в качестве источника гарантий BlobStorage. Для этого задайте параметру `DiskTimeAvailableScale` в [конфигурации BlobStorage](../../deploy/configuration/config.md#blob-storage-config) значение, равное отношению производительности устройств кластера и эталона. Например, если ваша система использует NVME устройства и обеспечивает вдвое более высокую производительность, чем эталон, то задайте следующую конфигурацию:
53+
```
54+
blob_storage_config:
55+
vdisk_types:
56+
- pdisk_type: NVME
57+
disk_time_available_scale: 2
58+
```
59+
60+
### Как сравнить свое устройство с эталоном
61+
62+
Чтобы сравнить производительность BlobStorage на вашей системе с эталонной, необходимо загрузить распределенное хранилище запросами до такого состояния, когда VDisk'и не могут обрабатывать поток входящих запросов, сответственно запросы начинают выстраиваться в очередь, и время отклика VDisk'ов резко возрастает. Посчитайте величину $D$ в момент перегрузки:
63+
$$
64+
D = \frac{UserDiskCost + InternalDiskCost + CompactionDiskCost + DefragDiskCost + ScrubDiskCost}{DiskTimeAvailable}
65+
$$
66+
Задайте параметр `disk_time_available_scale` конфигурации равным рассчитанному значению $D$.
67+
68+
Создать подобную нагрузку можно любым инструментом, который обеспечивает плавно возрастающую частоту запросов, например, с помощью [Storage LoadActor](../../development/load-actors-storage.md).
69+
5470
### Дашборд в Monitoring
5571
Для удобного просмотра метрик и диагностики существует [дашборд](https://m.yandex-team.ru/projects/kikimr/dashboards/mongi8n4phijn4n3o4il) во внутреннем инструменте Monitoring.
5672

ydb/docs/ru/core/maintenance/manual/toc_i.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ items:
3535
href: balancing_load.md
3636
- name: Освобождение места на физических устройствах
3737
href: disk_end_space.md
38+
- name: Работа с метриками производительности BlobStorage
39+
href: performance_metrics.md

0 commit comments

Comments
 (0)