Чи є можливість перевірити, як буде працювати сайт під навантаженням


9

Я створив веб-сайт Asp.net MVC і розмістив його на спільному хостинг-провайдері. Оскільки мій веб-сайт оточує дуже загальну ідею, він може мати кількість одночасних користувачів колись у майбутньому.

Отже, я думав про спосіб перевірити свій веб-сайт на ефективність завантаження. Наприклад, як буде працювати сайт, коли 100 або 1000 користувачів одночасно в Інтернеті та переглядають веб-сайт. Це також дасть мені зрозуміти, чи добре написані мої запити LINQ чи ні.

Відповіді:


12

Перш за все, правильний термін - стрес-тест . Існує досить багато рішень для стрес-тестів на веб-сайті, одне розміщене рішення я рекомендую - loadimpact . Що вони роблять, це бомбардувати ваш сайт запитами різних серверів по всьому світу та надавати аналітичний звіт про те, як ваш сайт справлявся зі стресом. У них є безкоштовний тест, де ви можете отримати загальне уявлення, але за більше вам доведеться заплатити абонентську плату.

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

І, нарешті, як і будь-який веб-розробник, який усвідомлює ефективність, вам слід поглянути на YSlow :

YSlow аналізує ефективність веб-сторінки, вивчаючи всі компоненти на сторінці, включаючи компоненти, динамічно створені за допомогою JavaScript. Він вимірює ефективність сторінки та пропонує пропозиції щодо вдосконалення.

YSlow for Firefox інтегрований у інструмент веб-розробки Firebug для Firefox.

Найчастіше я вважаю, що Javascript є фактичним вузьким місцем, а не зворотним кінцевим кодом або базою даних. Звичайно, погано написані запити можуть бути головним покаранням за ефективність, але після того, як ви вирішите це, завжди запустіть YSlow та дотримуйтесь його пропозицій, це рятує життя.

Подальше читання:

звичайно, на StackOverflow!


Вивчіть інші рішення, перш ніж ви платите за підписку loadimpact, звичайно. Існує досить багато подібних рішень. Мені це подобається, але за роботу
платили

Я буду використовувати безкоштовний тест .... зараз не хочу жорсткого тестування, оскільки наразі це не має сенсу .... просто хочу отримати ідею :-)
Панкай Упадхей

7

Ви перебуваєте на спільному хостингу, тому навряд чи ви зможете запустити будь-які тести, які належним чином свідчать про ефективність, оскільки немає гарантії рівня ресурсів, до якого ваша програма матиме доступ будь-коли.

Однак, що я б робив у цій ситуації, це почати з тестування ізольовано на спеціальній коробці (це може бути ваш власний ноутбук); використовувати такий інструмент, як набір Visual Studio Load Test, або JMeter (який я особисто не витримую), і створити набір тестів, які представляють типовий шлях у вашій програмі (ви повинні мати можливість отримати інформацію про типовий шлях через використання Google Analytics. Якщо такої можливості немає, ви можете просто скористатися тією, яку ви вважаєте вірогідною, але пам’ятайте, що це не буде настільки точним базовим рівнем). Потім зробіть тест на збільшення, почніть з 1 користувача, а потім повільно додайте користувачів, поки ви не досягнете прогнозованого пікового навантаження. Це повинно показати вам, наскільки добре ваша система підтримує в цілому (я особисто хотів би трохи пізніше, щоб переконатися, що у мене є певний запас).

Остаточне, що ви хочете зробити, - це запустити інструмент профілювання, як-то профайлер продуктивності ANTS під час запуску тесту (майте на увазі, що це додає певних накладних витрат). Це дозволить визначити тривалі запити та методи, даючи вам покажчики того, де ваша програма насправді повільна (одна порада: майже ніколи насправді там, де ви думаєте, що буде).

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


дякую за те, що кинули світло на різницю між тестуванням спільного хостингу та власним сервером.
Pankaj Upadhyay

3

Ви можете заглянути в такі інструменти, як JMeter або The Grinder .

Я використовував тільки JMeter до цих пір, це графічний інструмент, який дозволяє будувати тестові плани досить легко. Ви можете імітувати декількох користувачів з декількома потоками. Ви також можете записати типові звички вашого сайту, зв’язавши веб-переглядач із проксі-сервером JMeter та виконавши фактичну роботу, тому не потрібно писати запити з нуля самостійно. Grinder базується на сценаріях, якщо я пам'ятаю правильно, це також може бути корисним.


1

Мені також подобається Loadimpact для стрес-тестування. Одне, що я, як правило, використовую для швидких перевірок на своєму сайті, - це лавка Apache. Коли я захочу пройти кілька останніх тестів, я погляну на платну послугу.

Моя робота також інвестувала в WebLoads, що дуже дорого, але дозволяє нам протестувати всі наші сайти внутрішньо. Я не рекомендую, хоча.


0

Я не думаю, що тестування навантаження можна проводити вручну, оскільки це забиратиме більше часу, ніж очікувалося, і буде копіткою справою. Ви, ймовірно, можете скористатися програмою Load Runner, яка може працювати для багатьох користувачів.


0

Сценарій автоматичної клавіші (AHK) може імітувати користувача. Нехай він працює весь день.

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

Хоча я не знайомий з можливостями різьблення AHK, тому імітувати тисячі користувачів може бути складно. Вас може зв'язати кількість комп'ютерів у вас.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.