Update README.md
This commit is contained in:
42
README.md
42
README.md
@@ -896,6 +896,48 @@ score_for_removal = (1 - node.load) * 0.6 +
|
||||
(node_uptime_hours / max_uptime) * 0.4
|
||||
```
|
||||
|
||||
**Краевые условия и ограничения**
|
||||
|
||||
```sh
|
||||
// Границы кластера
|
||||
min_nodes = 1 // минимум 1 узел
|
||||
max_nodes = 10 // максимум 10 узлов
|
||||
|
||||
// Ограничения на изменение
|
||||
max_scale_up_nodes = 3 // за раз можно добавить не более 3 узлов
|
||||
max_scale_down_nodes = 2 // за раз можно удалить не более 2 узлов
|
||||
```
|
||||
|
||||
**Примеры работы алгоритма**
|
||||
|
||||
**Пример 1: Нагрузка растёт**
|
||||
|
||||
```sh
|
||||
T=0: nodes=4, load=0.65, прогноз=0.68 → NoChange
|
||||
T=30: nodes=4, load=0.72, прогноз=0.78 → NoChange
|
||||
T=60: nodes=4, load=0.80, прогноз=0.85 → NoChange
|
||||
T=90: nodes=4, load=0.88, прогноз=0.94 → ScaleUp(+2 узла)
|
||||
T=120: nodes=6, load=0.78, прогноз=0.81 → NoChange (стабилизация)
|
||||
```
|
||||
|
||||
**Пример 2: Нагрузка падает**
|
||||
|
||||
```sh
|
||||
T=0: nodes=6, load=0.45, прогноз=0.42 → NoChange
|
||||
T=30: nodes=6, load=0.38, прогноз=0.35 → NoChange
|
||||
T=60: nodes=6, load=0.32, прогноз=0.29 → ScaleDown(-1 узел)
|
||||
T=90: nodes=5, load=0.35, прогноз=0.33 → NoChange (стабилизация)
|
||||
```
|
||||
|
||||
**Преимущества алгоритма PHA:**
|
||||
|
||||
1. Проактивность - прогнозирование предотвращает перегрузку до её наступления
|
||||
2. Стабильность - moving average и cooldown предотвращают "маятник"
|
||||
3. Гибкость - разные веса метрик позволяют адаптироваться под разные нагрузки
|
||||
4. Безопасность - границы min/max и лимиты на скорость изменения
|
||||
5. Эффективность - пропорциональное масштабирование (чем выше перегрузка, тем больше узлов)
|
||||
|
||||
|
||||
```sh
|
||||
# Просмотр статуса кластера (режим лидера)
|
||||
futriix:~> status
|
||||
|
||||
Reference in New Issue
Block a user