Подтвердить что ты не робот

Что означает "масштабируемость"?

Я прочитал много статей, сравнивая языки программирования.

Часто встречается слово: масштабируемость. Я пытался найти простое и понятное объяснение, но ничего не нашел.

Можете ли вы объяснить, что означает термин масштабируемость?

4b9b3361

Ответ 1

Масштабируемость - это способность программы масштабироваться. Например, если вы можете что-то сделать в небольшой базе данных (скажем, менее 1000 записей), программа с масштабируемостью будет хорошо работать на небольшом наборе, а также хорошо работать на большом наборе (скажем, миллионы или миллиарды записей).

Как говорится в разрыве, у него будет линейный рост потребностей в ресурсах. Посмотрите примечание Big-O для более подробной информации о том, как программы могут потребовать больше вычислений, чем больше ввод данных. Что-то параболическое, как Big-O (x ^ 2), гораздо менее эффективно с большими входами x, чем нечто линейное, как Big-O (x).

Ответ 2

Масштабируемость - это черта, в которой программное решение может справляться с большими нагрузками. Это могут быть большие наборы данных, более высокие скорости запросов, сочетание размера и скорости и т.д.

Говоря о масштабируемости систем, мы обычно различаем

  • "Масштабировать" - способность расти с использованием более сильного оборудования.
  • "Масштабировать" - способность расти, добавляя больше аппаратного обеспечения.

Решение, которое может масштабироваться, может, как правило, расти до более загруженных грузов более экономичным способом. Здесь важно знать закон Amdahl, который гласит, что способность масштабирования ограничена последовательной частью программного обеспечения.

Ответ 3

Здесь уже отличные ответы, просто хотелось добавить кое-что сюда.

Масштабируемость может быть достигнута двумя способами:

  1. Вертикальный - таким образом, вы добавляете больше оборудования, например, больше оперативной памяти, процессора или больше узлов Вы также вводите балансировщик нагрузки, который поможет в маршрутизации входящих вызовов на различные серверы на основе используемого алгоритма маршрутизации. Теперь приложение может обрабатывать большую нагрузку, поскольку нагрузка распределяется между серверами.

  2. Горизонтальное - при горизонтальном масштабировании вы проектируете/проектируете приложение таким образом, чтобы оно могло вести себя хорошо в случае более параллельного трафика. Вы проверяете, как вы управляете памятью, сессиями, кэшем и состояние и т.д. Если вы используете сеанс для хранения информации о пользователях, то при большой нагрузке один сервер может быть более загружен управлением серверами, поэтому в этом случае вы можете проверить возможность выхода из состояния отсутствия. Он также может отвечать на входящие запросы от того же пользователя параллельно, а не на последовательные ответы, что происходит, если используются сеансы.

Ответ 4

Мое понимание заключается в том, что линейное увеличение запрашиваемого результата требует только линейного увеличения ресурсов.