Нагрузочное тестирование систем, где отказ в обслуживании крайне нежелателен либо вообще недопустим, является очень узкой, нетиповой и трудоемкой задачей, где перестают работать сотни существующих методических рекомендаций, а множество готовых (а часто платных и весьма дорогостоящих) инструментов, несмотря на заявленные возможности, становятся вдруг беспомощными. Готовых универсальных методик, планов и главное инструментов для таких задач нет, и не может быть в принципе, однако, существует ряд общих проблем, которые возникают при решении таких задач всегда.
Условно их можно разделить на два больших вопроса:В поисках ответа на данные вопросы мы проведем сравнение моделей реализации сетевой многозадачности (в контексте нагрузочного тестирования), подходов к обработке результатов и их практической эффективности, основываясь преимущественно на собственной практике, опыте и понимании данного вопроса.
Доклад заинтересует специалистов, которые регулярно сталкиваются с необходимостью решать нетривиальные проблемы высоконагруженных сервисов со сложной программной логикой. Прежде всего, специалистов по тестированию, а также разработчиков, которым интересны способы моделирования очень высокой нагрузки и локализации проблем. Моделирование ситуаций реального использования таких систем особенно сложный процесс, однако, даже относительно синтетические способы моделирования могут дать много полезной информации, которая поможет оценить реальные возможности сервисов.
Вопросы, рассматриваемые в докладе, всегда актуальны при тестировании крупных баннерных сетей, крупных счетчиков посещаемости сайтов (такие системы всегда очень нагружены и всегда имеют проблемы со скоростью работы), серверов обмена различными данными (текст, файлы, потоки вещания), любых других систем с распределенной архитектурой и большими объемами передаваемых данных.
Александр Комлев, ведущий специалист отдела тестирования в Rambler.
Контакты: a.komlev@rambler-co.ru, ICQ: 285211165