English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гість
1 / ?
назад до уроків

L = λ × W: Прямокутник

Little's Law: Найкорисніше рівняння в плануванні місткості

Джон Літл довів у 1961 році, що для будь-якої стабільної черги, незалежно від її внутрішньої структури: L = λ × W, де:

- L = середня кількість предметів у системі (черга + в обслуговуванні)

- λ (лямбда) = середня швидкість надходження предметів на одиницю часу

- W = середній час, який кожен предмет проводить у системі

Геометричне читання: побудуйте швидкість надходження λ на одній осі & час перебування W на іншій. Добуток L — це площа утвореного ними прямокутника. Планування місткості відбувається всередині цього прямокутника.

Чому це важливо: будь-які два з трьох величин визначають третю. Якщо ви вимірюєте пропускну здатність та затримку, ви знаєте заповнення. Якщо ви вимірюєте заповнення та пропускну здатність, ви знаєте затримку. Закон стійкий: він застосовується до веб-запитів, столиків у ресторані, супермаркетних черг та конвеєрів CPU без змін.

Три конкретні приклади:

- Веб-служба обробляє 200 запитів/секунду з середньою затримкою 50 мс (0,05 с). L = 200 × 0,05 = 10 запитів в обробці в будь-який момент.

- Кав'ярня обслуговує 60 клієнтів/год із середнім часом перебування 15 хвилин (0,25 год). L = 60 × 0,25 = 15 клієнтів всередині в середньому.

- Фабрична лінія виробляє 100 виджетів/год, причому кожен виджет займає 2 години від початку до кінця. L = 100 × 2 = 200 виджетів в процесі.

Імплікація для забезпечення ресурсами: якщо ви можете розміри для L (в обробці одночасно), ви розмістили систему. Кількість рівнів робітників, з'єднань із базою даних або місць у черзі — все це випливає з L.

Little's Law як прямокутник: λ на осі x, W на осі y, площа = L

Розмірування пулу рівнів

Ваша служба перекодування відео розраховується на середню швидкість надходження 30 завдань перекодування на хвилину, кожне займає 90 секунд від початку до кінця. Поточний пул рівнів має 30 рівнів.

Застосуйте Little's Law, щоб визначити, достатньо ли розміру поточного пулу. Покажіть свою роботу. Потім поясніть, що змінюється, якщо швидкість надходження подвоїться, & що змінюється, якщо індивідуальний час перекодування подвоїться. Який сценарій більше перевантажує систему?

Чому затримка вибухає за 80% використання

Найважливіша крива в плануванні місткості

Побудуйте використання на осі x (0% до 100%) та середню затримку на осі y. Форма, яка виникає, — одна з найбільш впливових кривих в операціях: вона пояснює, чому команди розраховують використання набагато нижче 100%, чому зарезервований запас дозволу — це не витрачена, а чому системи, що працюють «ефективно» при високому використанні, падають без попередження.

Крива черговості M/M/1: для системи з надходженнями Пуассона (випадково) та часами обслуговування експоненціального розподілу (випадково), середній час очікування слідує формулі:

W_q = ρ / (μ(1-ρ))

де ρ (ро) — це використання (0 до 1) & μ — швидкість обслуговування. Знаменник (1-ρ) — це основна їжа: коли ρ наближається до 1, знаменник наближається до 0, & час очікування наближається до нескінченності.

Числові приклади (множник затримки проти ρ для M/M/1):

- ρ = 0,5: множник затримки 1,0 (базовий)

- ρ = 0,7: множник затримки ~2,3

- ρ = 0,8: множник затримки ~4,0

- ρ = 0,9: множник затримки ~9,0

- ρ = 0,95: множник затримки ~19,0

- ρ = 0,99: множник затримки ~99,0

Коліно знаходиться близько 70-80% використання. Нижче колінна затримка зростає повільно при додаванні навантаження. Вище колінна затримка вибухає нелінійно. Саме тому канонічне SRE правило таке: розраховуйте стійкий стан використання нижче 80%, ніколи не працюйте постійно вище 90%.

Чому традиційні команди операцій цінувати занижують це: сервер на 60% CPU «виглядає зайнятим», але має комфортний запас затримки. Сервер на 90% CPU «виглядає продуктивним», але знаходиться в одному стрибку навантаження від катастрофи затримки. Геометрична правда: нахил кривої — це реальна загроза, а не його поточне значення y.

Крива черговості M/M/1: x = використання, y = затримка, коліно при ~80%

Читання кривої

Команда працює зі службою на 85% використання CPU в стійкому стані. Поточна затримка p99 — 200 мс. Вони розглядають додавання 30% більше трафіку для консолідації робочого навантаження з іншої служби, яка виводиться з експлуатації.

Передбачте, що станеться з затримкою при 85% стає приблизно 110% (понад потужність), використовуючи криву черговості. Чому використання CPU понад 100% буквально не може бути стійким, & який видимий симптом його замінює? Рекомендуйте цільове використання для консолідованого навантаження & обґрунтуйте запас дозволу, який ви залишаєте.

Нахил, перетин, & конус прогнозу

Читання зростання з нахилу

Прогнозування попиту зводиться (у багатьох випадках) до проведення правої лінії через історичні дані. Геометричні властивості цієї лінії: нахил, перетин, & конус невизначеності, кодують весь прогноз.

Лінійний тренд (y = mx + b): відповідний для коротких вікон або справді лінійних процесів. Нахил m — це швидкість зростання за одиницю часу. Перетин b — це стартова величина. Корисно, коли зростання стійке. Тенденція недооцінити, коли процес насправді складається.

