IATE Lecture 3: Quality Assurance for Highload Systems

Preview:

DESCRIPTION

 

Citation preview

Обеспечение качества высоконагруженных систем:критические неисправности

Иосиф Иткин, Exactpro Systems3 декабря 2013

Введение

Иосиф Иткин, Exactpro Systems с 2009 годаОфис в Обнинске - ул. Красных Зорь - 19 человек / 210 всего Создание и применение инструментов для проверки высоконагруженных трейдинговых системhttp://www.slideshare.net/IosifItkinhttp://exactpro.com http://tmpaconf.orghttp://its-trading.ruhttps://vk.com/clubqahttp://linkedin.com/in/iosifitkin

Содержание лекции

1. Принцип Рида Хоффмана2. Арифметические ошибки и толстые пальцы3. Тахионы и ракеты4. Ситуация гонок и Deadlocks5. Операционные проблемы6. Разное

Принцип Рида Хоффмана

Кто такой Рид Хоффман?

Принцип Рида Хоффмана

Что такое LinkedIn?

Принцип Рида Хоффмана

http://reidhoffman.org/linkedin-pitch-to-greylock/

Принципы тестирования

Тестирование показывает наличие дефектовИсчерпывающее тестирование невозможноРаннее тестированиеКластеризация дефектовПарадокс пестицидаТестирование зависит от контекстаОбманчивость отсутствия ошибок

Принципы тестирования

Три вида воздействия

USS Yorktown

21 сентября 1997 годаCG-47 Aegis пилотная версия «Умного корабля»Отказ всех систем, включая двигатели, на 2,5 часаНеправильные данные введены в Remote Data Base ManagerПривели к переполнению базы данных и отключению LAN, включая все терминалы

USS Yorktown

21 сентября 1997 годаCG-47 Aegis пилотная версия «Умного Корабля»Отказ всех систем, включая двигатели, на 2,5 часаНеправильные данные введены в Remote Data Base ManagerПривели к переполнению базы данных и отключению LAN, включая все терминалыОшибка – деление на ноль

Mizuho Securities

12 октября 2005 годаПопытка продать 1 акцию J-Com за 610,000 йен ($5,041)Ошибочно перепутаны объем и ценаНе сработали риск-системы:a)Mizuno Securitiesb)Токийской биржиПотери оцениваются в $225 млн.

Ошибка такого вида называется Fat Finger

Ariane 5 Type Conversion

4 июня 1996 годаПервый полет ракеты Ariane 5Отклонение курса и разрушение через 40 секунд после стартаАвтоматический подрыв на высоте 3700 мПреобразование 64-битного числа в 16 битОшибка invalid operand на языке AdaПО совпадала с предыдущей версией Ariane 4Но горизонтальная скорость существенно вышеТестирование проводилось на симуляторе без использования самой SRIОшибку воспроизвели на тестах

Patriot Software

25 февраля 1991 года, Дахран, Саудовская АравияБатарея Патриот не стала сбивать ракету ScudПопадание в казарму привело к гибели 28 человекОколо 97 человек получили раненияРасследование обнаружило ошибку в ПО

Patriot Software

Для хранения времени использовалось 24 битаЗначение 0.1 секунд в бинарном виде:

0.0001100110011001100110011001100.... (1/24+1/25+1/28+1/29+1/212+1/213+...)

Ошибка округления0.0001100110011001100110011001100....или 0.000000095

Предполагалось, что комплекс будет работать короткое время. Систему не перегружали 100 часов0.000000095×100×60×60×10=0.34 секундыСкорость Scud 1,673 метра в секунду -> ошибка 568 метров

Patriot Software

Patriot Software

Patriot Software

Patriot Software

25 февраля 1991 года, Дахран, Саудовская АравияСообщение об ошибке 11 февраляОтвет – «это не баг, а фича»Workaround рестартовать каждые 8 часовРестарт 60 – 90 секундИсправление готово 16 февраляДоставка обновлений в Дахран

26 февраля

Измерение времен отклика

North American Blackout

14 августа 2003 года, США и КанадаКаскадное отключение электричестваСитуация гонок привела к переполнению буфера и отключению системы уведомленийСброс 4% нагрузки мог бы предотвратить потери порядка $10b

Ситуация Гонок

http://en.wikipedia.org/wiki/Race_condition

Therac-25

Therac-25 — аппарат лучевой терапии, запущенный в 1982 гЭтот аппарат был причиной как минимум шести передозировокДве - со смертельнымисходом

Therac-25

Одна и та же переменная применялась как для анализа введённых чисел, так и для определения положения поворотного круга, поэтому при быстром вводе Therac мог иметь дело с неправильным положением поворотного круга (так называемое состояние гонки).

Настройка положения отклоняющих магнитов занимает около 8 секунд. Если за это время параметры типа и мощности излучения были изменены, а курсор установлен на финальную позицию, то система не обнаруживала изменений.

Therac-25

Деление на величину излучения, приводящее в некоторых случаях к ошибке деления на ноль и к соответствующему увеличению величины облучения до максимально возможной.Установка булевской переменной (однобайтовой) в значение «истина» производилось командой «x=x+1». Поэтому с вероятностью 1/256 при нажатии кнопки «Set» программа могла не пропустить информацию о некорректном положении диска.Кроме этих явных ошибок было замечено множество потенциальных — например, в многозадачной операционной системе не было никакой синхронизации

Deadlock

Ситуация

Knight Capital

1 августа 2012 года, СШАKnight Capital – одна из наиболее успешных HFT-компанийИзменения в связи с Retail Liquidity Program в NYSEСистем SMARS – высокоскоростной рутер заявокКоличество родительских заявок – 212Количество дочерних заявок – миллионыПотери – $460 млн. или $170 тыс/секОтсутствие механизмов контроля и мониторинга рисков в SMARSВ основе изменений - старая функциональность – PowerPegРазвертывание изменений на 7 серверов

Knight Capital

1 августа 2012 года, СШАKnight Capital – одна из наиболее успешных HFT компанийИзменения в связи с Retail Liquidity Program в NYSEСистем SMARS – высокоскоростной рутер заявокВ основе изменений - старая функциональность – PowerPegКоличество родительских заявок – 212Количество дочерних заявок – миллионыПотери – $460 млн. или $170 тыс. в секундуОтсутствие механизмов контроля и мониторинга рисков в самой системе SMARSРазвертывание изменений на 7 серверовВсего серверов было 8…

Спасибо!

Источники информации:https://www.google.ru/?q=worst+software+bugs#newwindow=1&q=worst+software+bugs

Например:http://listverse.com/2012/12/24/10-seriously-epic-computer-software-bugs/http://www.net-security.org/secworld.php?id=10354http://www.wired.com/software/coolapps/news/2005/11/69355http://www.pcworld.com/article/205318/11_infamous_software_bugs.htmlhttp://www.intertech.com/Blog/15-worst-computer-software-blunders/

Ошибки, не относящиеся к ПО:Black Monday 1987, Flash Crash 2010, No 4 in SQS 2010 List