Websoft

воскресенье, апреля 22, 2007

Производительность LMS

Позавчера имел счастье в очередной раз (наверное уже не менее в 100-й) отвечать на вопрос потенциального заказчика - "Какой нужен сервер для СДО на 1000 человек" (1000 можно заменить на 500 или 5000 - суть от этого не меняется).

Как правило в ответ следует мой уточняющий вопрос - 1000 человек, которые делают что?
Типичный ответ - "работают одновременно" (с чем и как работают, как правило не уточняется).

Затем терпеливо приходится объяснять, что в природе не бывает, что 1000 человек одновременно (т.е. например в течение 1 секунды) нажимают на кнопку "Открыть курс" или "Запустить тест" (если нажимают, то поверьте мне "умрет" почти любой сервер, даже очень мощный).

На практике нужно говорить о бизнес-требованиях, которые могут быть сформулированны так: "В течение 1 часа в систему входят (более или менее равномерно по времени) 1000 обучаемых, 50% которых открывает и проходит электронный учебный курс из 50 страниц, а остальные 50% сдают тест из 20 вопросов. При этом 100 из этих 1000 пользователей еще и просматривают по 5 аналитических отчетов". Заказчики зачастую затрудняются такие бизнес-требования сформулировать, а без них ответить на вопрос о требуемой производительности сервера и канала связи практически невозможно. Очевидно требования к производительности в этом случае будут сильно отличаться от такого бизнес-требования: "В течение 5 минут 1000 пользователей полностью проходит обучение по курсу из 50 экранов, открывает по 20 аналитических отчетов и заполняет по 5 оценочных форм" (к счастью последнее бизнес-требование имеет мало общего с реальностью). При этом в обоих случаях мы говорим о работе с системой 1000 пользователей, но по разному!

В случае если бизнес-требования сформулированы корректно, можно не просто умозрительно (на основе опыта) ответить на вопрос о необходимой конфигурации, но и провести нагрузочные испытания с использованием специального софта. Результатом таких испытаний может быть ответ в следующей форме - на таком-то сервере бизнес-требования удовлетворяются (не удовлетворяются) с такой-то загрузкой, процессора, сети, оперативной памяти и определенным количеством ошибок (т.е. когда пользователь вместо экрана курса получает код ошибки), а также развернутые отчеты о результатах тестирования (см. пример фрагмента отчета на картинке). Например, после проведения для одного банка испытаний системы дистанционного обучения WebTutor на успешное завершение 5000 тестовых сессий за 45 минут мы ответили, что на машине DELL PowerEdge 1850 (2 x Intel Xeon 2.8GHz HT, RAM 2GB, 2 x HDD UWSCSI-320) это возможно со средней 90% загрузкой поцессора и 0.3% ошибок.



Пример отчета о реальных испытаниях можно посмотреть здесь и здесь.

Комментариев нет: