Имитационное моделирование работы веб-сервера и базы данных при посещении сайта пользователем в среде 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 дискретно-событийная имитационная модель процесса посещения сайта пользователем, включающая этапы обслуживания на вебсервере и обращение к базе данных с учетом сетевых задержек и очередей. Также были выполнены прогоны модели для заданной нагрузки и получены показатели времени обслуживания и пребывания заявок в системе, что позволило оценить влияние кэширования и ограниченных ресурсов серверов на общую производительность.