Выбор VPS(VDS) сервера с точки зрения загруженности проекта. Как рассчитать какие параметры подходят вашему сайту.

Сервера, хостинг, 17 Февраля 2012

Выбор VPS(VDS) сервера с точки зрения загруженности проекта. Как рассчитать какие параметры подходят вашему сайту.

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


Чаще всего основными тарифными схемами являются по параметрам выделяемых ресурсов основного сервера виртуальному серверу VDS(VPS), а именно частота процессора, оперативная память(ОЗУ) и размер дискового пространства (HDD). Последним, обычно, можно пренебречь, если, конечно ваш проект не является файловым хранилищем с высокой степенью загрузки данных на вэб сайт, обычно это медиа файлы, такие как музыка, кино и тому подобное. Для таких целей можно точно сказать виртуальный сервер не подходит, потому что достаточно большое количество денег придется отдать за дисковое пространство, при этом для вашего проекта вероятно понадобится значительно меньше частота процессора и ОЗУ, а ведь именно по ним проводится основная градация всех тарифов, то есть частота процессора и оперативная память(ОЗУ) являются базовыми при создании тарифной сетки на виртуальные сервера, да и вообще на любые сервера.


Часто не очень квалифицированный пользователь зацикливается на частоте процессора, полагая, что именно он нужен побольше, чтобы обеспечить работоспособность его проектов. Это не всегда так. Частота процессора играет главную роль только тогда, когда ваш проект проводит огромное количество вычислений и расчетов, при этом проводя выборки из баз данных, вставку, копирование и так далее. При этом важно отметить, что вычислений реально должно быть очень много, чтобы нагрузить процессор по полной. Например, когда из базы данных выбирается 20-50 мегабайт данных, после чего над этими данными проводятся различные математические вычисления. такой скрипт при обращении к нему съедает очень много процессорного времени, но это не беда опять же, если вашим проектом с такими вычислениями пользуются небольшое количество людей в секунду. По идее, если каждые 15 секунд будут обращаться к такому скрипту, а время его выполнения с загрузкой процессора на 100% составляет 14 секунд, то никаких проблем для сервера не будет. Даже, если вдруг кто то обратится в момент пока обрабатываются данные для другого обращения, тоже не беда, просто им обоим придется чуть дольше подождать результаты. После чего сервер продолжит работу в нормальном режиме. Оговорюсь, что скрипт, который обрабатывается 14 секунд сервером с частотой в 1000 Мгц под 100% ну просто очень и очень серьезный, такие встречаются крайне редко, почти никогда, тем более не стретить их в обычных вэб проектах, таких как блоги, новостные порталы, интернет магазины и так далее. Чаще такие скрипты встречаются при обработке статистических данных, большого количества данных в базе, например, если вывести сразу на страницу 10 тысяч статей, причем при определенных условиях сортировки и группировки.


В этой связи большинству проектов как становится понятно необходимо обращать на параметр оперативная память (ОЗУ). Именно они является камнем преткновения, причиной возникновения ошибок в базе данных, падением сервера, отказом в ресурсах, запуске новых процессов, а как запустить процесс, если ему требуется память,а ее нет и не ожидается, так как новые и новые процессы летят один за одним. Приведу простой пример. Сервер с параметрами 1000 Мгц и 512 Мб ОЗУ, на котором располагается обычный сайт, например, блог. Данный сайт в час пик посетило 50 человек, которые каждые 2 секунды просматривают одну какую то страницу, что в итоге дает 25 страниц в секунду. К слову это довольно приличная посещаемость и интенсивность просмотра, но это пример. Так вот на вашем сервере через 10 секунд после начала их серфинга кончится память. И при этом загрузка процессора будет 2-5% всего навсего!!! При этом, что самое интересное, они смогут довольно нормально просматривать страницы, с чуть замедленной скоростью генерации страниц и их отдачи, но тем не менее, при этом сервер будет вполне стабилен с точки зрения просмотра страниц сайта, но дополнительное посещение страниц в секунду начнет приводить все к большим и большим задержкам при загрузке страницы. Иногда может появляться у некоторых пользователей ошибка 500 Internal Server Error, но после обновления страницы они ее получат. При наращивании посещаемости и серфинге страниц может начать появляться ошибка подключения к базе данных, потому что превышен лимит подключений, так как данные не успевают обрабатываться скрипту надо больше времени, он занимает большее время на подключении и поддержании оного к серверу базы данных и этот процесс как снежный ком, который в итоге приводит вплоть до падения сервера и его "сну" и поможет только его перезагрузка.


Как рассчитать посещаемость? Почти все сайты имеют счетчики. Выбираете самый пиковый период, какой-либо час и делите количество просмотров страниц на 3600 секунд, получая значение просмотров в секунду. Сервер на каждый просмотр страницы выделяет определенное количество памяти и после обработки данного обращения через несколько секунд освобождает эту память для нового обращения. Если ваш показатель до 5 просмотров в секунду, то вам подойдет сервер с памятью со 100 свободными мегабайтами. Что имеется в виду. Когда вы все, что необходимо установили на сервер, собрали его, поставили панель управления, php, mysql, xcache, Suhosin и так далее, все эти процессы занимают память на постоянной основе, находясь в спящем режиме. И свободной остается лишь какая то часть. вот именно под ней и понимается свободная память. То есть свободная память в тот момент, когда к вэб сайту нет обращений от посетителей вовсе. Далее, если 50-10 обращений в секунду, то понадобится 150-175 мегабайт. При 20 уже необходимо до 250, при 30 более 500 мегабайт. В том числе эти параметры варьируются в зависимости от того на сколько сложные скрипты и вычислительно нагруженные. В общем случае вышеприведенные цифры вполне приемлемы.


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


Также никто не отменял самый эффективный метод подбора сервера - экспериментальный, когда сложно оценить нагрузку. Покупаете самый дешевый VPS(VDS), устанавливаете на него все необходимые элементы, модули и запускаете вэб проект. Проводите пристальное наблюдение за расходованием ресурсов в часы пик. Если вы видите, что страницы тормозят, память на нуле, выползают ошибки, то заказываете следующий тариф, благо при покупке виртуального сервера апгрейд можно делать спокойно и быстро, равно как и даунгрейд. Снова анализируете степень загруженности и так пока не найдете оптимального варианта, при котором в часы пик не будет памяти ноль. Если даже всего 5 мегабайт остается свободно в самый пик, то это нормально. Или же на 1-5 секунд ноль, то тоже сойдет, но стоит задуматься, ведь посещаемость завтра через неделю может увеличиться и тогда снова необходимо будет улучшать параметры виртуального сервера. Метод этот плох только одним, что в момент пока вы подбираете необходимые параметры страдают ваши посетители, которые могут не получить свою страницы, долго ждать загрузки страниц, не смогут оставить отзыв, заказ и так далее. А в целом очень даже хорош.


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


Желаю вам успехов, хороших вэб проектов, стабильных и надежных серверов VDS(VPS).

Комментарии (1)

17 Февраля 2017
Дельный мануал! Спасибо за разъяснение, как считать нагрузку на оперативку!


Внеси свой вклад в осбуждение
Имя*
Почта*
не публикуется
Ваш сайт
например, http://site
Сообщение*
Код подтверждения*
Код подтверждения

1. Обязательно укажите код подтверждения

2. Все сообщения проходят модерацию перед размещением на сайте

3. Размещение ссылок в сообщении не допускается