Можете ли вы помочь мне с моим планированием мощности?


132

Это канонический вопрос о планировании мощностей

Связанный:

У меня есть вопрос относительно планирования мощности. Может ли сообщество Server Fault помочь со следующим:


  • Какой сервер мне нужен для обработки определенного количества пользователей?
  • Сколько пользователей может обрабатывать сервер с некоторыми спецификациями ?
  • Будет ли какая-то конфигурация сервера достаточно быстрой для моего варианта использования ?
  • Я создаю сайт социальной сети: какое оборудование мне нужно?
  • Сколько пропускной способности мне нужно для какого-то проекта ?
  • Какую пропускную способность будет использовать некоторое количество пользователей в каком-либо приложении ?

Ответы:


97

Сообщество Server Fault, как правило, не может помочь вам в планировании емкости. Лучший ответ, который мы можем предложить, - это «сравнить ваш код на оборудовании, аналогичный тому, который вы будете использовать в производственной среде, выявить любые узкие места, а затем определить, какая нагрузка вашей рабочей нагрузки». текущее аппаратное обеспечение может обрабатывать, и / или сколько аппаратного обеспечения вам нужно, чтобы справиться с целевой нагрузкой » .


Существует несколько факторов, влияющих на планирование емкости, которые мы не можем адекватно оценить на сайте вопросов и ответов:

  • Требования вашего конкретного кода / программного обеспечения
  • Внешние ресурсы (базы данных, другое программное обеспечение / сайты / серверы)
  • Ваша рабочая нагрузка (пиковая, средняя, ​​в очереди)
  • Оценка эффективности бизнеса (анализ затрат / выгод)
  • Ожидания от ваших пользователей
  • Любые соглашения об уровне обслуживания / договорные обязательства, которые вы можете иметь

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


Некоторые аксиомы планирования емкости

  1. Оперативная память дешевая
    Если вы ожидаете, что ваше приложение будет использовать много оперативной памяти, вам следует поместить столько оперативной памяти, сколько вы можете себе позволить.
  2. Диск дешевый
    Если вы планируете использовать много дисков, вам следует купить большие диски - их много.
    SAN / NAS хранилище дешевле, и оно также должно быть достаточно большим, а не маленьким, чтобы избежать дорогостоящих обновлений позже.
  3. Рабочие нагрузки со временем растут.
    Предположим, ваши потребности в ресурсах возрастут.
    Имейте в виду, что увеличение может быть не симметричным (ЦП и ОЗУ могут расти быстрее, чем на диске), и оно может быть не линейным.
  4. Электроэнергия стоит дорого
    Несмотря на то, что стоимость оперативной памяти и дисков значительно снизилась, стоимость электроэнергии постоянно растет. Все эти дополнительные диски и оперативная память, не говоря уже о мощности процессора, увеличат ваш счет за электроэнергию (или счет, который вы платите своему провайдеру). Планируйте соответственно.

1
Вы должны полностью отбросить это и использовать интеграцию по частям!
Жиль

+1. И RAM, как вы предлагаете в аксиоме № 1, является одной из тех вещей, которая имеет огромные преимущества. Например, это повышает вашу способность лучше использовать кэширование, что, в свою очередь, позволяет выполнять меньше запросов к базе данных, что, в свою очередь, снижает нагрузку на диск и процессор. Я часто разочаровываюсь хостинг-провайдерами, которые предлагают быстрый процессор со своими серверами и минимальный объем оперативной памяти.
Стив Уортэм

31
Я бы добавил к этому: емкость диска дешевая. Производительность диска становится дорогой. Тем более, что мы видим рост размеров дисков за 10 лет, но законы физики не изменились. Основное правило, которое я использую (на сегодняшний день, июнь 2014 г.), заключается в оптимальной производительности: 75 IOP на шпиндель на SATA, 200 IOP на шпиндель на FC и 1500 IOP на SSD. Большие SATA-диски дают очень плохие показатели ввода-вывода на гигабайт.
Sobrique

В середине 2019 года никто больше не должен покупать шпиндельные накопители.
Роберт Харви

@RobertHarvey, никто больше не должен покупать шпиндельные накопители SAS . Чтобы получить емкость для серверов Petabox Scale, все равно требуется много дисков SATA, иначе вы заплатите много.
Микко Ранталайнен

44

