Розрахунок та моделювання навантаження на веб-сервер - Інтелект вашого бізнесу – Інреко ЛАН

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

Це завдання постало переді мною, коли потрібно було оцінити існуючий сервер для впровадження веб-порталу, написаного мовою 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 мілісекунди протягом години. Це цілком можливо, наприклад, у сезон розпродажів або знижок.

Під нормальним навантаженням мається на увазі щоденне навантаження на сервер.