Експоненціальний тренд (y = b × e^(mx)): відповідний для складеного зростання: вірусна адаптація, мережеві ефекти користувачів, мультиплікативна сезонність. На осі y з логарифмічною шкалою експоненціальне зростання стає лінійним, що полегшує оцінку нахилу. Нахил m на логарифмічній шкалі — це швидкість зростання за одиницю часу.

Кусково-лінійна: відповідна, коли зростання має різні режими. Стартап можна зростати повільно протягом 18 місяців, потім мати вірусний перегин, що виробляє 6 місяців вибухового зростання, потім стабілізуватися. Три лінійні сегменти підходять краще, ніж будь-яка одна крива.

Конус прогнозу: центральна оцінка плюс верхня та нижня межі, намальовані як розширюючийся конус у майбутнє. Ширина конуса зростає з часом, оскільки невизначеність складується. Прогноз на 4 тижні може мати ±10% меж; прогноз на 12 місяців часто має ±50% або більше.

Розкладання сезонності: реальний попит поєднує тренд + сезонний цикл + шум. Бібліотеки статистики (statsmodels, Prophet) розкладають серію на ці три компоненти, дозволяючи прогнозуватися тренду окремо від сезонної картини. Геометрично, тренд — це основний дрейф, сезонність — це періодична пульсація зверху, & шум — це залишкова коливання.

Конус прогнозу: лінія тренду, сезонні пульсації, розширюючі межі невизначеності

Вибір моделі тренду

У вас є 24 місяці щомісячних обсягів запитів. Місяці 1-12 зросли з 1M до 2M (лінійно-виглядаючи, +83K/місяць). Місяці 13-18 зросли з 2M до 4M (крутіше, +330K/місяць). Місяці 19-24 зросли з 4M до 12M (набагато крутіше). Маркетинг підтверджує вірусну функцію продукту, запущену в місяці 13, яка керує перегином.

Яка модель тренду найбільш підходить: чиста лінійна, чиста експоненціальна, або кусково-лінійна? Обґрунтуйте свій вибір, використовуючи поведінку нахилу. Потім запропонуйте, як прогнозувати місяці 25-30: явна центральна оцінка, верхня межа, & нижня межа. Яка подія в реальному світі може порушити будь-яку межу?

Місткість проти попиту як 2D геометрія

Графік, всередині якого живе кожна команда планування

Побудуйте час на осі x. Побудуйте попит та місткість на осі y як два окремі рядки. Вертикальний проміжок між ними в будь-якій точці часу — це запас дозволу. 2D площа між кривими — це конверт запасу дозволу.

Три опорні форми:

- Здоровий конверт: лінія місткості комфортно залишається вище лінії попиту. Проміжок може звужуватися під час піків, але ніколи не зникає. Конверт — це смуга безпеки.

- Звужуючийся конверт: місткість зростає повільніше, ніж попит. Проміжок звужується з часом. Точка перетину в майбутньому — це коли система вичерпує запас дозволу: дата, до якої команда повинна додати місткість.

- Інвертований конверт: попит перевищує місткість. Система знаходиться на території інциденту. Вертикальна величина інверсії — це дефіцит, який повинен бути обслужений якось (переповнення черги, показники помилок, вплив на клієнта).

Стандартна діаграма планування місткості наносить на графік:

- Остання історія попиту (суцільна синя лінія)

- Прогноз попиту з межами (пунктирна лінія + затінена конус)

- Поточна місткість (суцільна зелена лінія)

- Запановані збільшення місткості з датами доставки (крокова функція)

- Дата перетину, де прогноз попиту перетинає поточну місткість: це дедлайн для наступного забезпечення

Правило візуального рішення: тримайте крокову функцію місткості вище верхньої межі конуса прогнозу в усі часи. Не забезпечуйте центральну оцінку; забезпечуйте верхню межу. Вартість перепровізування кінцева (деяка вільна місткість); вартість недостатнього забезпечення необмежена (втрачені користувачі, каскадний збій, шкода репутації).

Конверт запасу дозволу: лінія попиту, крокова функція місткості, конус прогнозу, дата перетину

Читання конверту

Ваша діаграма місткості показує: поточний попит становить 1500 RPS, зростаючи на 20% на місяць. Поточна місткість — 2500 RPS. Новий набір серверів (+1500 RPS місткості) прибуває за 8 тижнів. Конус прогнозу має ±15% меж на горизонті 8 тижнів.

Обчисліть дату, коли прогноз попиту (центральна оцінка, верхня межа) досягає поточної місткості. Чи прибуде новий набір серверів вчасно? Яка візуальна форма конверту між цим часом & прибуттям нового набору, & які дії ви б взяли, якби попит верхної межі перетинав поточну місткість до прибуття нового набору?

Геометрія місткості: Завершення

Форми, які передбачають майбутнє

Ви пройшли через чотири геометричні структури, які розташовуються під плануванням місткості:

- Little's Law (L = λ × W) як площа прямокутника, що визначає стійкий стан заповнення

- Крива черговості з її коліном на 80% використання, кодуючи нелінійну вартість роботи в гарячому стані

- Нахили тренду та конуси прогнозу, які перетворюють історичні дані в дієві прогнози

- Конверти запасу дозволу як 2D графіки місткості проти попиту, з датами перетину, що позначають дедлайни забезпечення


Планування місткості — це, у своїй візуальній основі, дисципліна тримання однієї кривої безпечно вище іншої протягом часу. Цифри — це прикраса; форми несуть правду. Інженер з питань місткості, який правильно читає криву черговості, виловить проблеми, які інформаційна панель CPU приховує, доки система вже горить.


Супутній урок з планування місткості охоплював практики: вимірювання, прогнозування, тести на стелю, запас дозволу, & масштабування. Цей урок охоплював геометрію під ними. Разом вони формують візуальне та аналітичне обрамлення запуску служб, які масштабуються без сюрпризів.