Курс Лекций: Обеспечение Качества Программного Обеспечения
Лекция 7: Высоконагруженные системы и тестирование производительности
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
1. Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 7: Высоконагруженные системы и
тестирование производительности
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
2. Содержание лекции
1. Характеристики высоконагруженных систем
2. Метрики производительности
3. Танки в Лунапарке и другая техника
4. Основные принципы нагрузочного тестирования
5. Вопросы
3. Характеристики
высоконагруженных систем
• Времена отклика (Latency)
• Пропускная способность (Throughput)
• Емкость (Capacity)
• Надежность (Fault Tolerance)
• Устойчивость (Resiliency)
• Масштабируемость (Scalability)
• Управляемость (Operability)
http://www.ford.ru/SBE/Brochures/CarsBrochures/p=1204946495723
4. Времена отклика
97 us - среднее время отклика Turquoise MTF
300 us – Bloodhound SSC проезжает 10 см
1 ms - свет идет из Костромы в Москву
300 ms – мгновение ока
1 s – см. картинку про web
2 дня – Почта России
http://www.strangeloopnetworks.com/resources/infographics/why-luxury-websites-are-disappointing-chinese-consumers/acceptable-website-response-times/
http://en.wikipedia.org/wiki/Blink http://www.bloodhoundssc.com/project/car
5. Пропускная способность
и емкость
55k mps – рынки по торговле акциями
4.1m mps – OPRA данные по опционам
13m mps – пиковая нагрузка на Facebook
72m – YouTube одновременный просмотр свадьбы
1.2b – планируемое количество новогодних фото FB
100Pb – объем данных по сообщению FB в SEC
6. Пропускная способность
и емкость
55k mps – рынки по торговле акциями
4.1m mps – OPRA данные по опционам
13m mps – пиковая нагрузка на Facebook
72m – YouTube одновременный просмотр свадьбы
1.2b – планируемое количество новогодних фото FB
100Pb – объем данных по сообщению FB в SEC
6 Tb/s – средний объем скачивания порнографии
9. Надежность и устойчивость
Надежность – способность сохранять требуемые
характеристики
Устойчивость – способность восстановиться
Уроки Боевого крейсера «Галактика»
(Battlestar Galactica)
10. Надежность и устойчивость
Надежность – способность сохранять требуемые
характеристики
Устойчивость – способность восстановиться
http://en.battlestarwiki.org/wiki/Number_Eight
19. Принципы нагрузочного
тестирования
Больше всего обманывают до женитьбы,
после охоты и во время выборов
Наш вариант: Больше всего обманывают
до, после и во время нагрузочного
тестирования
20. HЕ ВЕРЬ
• Тестовым инструментам
• Что модель нагрузки правильная
• Средним значениям задержек
• Требованиям
• Оценкам разработчиков
• Ничему не верь
21. HЕ БОЙСЯ
• Сломать TEST-систему и вызвать у всех
раздражение
• Понять, что все тесты, которые ты запускал,
неправильные
• Перезапускать один и тот же тест много раз
• Игнорировать утверждение, что PROD-
система быстрее и TEST-результаты можно
экстраполировать
• Запускать тесты круглые сутки
22. HЕ БОЙСЯ
• Сломать TEST-систему и вызвать у всех
раздражение
• Понять, что все тесты, которые ты запускал,
неправильные
• Перезапускать один и тот же тест много раз
• Игнорировать утверждение, что PROD-
система быстрее и TEST-результаты можно
экстраполировать
• Запускать тесты круглые сутки
23. HЕ ПРОСИ
• Дать тебе тестовые инструменты
• Дать тебе подтверждение, что PROD-система
настроена так же, как и TEST
• Сказать тебе, до какого уровня доводить
нагрузку
• Выдать тебе сценарии нагрузки системы,
которая уже в эксплуатации
• Поддерживать систему, пока ты пускаешь
свои тесты
• Понять, что ты не виноват в возникших
проблемах
25. Вопросы и замечания?
http://www.highload.ru/
http://highscalability.com/
http://it-conf.ru/ru/sqadays_main/sqadays_10/sqa10_agenda/
Notas do Editor
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface
The reconciliation tool should meet the following requirements: Scalability Ability to process many transactions at a time Adaptability ( или Flexibility ) User friendly interface