Расчет нагрузки на сервер

Расчет нагрузки на сервер

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

Данная задача встала передо мной, когда потребовалось оценить существующий сервер для внедрения веб-портала, написанного на языке PHP. Выполнял он типовые функции: предоставление информации, веб-интерфейс для поиска, форум или/и ЧаВо, размещение материалов для скачивания (небольших документов — распространением пиратских копий ПО и фильмов мы не занимаемся 😉 ). На тот момент, когда проводились исследования (около полутора лет назад), ничего подобного в интернете найти не удалось. Поэтому пришлось моделировать самостоятельно и воспользоваться GPSS World. Инструмент довольно старый, но надёжный, в данном случае подходил полностью.

Одно обращение к тому или иному разделу, файлу, запрос к базе данных было принято за единицу обращения и в системе GPSS реализовалась как заявка. Необходимо сгенерировать и рассчитать параметры так, чтобы сервер выдержал максимальную предполагаемую нагрузку. Можно предположить следующие «узкие» места (bootlenecks): сетевая карта, буфер операционной системы, интерпретатор веб-страниц.

Здесь необходимо указать некоторые допущения и упрощения. Во-первых, считается, что все заявки идут из одной точки (фактически, это так, поскольку перед сервером находится один маршрутизатор, через который поступают пакеты протоколов). Во-вторых, не учитываем пропускную способность канала связи между маршрутизатором и сервером, тем самым допуская, что по ней может идти любое количество заявок. В-третьих, предполагается, что на последнем участке до сетевой карты сервера пакет протокола TCP/IP имеет минимальную величину (543 байта) и больше сегментироваться не будет. Заявки следовали по схеме, описание которой дано далее. В систему были введены параметры сервера, на котором предстояло разворачивать портал: сетевая карта 100 Мбит/с, процессор Pentium Xeon, 2 Гб оперативной памяти. Программное обеспечение: ОС Ubuntu Server, веб-сервер Apache 2.2, интерпретатор PHP 5.2. По модели, представленной на рис. 1, была построена имитационная модель в среде GPSS World.

Рис.1 Модель обработки заявок

Читайте также:  Как построить равносторонний пятиугольник

Блоки GPSS-модели копируют поведение блоков и устройств реального сервера. После моделирования небольшой нагрузки выяснилось, что сетевая карта не способна обработать исходящий трафик и заявки находятся в очереди операционной системы при стрессовой нагрузке более 5 минут, что недопустимо. Следует учесть, что исходящий трафик считается больше входящего, поскольку при обработке заявки разделены на три группы: заявки на загрузку страницы, за загрузку страницы из базы данных и загрузку файла. Соответственно объем возвращаемых данных изменялся. Заявки поступали из одного источника и распределялись по пунктам обработки случайным образом.

С этими допущениями моделируется нагрузка двух видов: стрессовая и нормальная. Под стрессовой нагрузкой в данном случае понимается поток заявок, следующий с минимальным интервалом времени, практически приближенным к нулю. Такой поток заявок поступает в систему в течение непродолжительного времени и довольно редко. При моделировании стрессовой нагрузки исследуется устойчивость сервера в экстремальных условиях, например, во время сезона продаж. Для стрессовой нагрузки предлагается генерация заявок с частотой в 1-2 миллисекунды в течение часа. Это вполне возможно, например, в сезон распродаж или каких-либо скидок.

Под нормальной нагрузкой подразумевается ежедневная нагрузка на сервер.

Устройство К-во входов Процент использования Среднее время пребывания Ожидающие транзакты
Вид нагрузки стресс норм с н с н с н
PHP 39803 216 26,5 1,998 1,987 599376
File 39131 210 91,4 7,006 6,886 600514
OutBuffer 29105846 156318 9,7 0,001 0,001 598632

Буфер сетевой карты не использовался, очередь операционной системы использовалась на 99,5% при стрессовой на нагрузке. Оба устройства не использовались при нормальной нагрузке.

