Корневые серверы для веб-разработки - сколько энергии достаточно? - PullRequest
0 голосов
/ 22 марта 2009

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

Мне просто интересно, как оценить минимальные требования для быстрого сайта. Очевидно, есть некоторые факты, которые необходимо учитывать, например, ожидаемое количество посетителей, производное количество кликов в секунду и т. Д. Также работают такие службы, как веб-серверы (Apache / lighttpd) или почтовые серверы (Exim, sendmail, ..) может оказаться в разных потребностях.

Может быть, вы знаете хороший веб-сайт или можете дать некоторые объяснения о том, как оценить необходимую конфигурацию сервера по такой информации?

Ответы [ 2 ]

5 голосов
/ 22 марта 2009

Возможно, это больше искусство, чем наука.

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

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

Аналогичным образом, нехватка определенного ресурса может быть замаскирована, например, нехватка памяти может быть замаскирована интенсивным дисковым вводом / выводом, поскольку ваша система постоянно переставляет (сбои страниц), но дисковый ввод / вывод не является проблемой.

Так что ты делаешь?

Первое, что вам нужно - это определить (или сделать разумное предположение), что будет делать обычный пользователь и сколько он это сделает. В идеале вы сможете моделировать 100, 1000 или любое количество пользователей, которые вам нужны, с помощью программного обеспечения, такого как JMeter, чтобы затем получить представление о том, как масштабируется ваш веб-сайт, какая пропускная способность будет требоваться и так далее. Мы надеемся, что, моделируя 100, 500, 1000, 2000 пользователей, вы сможете увидеть, насколько линейно масштабируется ваш веб-сайт.

Вы можете обнаружить, что для поддержки 1000 пользователей требуется 1 гигабайт оперативной памяти, а для 2000 требуется 4 гигабайта: это пример нелинейной масштабируемости, которая обнажает проблему, которая может возникнуть при расширении веб-сайта. И это то, что можно обнаружить при тестировании производительности.

Честно говоря, в наши дни аппаратные средства настолько дешевы, что редко представляют собой проблему, за исключением самых крупных и популярных сайтов (за 10 тысяч долларов можно купить 1 или даже 2 сервера с 16 ГБ оперативной памяти и 4-8 ядрами на каждом). Разделяемый и VPS-хостинг - это отдельная история, потому что обычно вам нужно платить только за то, сколько памяти, полосы пропускания и дискового пространства вам нужно. К счастью, такие решения обычно позволяют довольно легко обновиться (по крайней мере, до такой степени, что вам в конечном итоге придется посвятить себя хостингу).

Вы можете сделать некоторые грязные оценки в начале проекта, выполнив то, что они называют оценкой «обратно в конверт». Выполните ключевые запросы, скажем, 100 раз и отработайте сколько нужно процессорного времени, 100 раз попробуйте макетировать страницу и выясните, какую пропускную способность она генерирует и так далее. Эти приблизительные оценки в сочетании с предположениями о том, как пользователи будут использовать сайт, дадут вам приблизительную оценку (надеюсь, в 2-3 раза) того, что вам нужно.

3 голосов
/ 22 марта 2009

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

  1. Кластерный сервер, если трафик высокий
  2. Физическое расположение сервера: найдите целевую аудиторию для вашего сайта и лучше располагайте сервер в этой стране.
  3. План аварийного восстановления. Хорошо иметь более быстрый веб-сайт, а более быстрый процесс восстановления также очень хорош.
  4. Выберите лучшую технологию и внедрите новые технологии, такие как AJAX, и сократите запросы серверов, где это возможно.

Добавит больше, если что-то появится.

...