Планирование количества виртуальных машин

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

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

Что не очень полезно. Если эти виртуальные машины будут работать с приложениями с низким ЦП, тогда ваш ограничитель будет основан на ОЗУ. Каждая платформа VM имеет свои собственные возможности для переподписки ОЗУ, поэтому это не так просто, как TOTAL_RAM / Per-VM-RAM = MachineCount, но это число является хорошим элементом планирования.

Но что, если ваши виртуальные машины делают что-то еще помимо низкопроцессорной пакетной обработки?


Количество виртуальных машин ограничено семью дискретными ресурсами, доступными хост-машине:

  • Гипервизор VMware, Xen, HyperV, KVM, что угодно. Каждый из них имеет свои особенности, влияющие на счет. Некоторые очень хороши в дедупликации страниц памяти, другие не так уж и хороши. Некоторые не допускают переподписку процессорной мощности, некоторые делают.
  • Скорость ядра процессора. Это ограничивает максимальную однопоточную производительность, которую может работать ВМ. 36 ядер процессора с частотой 1,8 ГГц могут иметь частоту процессора 64,8 ГГц на хосте, но ни один из потоков не будет работать быстрее, чем 1,8 ГГц.
  • Число ядер ЦП Это, с частотой ядра, описывает предел максимальной производительности ЦП, которую вы можете испытать.
  • ОЗУ системы Как описано выше, это ограничивает количество виртуальных машин, которые вы можете запустить. Некоторые гипервизоры лучше, чем другие, в таких областях, как дедупликация страниц памяти, поэтому, если вы используете 100 идентичных виртуальных машин, вы можете упаковать их гораздо больше в таких дедуплицирующих системах, чем если бы вы использовали 100 совершенно разных виртуальных машин.
  • Размер диска Каждый образ ОС занимает определенное количество места. Вам нужно достаточно места, чтобы хранить все это. Следовательно, размер диска устанавливает верхний предел количества виртуальных машин, которые вы можете разместить.
  • Пропускная способность ввода / вывода Диск, лежащий в основе виртуальных машин, имеет максимальное количество операций ввода-вывода в секунду, которые он может обрабатывать. Если вы добавите слишком много к нему, системы будут зависать в ожидании завершения ввода-вывода. Это накладывает верхний предел на количество ВМ, потребляющих ввод / вывод, которые вы можете запустить.
  • Пропускная способность сети Для виртуальных машин, использующих сеть, доступная пропускная способность сети будет устанавливать предел для количества таких виртуальных машин, которые вы можете запустить на данном хосте.

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

  • Нет такой вещи как общая система.
  • Не существует такого понятия, как универсальный веб-сервер , поскольку код приложения может запускаться от обслуживания CDN в стиле « едва двигается иглой» до больших вещей с глубоким взломом, таких как транскодирование видео.
  • Не существует такого понятия, как универсальный сервер базы данных . Они могут работать от крошечных систем, используемых только для отслеживания состояния сеанса, до очень больших.

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


Прежде всего, используйте системы на основе VM на двух отдельных физических серверах с несвязанными виртуальными машинами. это учитывает аппаратный сбой без потери всей системы. VM могут перемещаться между одинаковыми серверами без потери данных. только сессии теряются, а затем перестраиваются. лично я хотел бы передать услуги хостинговой компании, которая предлагает эти услуги (Google или Amazon). они дорогие, но намного дешевле, чем собственные.
Случайно-IT

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

6

Убедитесь, что вы задаете правильный вопрос.

  • Компьютеры дешевы
  • Будущие потребности очень сложно предсказать
  • Планируйте, как масштабировать, а не что покупать заранее

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

Убедитесь, что у вас есть представление о том, как вы будете масштабироваться, когда все станет больше. Можете ли вы добавить больше серверов за балансировщиком нагрузки? Можете ли вы осквернить сервер Redis?

Кроме того, иметь свой собственный дата-центр - отстой. Центр обработки данных (даже если это всего лишь один компьютер) отвлекает от вашей реальной цели. Вы не можете просто купить компьютер, включить его и уйти. Вам нужны кондиционер, фильтрация воздуха, надежное электропитание, надежный Интернет, резервные копии, запасные части, физическое пространство для роста, мощность для наращивания, силовые кабели, которые не сработали, и еще миллионы других головных болей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.