Что означает масштабируемость? [закрытый]
Я прочитал много статей, сравнивающих языки программирования.
есть слово, которое приходит часто : масштабируемость. Я действительно пытался найти простое и ясное объяснение, но не нашел его.
можете ли вы объяснить, что означает масштабируемость ?
спасибо.
4 ответов:
масштабируемость-это способность программы в масштабе. Например, если вы можете что-то сделать в небольшой базе данных (скажем, менее 1000 записей), программа с высокой масштабируемостью будет хорошо работать на небольшом наборе, а также хорошо работать на большом наборе (скажем, миллионы или миллиарды записей).
Как сказал gap, он будет иметь линейный рост потребностей в ресурсах. Посмотрите Big-O нотации для получения более подробной информации о том, как программы могут требовать больше вычислений, чем больше ввод данных получает. Что-то параболическое, такое как Big-O(x^2), гораздо менее эффективно с большими входами x, чем что-то линейное, такое как Big-O(x).
масштабируемость является чертой, где программное решение может обрабатывать повышенные нагрузки работы. Это могут быть большие наборы данных, более высокие скорости запросов, сочетание размера и скорости и т. д.
говоря о масштабируемости систем, мы обычно различаем
- "масштабирование" - возможность расти с помощью более сильного оборудования
- "масштабирование" - возможность расти, добавляя больше оборудования
решение, которое может масштабироваться может обычно растут к нагрузкам лагера в более рентабельном путе. Важно знать, что здесь закон Амдала это означает, что возможность масштабирования ограничена последовательной частью программного обеспечения
уже отличные ответы здесь, просто хотел добавить несколько вещей здесь.
масштабируемость может быть достигнута 2-мя способами:
Вертикаль-таким образом, вы добавляете больше оборудования, как больше оперативной памяти, процессора или нескольких узлов. Вы также вводите балансировщик нагрузки, который поможет в маршрутизации входящих вызовов на различные серверы на основе используемого алгоритма маршрутизации. Приложение теперь может обрабатывать больше нагрузки, нагрузки по всему сервера.
горизонтальное-при горизонтальном масштабировании вы создаете / проектируете приложение таким образом, чтобы оно могло хорошо вести себя в случае более параллельного трафика. Вы проверяете, как вы управляете памятью, сеансами , кешем и состоянием и т. д. Если вы используете сеанс для поддержания информации о пользователе, при большой нагрузке один сервер может быть более занят управлением серверами, поэтому в этом случае вы можете проверить возможность перехода без состояния. Он также может отвечать на входящие запросы от одного и того же пользователя параллельно вместо последовательных ответов, которые происходят, если используются сеансы.
мое понимание это означает, что a линейное увеличение требуемой производительности только требует a линейное увеличение ресурсов.
Comments