Как конвертировать одновременных пользователей в хиты в секунду? - PullRequest
2 голосов
/ 20 февраля 2011

SRS для системы, над которой я сейчас работаю, включает следующее нефункциональное требование: «SuD должен быть масштабируемым до 200 одновременно работающих пользователей». Как я могу преобразовать это утверждение в более измеримую характеристику: «число ударов в секунду»?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2011

Предполагая, что вы говорите о веб-приложении (исходя из вашего желания оценивать «попадания» в секунду), вы должны выработать ряд предположений. - Как долго пользователь будет проводить между взаимодействиями? Для типичных страниц контента это может быть 10 секунд; для интерактивных веб-приложений, возможно, только 5 секунд. - Разделите количество пользователей на «время обдумывания», чтобы получать хиты в секунду - 200 одновременных пользователей с временем обдумывания 10 секунд дают в среднем 20 одновременных пользователей. - Затем умножьте на «пиковый множитель» - большинство веб-сайтов относительно тихие ночью, но очень заняты около 7 вечера. Таким образом, ваше среднее число должно учитывать это - как правило, я рекомендую пик от 4 до 10 раз. Это дает вам пиковые запросы страниц в секунду - это обычно является ограничивающим фактором для веб-приложений (хотя далеко не всегда - например, потоковое видео часто ограничено пропускной способностью). Если вы действительно хотите знать «хиты», вам нужно проработать следующее: - Сколько активов на вашей странице? Изображения, таблицы стилей, файлы javascript и т. Д. - «попадание» обычно относится к любому виду запроса, а не только к странице HTML (или ASPX, или PHP, или как угодно). Большинство современных веб-приложений включают в себя десятки ресурсов. - Насколько кэшируются ваши страницы и / или ресурсы? Большинство изображений, CSS, JS-файлы и т. Д. Должны быть установлены в кешируемое браузером.

Умножьте запросы страницы на количество не кешируемых ресурсов. Добавьте к этому количество посетителей, умноженное на количество активов, если вы хотите быть очень точным.

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

3 голосов
/ 20 февраля 2011

Ну, на это невозможно ответить, не зная ничего о вашем приложении или о том, что оно делает. Вам необходимо выяснить, сколько хитов в секунду может совершить один пользователь при использовании приложения, и умножить на 200.

Кстати, количество ударов в секунду - это не единственный показатель, который вам нужен. С 200 одновременными пользователями, сколько это будет накладных расходов памяти? Сколько доступа к диску или файловых дескрипторов? Сколько дБ читает / пишет? Какова пропускная способность (включает ли приложение потоковое мультимедиа)? Может ли все это обрабатываться одной машиной? и т. д.

...