Что такое масштабирование? - PullRequest
6 голосов
/ 26 декабря 2009

Я всегда получаю этот аргумент против RoR, что он не масштабируется, но я никогда не получаю никакого подходящего ответа, если это действительно означает? Итак, вот новичок, спрашивающий, что, черт возьми, это " масштабирование " и как вы это измеряете?

Ответы [ 7 ]

10 голосов
/ 26 декабря 2009

Какого черта это "масштабирование" ...

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

Часто бывает так, что простое увеличение размера проблемы на порядок или два выявляет слабые стороны стратегий, которые использовались для ее решения. Когда обнаруживаются такие слабости, можно сказать, что решение проблемы не «хорошо масштабируется».

Например, сортировка bogo проста в реализации, но как только вы сортируете больше, чем горстку вещей, для получения ответь хочешь. Было бы справедливо сказать, что сорта бого плохо масштабируются.

... а как вы это измеряете?

На этот вопрос сложнее ответить. В общем, нет единиц, связанных с масштабируемостью; утверждения типа «эта система в N раз масштабируема, как эта» в лучшем случае были бы сравнением яблок и апельсинов.

Масштабируемость чаще всего измеряется путем определения того, насколько хорошо система удовлетворяет различным требованиям в условиях тестирования. Люди могут сказать, что система хорошо масштабируется, если при широком разнообразии спроса она может не отставать. Это особенно верно, если он требует, чтобы он не испытывал в настоящее время, но можно ожидать, если есть внезапный всплеск популярности. (Вспомните эффекты Slashdot / Digg / Reddit .)

9 голосов
/ 26 декабря 2009

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

http://en.wikipedia.org/wiki/Scalability

2 голосов
/ 26 декабря 2009

Это термин, обозначающий способность системы сохранять свою производительность по мере ее роста.

В идеале вы хотите, чтобы система достигла линейной масштабируемости . Это означает, что, добавляя новые единицы ресурсов, система в равной степени возрастает в своей способности работать.

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

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

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

2 голосов
/ 26 декабря 2009

Масштабируемость имеет широкий спектр применения, как указано в Википедии:

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

  • Масштабируемость нагрузки: способность распределенной системы легко расширить и сократить свой ресурсный пул для размещения тяжелее или легче грузы. Кроме того, легкость с какой системой или компонентом может быть изменены, добавлены или удалены приспособить меняющийся груз.
  • Географическая масштабируемость: способность поддерживать производительность, полезность или удобство использования независимо от расширение от концентрации в местный район в более распределенном Географическая структура.
  • Административная масштабируемость: возможность увеличения числа организации легко поделиться одним распределенная система.
  • Функциональная масштабируемость: возможность улучшить систему добавление новой функциональности при минимальной усилие.

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

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

1 голос
/ 26 декабря 2009

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

Подумайте, что входит в создание системы ввода заказов, рассчитанной на 1000 повторений, чтобы вместить 100000 повторений. Какое оборудование нужно добавить? Как насчет баз данных? В двух словах, это масштабируемость.

0 голосов
/ 26 декабря 2009

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

0 голосов
/ 26 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...