195 подписчиков
Закон Амдала + Universal Scalability Law + Теорема Литтла + SLA = ❤️
Обещал, что сегодня расскажу, чем занимался под ночь пятницы.
Читая "Промышленное программирование на Java", я отвожу 7-8 лекций и семинаров на тему многопоточного программирования.
И этого, конечно, мало 😂
Больше внимания уделяется, конечно, самой Java.
Но на этом фоне решил оформить и поделиться своим "простым калькулятором" нагрузки.
По традиции подписчики канала, получают информацию раньше. :)
Закон Амдала (Амдаля)
Автор придумал его в 1967 во времена, когда компьютеры весили пару десятков тонн.
Закон применим для простых алгоритмов и задач.
Коротко обозначает, что распараллеливание алгоритма ограниченно самым узким место...
Universal Scalability Law
1993 год, компьютеры и системы стали сложнее.
Закон выглядит сложнее, потому что учитывает взаимосвязь компонентов (узлов или ядер) системы, будто бы они полносвязный граф.
Важными теоремами является то, что закон Амдала эквивалентен ограничению пропускной способности синхронной очереди.
А USL расширяет эту модель так, будто в системе есть линейные ухудшения при увеличении нагрузки.
Проще говоря, З.Амдал для простых вещей: алгоритмов и калькуляторов.
USL для вещей посложнее (сервисы, бд...), но не факт, что у вас есть полносвязный граф в системе, когда мы говорим про какую-нибудь архитектуру микросервисов, и пытаемся применять USL для оценки. Получается, что USL - нижняя оценка , когда полносвязный граф - худший случай.
Теорема Литтла
Долгосрочное среднее количество L запросов в стационарной системе равно долгосрочной средней интенсивности λ входного потока, умноженной на среднее время W пребывания заявки в системе.
Она заслуживает отдельных статей, которых уже и не мало написано, в целом 😁
Другими словами, если 10 задач подается на вход в секунду, а обрабатывается задача за 5 секунд, то через 5 секунд от начала работы, уже 49 задач будут висеть в очереди. Но со временем система стабилизируется (кажется), и мы можем найти некоторое среднее кол-во запросов в моменте.
Что делает калькулятор?
Я связываю теорему Литтла и оценку по USL.
Таким образом, можно прикинуть количество узлов, необходимых для выполнения SLA (соглашения об использовании), собрав эмпирические данные по нагрузке с одной ноды.
Подробнее скину файлик-превью следующим сообщением.
#pro@egorword
#articles@egorword
#рецептылучшихпрограммистов@egorword
#рецепты@egorword
#sla
1 минута
15 марта 2025