По результатам обработки статистики можно сказать, что сервер справится со стрессовой нагрузкой. При сгенерированных 200019 заявках было полностью обработано 80000 (без учёта размера возвращаемых данных). То есть из 200019 пользователей, практически одновременно обратившихся к серверу, в течение часа ответ получат 80000, то есть 39%. При нормальной нагрузке будут обработаны все заявки и все пользователи получат ответ менее, чем за 5 минут. По результатам моделирования можно утверждать, что стрессовую нагрузку сервер выдержит, дальнейшее моделирование можно не проводить.

Читайте также:  Как вставить симку в верту

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

В перспективе есть возможность усовершенствования рассматриваемой модели, что и предполагается сделать для придания ей большей гибкости и наглядности. Так, например, необходимо учитывать нагрузку на оперативную память, количество обращений к жёсткому диску и особенности операционной системы. Такая задача будет решаться в ближайшее время, но уже с использованием системы AnyLogic, как более продвинутой по отношению к GPSS. Ну а пока предлагаю читателю, которого заинтересовала данная тематика, ознакомиться с кодами описанной модели, доступной для скачивания.

Сообщество, где люди делятся уникальным опытом

Вопросы и ответы по любой теме от IT сообщества

Помогаем строить карьеру в IT-индустрии

Биржа удаленной работы для IT-специалистов

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

При разработке/создании web-сайта, мобильного приложения, WEB-сервиса – иными словами Информационной системы (ИС) встает вопрос о требующих аппаратных ресурсах – количестве серверов (виртуальных машин).

Приведённая методика описывает расчет количества пользователей и «оборудования» для территории Российская федерация.

Исходные данные

  • Веб сайт «Визитка»;
  • WEB-сервис для мобильных приложений, работающий по протоколу http/https, взаимодействующий с Базой данных;
  • База данных SQL (NOSQL);
  • WEB-клиент – реализующий функционал мобильного приложения для web пользователей, также взаимодействующий с Базой данных.

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

Читайте также:  Как отключить в одноклассниках фотоконкурс

Пользователи – целевая аудитория процент от всех жителей России. Переменная величина регулируемая при расчете/моделировании.
Почасовая нагрузка распределяется следующим образом:

  • Пик с 8 часов локального времени нарастание до 70% в течении часа;
  • Снижение нагрузки до 18 часов до уровня 50%;
  • Снижение нагрузки до 22 часов до уровня 10%;
  • Снижение нагрузки до 00 часов до уровня 5% до утреннего пика.

Параметры суточного распределения – так же могут регулироваться при моделировании.

Приступим к расчету

Базовые показатели – численность населения, по данным Росстат «По данным Росстата «Численность населения Российской Федерации по муниципальным образованиям на 1 января 2012 года, тыс человек», отсюда и далее на Росстат. Нормализуем, убираем дубли и вхождения, добавляем к таблице часовой пояс в соответствии с ПП (постановлением правительства) № 725 от 31 августа 2011 г. или в WiKi – Часовые пояса России.

Результирующая таблица (здесь и далее рисунки из файла Excel – оригинальный файл доступен на GoogleDoc).

и далее – не будем загромождать статью.

Результатом данных распределения является Сводная таблица (Pivot table)

кстати, обратите внимание, неожиданный(по крайней мере для меня) результат – 101 миллион человек живет… по московскому времени.
Следующая, рабочая таблица (фрагмент)

Управление расчетом примерных численных показателей на 2 уровнях

  • Напрямую задаваемая численность пользователей Системы (при этом коэффициент наши пользователи 100%)
  • Численность целевой группы (к примеру 22 миллиона домохозяйств России) и процент их охвата в колонке «наши пользователи»

Для системы описанной в примере итоговый результат выглядит так:

Понятно что Система создана совсем простая как и профиль пользователя простейший – осуществляющим простые операции.
Так же нужно иметь в виду и уметь пользоваться при прогнозах аналитическими отчетами к примеру – ОТРАСЛЕВОЙ ДОКЛАД. Федеральное агентство по печати и массовым коммуникациям Интернет в России Состояние, тенденции и перспективы развития.
или
Мобильный интернет России.
Интересно было смоделировать расчетную модель на более сложном профиле пользователя и системе – улучшить методику.

Ссылка на основную публикацию
Adblock detector