Имитационное моделирование работы веб-сервера и базы данных при посещении сайта пользователем в среде GPSS World
Автор: Васильков А.В.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 1 (127), 2026 года.
Бесплатный доступ
В статье описана разработанная дискретно-событийная модель работы веб-сервера и базы данных, реализованная в GPSS World, с учетом сетевых задержек, выбора пользователя и вероятности попадания в кэш. Модель позволяет исследовать сложные технические системы при различных сценариях в процессе их проектирования и функционирования.
Имитационное моделирование, веб-серверы, базы данных
Короткий адрес: https://sciup.org/140315230
IDR: 140315230 | УДК: 004.94
Simulation modeling of web server and database operation during a user’s website visit in GPSS World
In the article, a discrete-event model of web server and database operation is presented. The model was implemented in GPSS World and takes into account network delays, user choice, and the probability of a cache hit. The model makes it possible to study complex technical systems under various scenarios during their design and operation.
Текст научной статьи Имитационное моделирование работы веб-сервера и базы данных при посещении сайта пользователем в среде GPSS World
В современных условиях растёт нагрузка на веб-сервисы и необходимо заранее оценивать производительность связки «веб-сервер – база данных». Имитационное моделирование в среде GPSS World позволяет безопасно и сравнительно быстро проверять разные сценарии и выявлять «узкие места» в обслуживании запросов без вмешательства в реальную систему [1-2]. Это снижает риски неверных архитектурных решений и помогает обосновать меры по оптимизации ресурсов.
В статье описана разработанная в GPSS/World модель, симулирующая работу веб-серверов и серверов базы данных с посетителями разрабатываемого сайта «Деловой профиль страны».
Модель предполагает, что пользователи будут приходить на сайт каждую секунду, а задержка отправки и получения данных на сервер составляет примерно 50 миллисекунд. После того, как пользователь зашёл на сайт, серверу надо предоставить ему доступ. Для этого пользователь помещается в очередь, которую он покидает после того, как веб-сервер предоставляет ему доступ к сайту (обычно это занимает 30 миллисекунд). Далее пользователь выбирает страну и раздел в среднем 6 сек. Затем в зависимости от того, был ли этот запрос закэширован или нет, происходит ветвление: с вероятностью в 60% отчёт уже был сгенерирован, и тогда стоит просто его предоставить пользователю. Если отчёт не был найден в кэше, то сначала пользователь попадает в очередь к серверу базы данных, и выходит из него, когда информация была найдена (поиск составляет 100 миллисекунд). В конце генерируется отчёт и отправляется пользователю.
На рисунке 1 представлен результат симуляции модели после обслуживания 100 пользователей.
|
LABEL |
LOC |
BLOCK TYPE |
ENTRY COUNT CURRENT COUNT RETRY |
|
1 |
GENERATE |
107 0 0 |
|
|
2 |
ADVANCE |
107 0 0 |
|
|
3 |
QUEUE |
107 0 0 |
|
|
4 |
ENTER |
107 0 0 |
|
|
5 |
DEPART |
107 0 0 |
|
|
€ |
ADVANCE |
107 0 0 |
|
|
7 |
LEAVE |
107 0 0 |
|
|
8 |
ADVANCE |
107 0 0 |
|
|
9 |
ADVANCE |
107 7 0 |
|
|
10 |
ADVANCE |
100 0 0 |
|
|
11 |
TRANSFER |
100 0 0 |
|
|
DB_WORK |
12 |
QUEUE |
35 0 0 |
|
13 |
ENTER |
35 0 0 |
|
|
14 |
DEPART |
35 0 0 |
|
|
15 |
ADVANCE |
35 0 0 |
|
|
1€ |
LEAVE |
35 0 0 |
|
|
17 |
ADVANCE |
35 0 0 |
|
|
18 |
TRANSFER |
35 0 0 |
|
|
CACHE_HIT |
19 |
ADVANCE |
65 0 0 |
|
20 |
TRANSFER |
65 0 0 |
|
|
AFTER_LOOKUP |
21 |
ADVANCE |
100 0 0 |
|
22 |
TERMINATE |
100 0 0 |
|
|
QUEUE |
MAX |
CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-O) RETRY |
|
|
Q_SITE |
1 |
0 107 |
107 0.000 0.000 0.000 0 |
|
Q_DB |
1 |
0 35 |
35 0.000 0.000 0.000 0 |
|
STORAGE |
CAP. |
REM. MIN. MAX. |
, ENTRIES AVL. AVE.C. UTIL. RETRY DELAY |
|
WEB_SERVERS |
1 |
10 1 |
107 1 0.032 0.032 0 0 |
|
DB-SERVERS |
1 |
10 1 |
35 1 0.035 0.035 0 0 |
Рисунок 1 – Результат симуляции модели на 100 пользователей
Исходя из анализа полученного статистического отчёта, 35 пользователям были доставлены «свежие» отчёты, а 65 – закэшированные. В очередях серверов никто не находился, это следует из столбцов AVE.TIME (среднее время) и AVE.CONT (среднее количество занятых каналов). Процент использования устройства веб-сервера равен 0.032%, а сервера базы данных – 0.035%. При этом 7 пользователей ещё находились в процессе выбора страны и раздела [3].
Предположим, что сайт стал ещё популярнее, и пользователи стали заходить примерно каждые 0.25 секунды. На рисунке 2 представлен результат симуляции модели после обслуживания 150 пользователей.
|
QUEUE |
MAX CONT. |
ENTRY ENTRY(0) |
AVE.CONT. |
AVE.TIME |
AVE.(-0) |
RETRY |
|
Q_SITE |
1 0 |
174 174 |
0.000 |
0.000 |
0.000 |
0 |
|
Q_DB |
1 0 |
63 52 |
0.013 |
0.009 |
0.053 |
0 |
|
STORAGE |
CAP. |
REM. |
MIN. |
MAX. |
ENTRIES AVL. |
AVE.C. |
UTIL. |
RETRY DELAY |
|
WEB_SERVERS |
1 |
1 |
0 |
1 |
174 1 |
0.115 |
0.115 |
0 0 |
|
DB SERVERS |
1 |
1 |
0 |
1 |
63 1 |
0.140 |
0.140 |
0 0 |
Рисунок 2 – Результат симуляции модели на 150 пользователей
Из этого отчёта следует, что 63 пользователям были доставлены «свежие» отчёты, а 87 – закэшированные. В очереди для веб-сервера никто не находился, а в очереди для сервера базы данных пользователи задерживались, но находились они там недолго (среднее время нахождения – 9 миллисекунд). Процент использования устройства веб-сервера равен 0.115%, а сервера базы данных – 0.140%, использование обоих устройств повысилось в 4 раза.
Из описанных выше данных можно утверждать, что система выдержала увеличение нагрузки в 4 раза.
Таким образом, в статье описана разработанная и реализованная в среде GPSS World дискретно-событийная имитационная модель процесса посещения сайта пользователем, включающая этапы обслуживания на вебсервере и обращение к базе данных с учетом сетевых задержек и очередей. Также были выполнены прогоны модели для заданной нагрузки и получены показатели времени обслуживания и пребывания заявок в системе, что позволило оценить влияние кэширования и ограниченных ресурсов серверов на общую производительность.