Возможный дубликат:
Как вы выполняете нагрузочное тестирование и планирование емкости для веб-сайтов
У меня есть персональный веб-сервер (выделенный) с 2 ГБ ОЗУ, 500 ГБ жесткого диска и неограниченной пропускной способностью.
В настоящее время существует около 15 сайтов. Некоторые сайты получают около 1000 посещений в день, а самые низкие - около 150 в день.
Большинство сайтов являются блогами на wordpress, а другие - приложениями asp.net. Все сайты не "тяжелые".
У меня вопрос: сколько еще веб-сайтов может обрабатывать мой веб-сервер? Я веб-разработчик, так что (строгая спецификация) я должен учитывать, прежде чем сдавать в аренду сервер для веб-сайта?
На этот вопрос нет однозначного ответа, поскольку он на 100% зависит от нагрузки и использования функций этих сайтов. Также учтите, что нагрузка может меняться со временем, поэтому вы не можете полностью спланировать, просто глядя на текущие шаблоны использования.
Лучший совет, который я могу дать, - это следить за текущим использованием и попытаться определить среднее количество загрузок / посетителей. Затем запланируйте безопасную маржу, которую вы хотите иметь, и арендуйте веб-сайты / купите серверы соответственно.
Посмотрите на использование процессора и потребление ресурсов в часы пик и в течение дня. Экстраполируйте их на то, сколько еще сайтов доведет сервер до не более 75%, самое большее. Продолжайте отслеживать это число по мере добавления новых сайтов.
Вы не хотите выходить за пределы, так как чем меньше пороговое значение у вас есть, один сайт, у которого большой день или какой-то неэффективный код (например: сайт становится "тяжелым"), может вывести вашу машину из строя, если вы не будете осторожны .
Возможно, здесь я абсолютно неправ, но по небольшому опыту работы с выделенными веб-серверами я могу сказать, что хостинг веб-сайтов далеко не так ресурсоемок, как думают некоторые.
Если у вас есть хотя бы двухъядерный процессор, узкое место ЦП должно быть в порядке, так что, вероятно, узкое место, о котором вы будете беспокоиться, - это узкое место жесткого диска, которое устраняется с помощью старого движения «Бросить в него барана».
Единственный реальный способ узнать это - посмотреть статистику, и когда вы начинаете видеть, что формируется узкое место, у людей возникают тайм-ауты или заканчиваются ресурсы, тогда пора немного обновить или рассмотреть вопрос об аутсорсинге.
Если вы обслуживаете статическое содержимое (либо html, либо html, созданное чем-то вроде подвижного типа), то для любого современного оборудования ответ будет большим. Где много, вероятно, измеряется десятками миллионов статических запросов в день.
При такой настройке первое ограничение, с которым вы столкнетесь, будет размер подключения ваших серверов к вашему центру обработки данных. Большинство поставщиков выделенных серверов начнут с 10-мегабитного соединения, что, вероятно, является первым, что будет максимально возможным, если вы приблизитесь к указанному выше количеству запросов. Как правило, они переключат вас на порт 100 Мбит с небольшими изменениями или без них, но имейте в виду, что это означает, что у вас есть 10-кратное увеличение того, насколько быстро может быть исчерпан предел пропускной способности (если он у вас есть). Обращайте пристальное внимание и внимательно следите за своим ежемесячным использованием, чтобы не платить большие комиссии.
Итак, как только у вас будет 100-мегабитное соединение, следующей потенциальной проблемой станет скорость передачи ваших данных с жесткого диска в сеть. Даже при 100 Мбит это все еще всего 12 МБ в секунду от жесткого диска, что тривиально для современного оборудования. Учитывая приличный объем свободной памяти (для дискового кеша) и хорошее сочетание размеров файлов (от нескольких сотен байтов для вашего favicon.ico до нескольких сотен килобайт для большой фотографии), вы все равно, вероятно, ограничите 100-мегабитное соединение. прежде, чем попасть под серьезную нагрузку.
Однако все это предполагает, что сайт обслуживает статический контент, что почти никогда не бывает. Если вы используете веб-фреймворк, такой как Django, Rails, Grails или любой из сотен существующих, то первым узким местом будет ЦП, вторым - память, а третьим - степень параллелизма, которую может обрабатывать ваше приложение.