20 октября 2010 в 18:32

Лондонская биржа поставила европейский рекорд по скорости транзакций

После перехода на Linux Лондонская фондовая биржа во время первых же тестов поставила новый европейский рекорд по скорости выполнения транзакций (latency).

Новая торговая платформа MillenniumIT (Linux, Sun Solaris Unix, БД Oracle) позволила сократить среднюю задержку обработки транзакций до 126 микросекунд, в то время как у основных европейских конкурентов LSE этот показатель гораздо выше. Например, на биржах BATS Europe и Chi-X он составляет 250 и 175 мкс, соответственно. У других бирж доходит до 300 или 400 мкс.

Раньше, когда система работала под Microsoft .Net, Лондонская биржа постоянно подвергалась критике за низкую скорость и надёжность, а задержка транзакций доходила до сотен микросекунд. Впрочем, это не мешало Microsoft в рекламных целях постоянно указывать LSE в качестве клиента, который использует платформу .Net для «критических финансовых приложений».

Теперь, при средней задержке 126 мкс 99% транзакций укладываются в 210 мкс, а 99,9% — в 400 мкс.

Правда, о мировом рекорде LSE говорить не приходится, потому что показатели NYSE по скорости выше: средняя задержка 98 мкс, 99% транзакций — 144 мкс, 99,9% транзакций — 298 мкс. А мировой рекорд принадлежит Сингапурской бирже (менее 90 мкс).
Анатолий Ализар @alizar
карма
669,3
рейтинг 750,2
Редактор
Похожие публикации
Самое читаемое

Комментарии (91)

  • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    я немного не понимаю, что за транзакции такие за 100 мкс? через интернет, или локальные?
    • 0
      Да хотя бы внутренний разчёт всех инструментов относительно и зависимо друг друга, от поступающих торговых заявок и прочих факторов. Почему нет?
  • –4
    При чем тут Линукс? За задержки виновато ПО, а не ОС.
    • +33
      Платформа тоже играет далеко не последнюю скрипку.
      • –3
        Но не решающую.
        • +1
          Да, но, например, оракл по умолчанию будет работать быстрее на солярисе, потому что он активно использует яву, а Solaris как раз и существует для систем, тесно связанных с Java.
          • 0
            При чем тут база данных Оракл и Ява?
            • +2
              1998 год — выпущена версия Oracle 8i Release 1 (8.1.5), «i» в названии обозначает «Internet», символизируя поддержку Интернета. Начиная с Oracle 8.1.5 — появляется встроенная в СУБД виртуальная машина Java (JVM). На Java написаны клиентские утилиты, инсталлятор, средства администрирования.

              ©
              • +5
                Вы сами себе перечите.
                На яве написаны утилиты, инсталлятор и средства администрирования. Но сама база написана на С. Да, с 8-й версией в базу встроена машина Java для написания процедур на этом языке. Но все это (Java) никак со скоростью обработки транзакций не связано.
          • +3
            чушь написали
            оракл так быстро они фиг разгонят
            в таких системах база летит на отдельной машине — т.е. им ничто не мешало и раньше юзать оракл на соляре с остальным кодом на .net под виндой (может так и делали я не в курсе)
            и пишется в базу отдельным процессом,
            т.е. в указанные цифры мкс оракл не входит

            ну а про джаву и говорить нечего
            это из серии слышишь звон а не знаешь где он
            на джаве в оракле только уи/гуи написаны, или вы думаете что за эти микросекунды руками через гуй даныне в оракл вбивают? :)
          • +2
            Хм, а не подскажете, Netbeans на Solaris будет быстрее работать, чем скажем на убунте?
    • +35
      Майкрософт же зачем-то хвастался тем, что LSE работает на Windows, почему линуксоидам нельзя?
      ПО, кстати, тоже было от MS:
      «Новая система Infolect®, в которой используются среда Microsoft® .NET в Windows Server® 2003 и база данных Microsoft SQL Server™ 2000, отличается высокой производительностью, доступностью и гибкостью.»
    • +28
      Чем вам ОС не ПО?
    • +5
      Я полтора года измерял с микросекундометром подобные системы. Там часто более 1 компа, и обычный ethernet, tcp/ip. (хотя бывает и infiniband, и ip offload).

      Если в этом конкретном случае там ethernet/ip, то 5-10 микросекунд пакетик проведет в ОС, на каждой из машин, его обрабатывающих. * кол-во машин (например, 4) — получится уже до 40 мсек из 90 пакетик обрабатывается потрохами линукса. Остальное время легко съедят очереди в user mode.
  • +13
    >>>Теперь, при средней задержке 126 мкс 99% транзакций выполняются за 210 мкс, а 99,9% — за 400 мкс.
    Я завис.
    • 0
      Количество транзакций, укладывающихся в 126мкс, состовляет 99% от числа всех транзакций. Ну и так далее.
      • 0
        Написано совсем другое, да и «так далее» тоже не получается. Трудности перевода?
        • +8
          Я лох. Средняя задержка 126, а 99% укладывается в 210мкс.
          • –17
            странная у них математика. На вскидку тогда оставшийся процент около 1 мкс? Тут желтизной не то что попахивает, тут воняет желтым.
            • +6
              99% выполняются не дольш 210 мкс.
            • +1
              Не совсем, время выполнения транзакции > время задержки, ни чем здесь не пахнет
            • –3
              Alizar: «Поставляем „желтуху“ на Хабр с 2009 года.»
        • +4
          Среднее = (x1 + x2 + x3 +...+ xn) / n
          При этом если скорость всех x будет поочередно то 246мкс то 6мкс — то среднее в итоге выйдет 126мкс, однако-же 50% перейдут планку 240мкс, и специально чтобы показать что таких перегибов в системе нет — указано что 99% x попадают в пределы 210мкс, а 99,9% в 400мкс.
    • +1
      > Прежде LSE прилагало все усилия, чтобы снизить время обработки в TradElect хотя бы ниже 2000 мкс, что все равно очень медленно по сравнению с конкурентами LSB, например, компанией Chi-X, которая использует основанную на Linux систему MarketPrizm с временем обработки 400 мкс.

      www.linux.org.ru/news/linux-general/5440913
      www.computerworlduk.com/news/it-business/3243905/london-stock-exchange-completes-first-live-linux-test/

      было 2 миллисекунды, стало 400 микросекунд.
    • +27
      > Я завис.

      Понятно же всё:

      Распределение транзакций по времени задержки
      >>>Теперь, при средней задержке 126 мкс 99% транзакций выполняются за 210 мкс, а 99,9% — за 400 мкс.
      • +1
        Почему вы решили что распределение нормально?
        • +16
          Оно скорее всего не нормальное, нарисовал просто схематично такое, чтобы пояснить графически.
          По той же причине схематичности и неточночти и к пропорциям не стоит придираться.
        • –1
          Почему вы решили что это график нормального распределения?)
          • +3
            похож
      • –1
        Нет, не правильно :) Очевидно, же там речь шла об 99-й квантили. Если бы распределение было нормальным, то откладывать нужно было бы от мат. ожидания по 0,5 процентов влево и вправо.

        Но так как не факт, что распределение нормальное, то достаточно взять все измерения продолжительности транзакций, отсортировать по возрастанию и сказать, что первые 99% выполняются не более чем за 210, т.к. в этот промежуток попадут все значения от нуля до точки 210.
    • 0
      время выполнения и задержку выполнения различайте.
  • +7
    Биржа на .Net? о_о
    • –11
      была, и плохо что перестала: Р
      • +8
        Я думал все поголовно считают .Net не подходящей для критических систем.
        Узнать бы какие ещё критические системы есть на .net =)
        • +6
          Что-то я бы предпочел не знать — спаться будет лучше :)) Хотя подозреваю не так много, а то мы непременно узнали бы о них в «Get the facts» от MS.
        • 0
          каковы у вас критерии «критичности» систем?

          если скорость — то LSE она раньше не особо важна была
          есть надо чтобы меньше падала, то мне кажется что на си или с++ корок будет побольше…
        • +5
          В хабре большая часть холивара начинается со слов вроде «Я думал все поголовно считают».

          Т.е. собственных знаний нет, но слышал, что одна бабка сказала, что ей тетка передала, что лучше вот так.

          На .Net крутятся системы для медицинских учреждений, банковские системы, CAD, ERP, SCADA и целые комплексы по автоматизации заводов.

          .Net отлично используется теми, кто разбирается в теме. Те участки, в которых нужны микросекунды пишутся на С++, благо архитектура фреймворка спроектирована так, что позволяет нормально использовать managed и unmanaged код в одной связке.

          Да и честно говоря, не ради .Net начал писать комментарий.
          Просто очередное «мне говорили, что все считают», «я читал, что все думают» вызвало порыв попытаться сделать хабр лучше.

          А именно:
          Если хотите быть честным перед собой, если хотите быть человеком, который способен отвечать за свои слова, то попробуйте для начала изучить предмет обсуждения перед тем, как вступать в него.
      • +8
        видно, хорошо, что перестала
  • +3
    У меня пинги между серверами МИЛИсекунды, а тут транзакция МИКРО? Поясните не биржевикам как это вообще все происходит)
    • 0
      Если говорить ОЧЕНЬ просто, то это набор sql-запросов.
      • 0
        Т.е в статье идёт разговор только о запросах к базе(ам) данных?
        • +2
          По сути да.
          Но запросы там были не такие, которые выполняют обычные сайты при работе с базой.
          Транзакция включает в себя несколько sql-запросов, с использованием хранимых процедур и прочих наборов инструментов серьезных реляционных БД.
          • 0
            Но почему тогда ни слова о самой базе данных?
            Да и как-то у Микрософта на .Net я могу вспомнить только ADO.NET, что само по себе ни в коем случае не может использоваться в столь критических системах.
            • +3
              С дотнетом скорее всего использовалась MSSQL.
              А в новой системе функционирует Oracle.
              • 0
                Если вы конечно знаете, можно по подробнее о системе, или же ссылку на данную информацию.
                • 0
                  Я взял информацию из ссылки в статье.
            • 0
              Оракл там.
              • 0
                Да, спасибо.
                The Millennium Exchange system, based around Linux and Sun Solaris Unix, and using Oracle databases, will replace the Microsoft.Net-basedTradElect platform
            • 0
              «Да и как-то у Микрософта на .Net я могу вспомнить только ADO.NET, что само по себе ни в коем случае не может использоваться в столь критических системах.»

              Вы понимаете, что ADO.Net напрямую к написанию Sql запросов отношения не имеет?!
              Что вывод о критичности не имеет под собой оснований?

              Кстати, ADO.Net отлично работает и с Oracle БД.
          • 0
            откуда эта информация?
            причем тут вообще база данных?
            да, она используется, но по-вашему получается что все расчеты в ней делаются
            попахивает бредом
      • 0
        причем тут вообще SQL?

        время у них считается;
        приход ордера на биржу
        нахождение с какими другими ордерами он может сторговаться
        отправка назад результата

        сеть они не считают
        • +3
          Странно. А вот тут измеряют по-другому
          www.nasdaqtrader.com/trader.aspx?id=inet

          OUCH Measurements of Order Latency
          The time it takes to accept, process, and acknowledge or fill an order.
          Measured as the complete round trip for an order or cancel transaction leaving a customer network port, through the co-lo network and application firewalls to the matching engine and back.

          Measured in the production environment during a full trading day including opening and close.

          А вообще меня всегда удивляла такая фаллометрия.
          Я понимаю, что для HFT систем это все существенно, но очень смешно когда окружающие начинают делать выводы о качестве платформы на основании какой-либо подобной метрики.

          Похоже что люди просто не понимают, что это далеко не тот Linux из коробки который Free и с веселыми зверушками. Там оптимизируется все, пишутся свои модули (и далеко GPL ;) ), настраивается каждый последний битик, подбирается (или создается) специальное, высококачественное и дорогое оборудование, пишутся свои быстрые драйвера.

          Это очень дорогая и кропотливая работа «напильником», и тут достаточно естественно что *nix платформа подойдет лучше.

          Зато наверное приятно радовать себя мыслью сидя за CommodityPC — «у меня стоит такая же система как и на бирже». Поверьте там от того линукса осталось реально немного, хорошо если каркас. Да и совсем небесплатное это все, тот же SLERT — от 2.5к и выше. А сколько стоит тот же вольтаировский VMA который работает напрямую с сетевым железом?
          • 0
            customer network port

            это что такое?
            • 0
              Если я правильно все понял — это специально выделенный гигабитный или 10гигабитный порт для подключения одного клиента (понятно что это не брокер одиночка а компания как минимум).
    • +3
      видимо учитывалось только время выполнения транзакций без учета сетевых задержек
      • 0
        Иначе бы смотрелось совсем не в два раза
        • +1
          Иначе было бы бессмысленно сравнивать — т.к. у каждого свой провайдер, своя ширина канала и задержка на нем.
      • 0
        Поэтому хостинг в соседних от LSE зданиях стоит ого-го сколько!
        • 0
          Все верно.
  • +3
    Ура, теперь мы еще быстрее катимся в самизнаетекуда
  • –1
    А если перейдут на мэйнфрэймы и перепишут свой софт на коболе или нэйчрл, то ещё ускорятся :)
  • +8
    Мне как .Net-чику — не очень прискорбно читать подобные новости.

    И дело даже не в Linux vs Windows. Дело в необдуманной политике MS делать вещи (хорошо хоть не все) ТЯЖЕЛЫМИ И СЛОЖНЫМИ!

    Яркий пример — ASP.Net. Постарались сделать так, чтобы разработчик вообще абстрагировался от Web. И что на деле? Пришлось вникать и в Web-технологии и в внутренности работы Asp.Net. Как результат — и разрабатывать сложно и работает медленно.

    Будь проще, тупица!
    • 0
      *Мне как .Net-чику — не очень прискорбно читать подобные новости.

      «не очень прискорбно» следует читать как «очень прискорбно»
    • +3
      > Дело в необдуманной политике MS делать вещи (хорошо хоть не все) ТЯЖЕЛЫМИ И СЛОЖНЫМИ!

      Политика очень даже обдумана. Они повышают порог вхождения на рынок софта, чтобы было меньше конкурентов и их было проще контролировать.

      Правда с этим подходом есть две проблемы.
      1. Не разделяющий данную точку зрения опенсорс (может быть и MacOS, не писал под него, утверждать не буду)
      2. Иногда MS наступают на свои же грабли.
    • –3
      Вы как .Net-чик должны понимать, что из того огромного количества инструментов, которое предоставляется .Net, вы можете выбрать только те, что будете использовать, а остальное можно отключить.

      Еще как .Net-чик вы должны знать о MVC, которое по умолчанию используется как раз противоположный подход — ближе к HTML.
    • +1
      Не надо стенать :)

      Разумеется, сделанная сегодня система будет быстрее, чем система 5-летней давности разработки. Он быстрее не потому, что «Линукс лучше чем Виндавз», а потому что _современный_ Oracle быстрее, чем MS SQL Server позапрошлой версии, 10-летней давности (из новости: MS Windows Server 2003 и MS SQL 2000).
      И уж поди под это дело и сервера обновили на современные, и стораджи, не на старом же железе это все новое развертывали.

      Думаю, что смени сейчас _любую_ систему пятилетней давности, например Linux времен RHEL 3 и Oracle 9 на новую, под Windows Server 2008 + MS SQL 2008, новая «под Windows» будет быстрее.
  • +2
    Дорогие трейдеры, а расскажите, какой профит получают от увеличения скорости до 150мкс? Почему это так важно?
    • +2
      потому, что можно что-то купить/продать чуть раньше чем конкуренты, и оставить их с носом.
    • 0
      На хабре где-то были статьи на эту тему, торгуют в основном программы, поэтому 150мкс тоже время для них) И наверное, важно для синхронизации разных бирж.
    • +6
      Когда кто-то из игроков торгует по-медвежьи на большую сумму внизу нисходящего тренда, то у многих срабатывают стоп-лоссы. Чем ниже заведет такой резкий обвал, тем больше начнет срабатывать лимитрованных заявок на покупку по бросовой цене. Плюс к этому, при таких резких движениях рынка начинают работать скальперские автоматические торговые системы. Это колоссальные объемы комиссии для торговой площадки, платят за которые люди «а дай-ка я за пару сек туеву хучу бабла на форексе срублю» и другие нерасторопные личности верящие в могущество тех.анализа из книжек за авторством «великих знатоков трейдинга, только вот еще пару баксов на книжке заработаю».

      А если в небольших масштабах брать, то людям просто не нравится, что пока их заявка обрабатывается, рынок уже уходит далеко.
      P.S. Все что написано про медведей, точно также относится и к быкам.
    • 0
      спекулянты лосей будут меньше, ловить )
  • 0
    Хех, у меня новая идея для комикса:
    Новая система стоит на новеньком компьютере, все радуются 126мкс, и вся эта радость подключена через GPRS.
    • 0
      в комикс надо вставить новый макбук с бэйджиком NEW и два монитора (на первом логотип хабра), на втором (ещё один), а слова придумаем
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Linux — причина кризис!
  • +4
    Get the facts, ребята, get the facts.
  • –1
    Понаписали про миллисекунды очень много, а про текущую нагрузку бирж ни слова!
    По мне так 400 мкс при миллионе транзакций в секунду куда лучше, чем 90 мкс при тысяче…
    И опять же переход на Linux… С какой версии Windows и на какую версию Linux они переходили? Сдается мне что могли переходить с Windows 2000 x32 на последний Linux x64…
    И опять же — используют новую торговую платформу. А вот пусть перенесут на Linux старую и измерят производительность…
    Как всегда — собака зарыта в мелочах, которые в статье опущены… :)
    • 0
      Там были: HP ProLiant+WinServer2003+MSSQL2000+.Net+C#. Архитектура разработана собственноручно майкрософтом, а консультанты по биржевой специфике — Accenture какая-то.
      • +2
        > Accenture какая-то

        А сервера — какой-то HP ;D
    • +2
      "… на Лондонской фондовой бирже рынок акций замер практически на весь день. И хотя представители биржи отрицали, что сбой произошел по вине TradElect, они отказались назвать и какую-либо другую причину. Между тем, источники на бирже сообщили, что проблема заключалась именно в TradElect.

      К тому же, исполнительный директор биржи Клара Ферс, при которой произошло развертывание системы TradElect, покинула свой пост без объяснения причин. Инсайдеры утверждают, что случай с TradElect как раз и послужил последней каплей, переполнившей чашу терпения. Новый глава биржи, Ксавье Роле, тут же принял решение об отказе от TradElect..."
      www.itsec.ru/newstext.php?news_id=59243

      так что дело думаю не милли/микро секундах (хотя это конечно крайне важно) дело в обеспечении бесперебойности работы биржи.
  • 0
    По-моему это просто громкий заголовок — кинуть г… ца на вентилятор.

    Вопрос же не только в ОС и СУБД (хотя это тоже несомненно важно). А какое железо в новой системе — такое же как в старой? Сильно сомневаюсь. А какая архитектура ПО, какие схемы оптимизации, кеширования и т.д. — все аналогичное старой системе? Снова сильно сомневаюсь. Прирост скорости — это хорошо, но заметки написанные подобным образом создают ложное впечатление что это достигнуто просто за счет смены ОС и СУБД.
    • +1
      Главное в выборе ОС — ядро и ключевые драйверы можно переписывать. Специально нанятые консультанты и свои специалисты занимались этим больше года. Нанять linux kernel hacker несложно. А МС, даже если отдала бы им исходинки, где им найти специалистов по ядру Виндов? Хантить из Редмонда?

      Консультанты по оптимизации и измерению network latency тоже есть. Я участвовал в паре таких проектов в Лондоне как раз 3 года назад. Не представляю, что бы я мог порекомендовать тогда заказчику, если использовалась бы windows? «Извините, пакетик проводит 8 микросекунд где-то в недрах Виндов, но почему и что с этим делать никто кроме МСФТ понять не в состоянии.»
      • –1
        Поверьте, на том уровне, на котором работает LSE, нет проблем привлечь сколько угодно разработчиков MS для решения проблемы.
        • +2
          На каком таком уровне работает LSE? Я очень хорошо знаком с ребятами из той банды консультантов, что им настраивали Linux, чтобы пакетики быстрее двигались. Когда-то в одной команде работали.

          Мои коллеги из МСФТ — хорошие спецы по своему софту, знают, как применять все документированные и большую часть недокументированных настроек. Но дело-то не в настройках. Они не могут сделать специальный билд виндов для LSE.
    • –1
      > По-моему это просто громкий заголовок — кинуть г… ца на вентилятор

      Бинго! Вы выиграли главный приз! ;)
  • +1
    Ну конечно же, для биржи транзакции это самое главное. Слава роботам!
  • +1
    Практически уверен что дистрибутив у них — RedHat. Сделали бы они обзор по архитектуре, для таких проектов лучших специалистов обычно нанимают.
  • –2
    А поясните, ведь все равно для обмена с клиентами нужно использовать какую-то криптографию в системе — сообщение нужно расшифровать, обработать, зашифровать и послать обратно. Криптографию, как я понимаю, они не включали для замеров — тогда это сферический конь в вакууме получается…
  • 0
    Время=деньги
  • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.