По этой причине производители компьютерных систем уделяют особое внимание сообщениям об установленных ими рекордах производительности. «Экстренные» пресс-релизы следуют с такой частотой и бывают столь противоречивы, что в слово benchmarking (тестирование) — иногда вполне справедливо — вставляют еще два символа, получая неологизм benchmarkETing.
В непрекращающейся битве за покупателя установка рекордов производительности — вполне естественное оружие конкуренции, но оно имеет смысл только при условии сохраняющегося доверия со стороны этих покупателей к результатам тестирования. Именно поэтому, а главным образом затем, чтобы придать публикуемым результатам достоверность и объективность, ведущие производители на паритетных началах создали несколько общественных организаций, отвечающих за тестирование.
При всем уважении к деятельности перечисленных организаций необходимо заметить: процедура тестирования производительности как средство конкурентной борьбы по своей природе ничем не отличается от любой другой антагонистической игры, если следовать классификации теории игр. Каждый из участников игры такого рода стремится использовать все возможные обстоятельства в выгодную для себя сторону, в том числе и слабые моменты, обнаруживаемые в правилах. Для того чтобы игра была максимально честной, а результаты в наибольшей степени соответствовали истине, необходимо постоянно обновлять и улучшать правила, приводить их в соответствие с действительностью.
Под давлением этих обстоятельств методики тестирования производительности развиваются по двум направлениям. Первое продиктовано необходимостью следовать за новыми технологиями, второе подразумевает усиление самих тестов, а это означает непрекращающиеся усилия, направленные то, чтобы они исключали любые возможности для проведения испытаний, специально «заточенных» на получение рекордных результатов, несоответствующих реальной практике эксплуатации программно-аппаратной конфигурации. Данное утверждение хорошо подтверждается динамикой версий тестов ТРС [1, 2]. Самый свежий из них, TPC-W, был выпущен несколько месяцев назад и служит для оценки производительности систем, так или иначе связанных с электронным бизнесом. Два других — TPC-H и TPC-R — заменили собой тест TPC-D, оказавшийся не вполне адекватным изменившимся условиям [3].
Немного истории TPC
Среди тестирующих организаций большим авторитетом пользуется старейшая — Совет по оценке производительности обработки транзакций (Transaction Processing Performance Council — TPC), которая уже почти пятнадцать лет выпускает одноименные тесты. Рождение этого направления оценки производительности информационных систем было вызвано появлением первых банкоматов, с которых, собственно, и началось развитие технологий оперативной обработки транзакций (OLTP - OnLine Transaction Processing), пришедшая на смену доминировавшей до того пакетной обработке. OLTP обнаружила острую необходимость в новых механизмах сравнения различных типов программных и аппаратных средств.
И вот тогда, в апреле 1985 года в журнале Datamation была опубликована знаменательная для своего времени статья «A Measure of Transaction Processing Power» («Мера производительности обработки транзакций») 25 авторов, в число которых входили ученые и практики. В этой работе был предложен первый относительно универсальный тест производительности — DebitCredit, разработанный под руководством Джима Грея, позже ставшего признанным теоретиком тестирования. Он опубликовал классическую книгу «The Benchmark Handbook for Database and Transaction Systems» («Руководство по тестированию баз данных и систем транзакций»), а позже, в 1999 году был удостоен премии Алана Тьюринга (ACM Turing Award), своего рода нобелевской премии по информатике.
Появление теста DebitCredit знаменательно тем, что впервые были определены фундаментальные принципы, унаследованные его потомками и сохраняющиеся до сих пор.
- Производительность соотносится с общей стоимостью тестируемой системы, включая аппаратную составляющую, программное обеспечение и эксплуатационные издержки в расчете на заданный срок эксплуатации.
- Тест формулируется на высоком функциональном уровне, вне связи с конкретной аппаратной или программной платформой, что позволяет сравнивать между собой разнотипные реализации.
- Тест учитывает потенциальный рост мощности вычислительных систем, допуская масштабирование нагрузки (число пользователей и размер базы данных).
Однако DebitCredit можно рассматривать только как предпосылку к современному тестированию информационных систем, поскольку, он был только техническим средством, и ему не хватало внешних обоснований. Для дальнейшего продвижения необходим был следующий шаг — «законодательное» оформление процесса тестирования, а это очень тонкий момент, затрагивающий множество интересов. Этот шаг был сделан в августе 1988 года по инициативе и под руководством Омри Серлина, когда был образован Совет TPC, куда вошли восемь ведущих компьютерных компаний того времени.
Используя модель DebitCredit, как основу, Совет в 1989 году создал свой первый тест TPC Benchmark A (TPC-A), отличавшийся от DebitCredit рядом технических деталей и еще тем, что требовал предоставления полного отчета о процедуре тестирования Full Disclosure Report (FDR). В 1990 году начался массовый процесс тестирования, за последующие четыре года через TPC-A прошло 115 систем, было опубликовано более 300 отчетов.
Параллельно с TPC-A некоторое время существовал еще и тест TPC-В, ориентированный на пакетный режим обработки, но его популярность была намного меньше, и к сегодняшнему дню он сохранил лишь историческое значение.
С юридической точки зрения, по наивности составителей, оба теста были больше рассчитаны на честность производителя и на то, что в FDR будут отражены все аспекты тестирования. Такой подход страдал излишней доверчивостью к компаниям, чем не преминули воспользоваться некоторые производители, вставляя в свои продукты программные уловки, представляющие их системы на тестах в более выгодном свете, чем это было на практике. В связи с этим дальнейшее совершенствование тестов TPC пошло по двум направлениям — юридическому и техническому. Работа по первому позволила постулировать основные принципы честного тестирования: Fidelity — безукоризненная точность воспроизведения; Candor — беспристрастность; Due Diligence — должное старание.
Дополнительно документом Clause 0.2 было запрещено публиковать результаты, полученные на адаптированных к тестированию, несерийных версиях продуктов. В нем в частности говорилось: «Запрещается проводить испытания систем, продуктов, технологии, целью которых является получение наивысших показателей TPC, если они не соответствуют условиям окружающего мира и реальным приложениям». Однако это ужесточение требований не дало ожидаемых результатов. По этой причине, а также желая сохранить к себе доверие, Совет TPC создал в 1993 году специальную группу аудита.
С 1990 года в TPC проводилась работа над новым поколением тестов для OLTP, получившим название TPC-C и над тестом для систем поддержки принятия решений TPC-D. В 1992 году был утвержден TPC-C, а в 1994-м - TPC-D. Тест TPC-C был и остается основным продуктом Transaction Processing Performance Council.
В последующие годы были предприняты несколько попыток создания других тестов. В большинстве своем они завершилась неудачно, среди них:
- тест оценки серверов TPC-S (Server Benchmark);
- тест для корпоративных систем TPC-E (Enterprise Benchmark);
- тест для клиент-серверных архитектур TPC C/S (Client/Server Benchmark).
Оценка производительности систем электронной коммерции
В июле 2000 года Совет TPC обнародовал новый стандарт TPC-W, предназначенный для тестирования систем поддержки электронной коммерции, электронного бизнеса, коммерческих Web-приложений, систем класса B2B, корпоративных сетей. Нынешняя версия представлена в документе TPC-W Benchmark Specification is version 1.0 от 7 декабря 1999 года. TPC-W измеряет производительность, а также производительность, отнесенную к цене, аппаратного и программного обеспечения для транзакционной Web-среды, используя для этого несколько типов моделей.
От ранее известных и близких по смыслу тестов SPECWeb и WebStone тест TPC-W отличается тем, что включает доступ к базам данных, динамически генерируемых Web-страниц, обеспечивает безопасность пользовательского интерфейса, внешних транзакций и имеет большую масштабируемость, а главное - позволяет оценить экономическую эффективность решения в расчете на трехлетний эксплуатационный срок.
Тест использует три модели для тестирования сайтов: магазин, навигация, процедуры B2B, среди них основная — книжный магазин, представленный восемью таблицами. Размер базы данных может изменяться от 1000 до 1 млн. товаров. Основные метрики — число взаимодействий (покупок) с Web-сервером в секунду (Web-Interactions-Per-Second с делением по категориям баз данных различных размеров: WIPS@размер_базы_данных) и отношение стоимости к WIPS (Price-Per-WIPS, стоимость по категориям баз данных: долл./WIPS@размер_базы_данных). В дополнение к ним TPC-W включает также метрики для оценки навигации WIPSb (от browsing) и заказов WIPSo (от ordering).
В списке десяти самых высокопроизводительных систем «Top Performers - TPC-W» в момент подготовки статьи в гордом одиночестве пребывала система IBM Netfinity 5600, тестировавшаяся с Microsoft SQL Server 2000.
От TPC-D к TPC-R и TPC-H
В свое время TPC-D был эталонным тестом для оценки возможностей сложной информационной среды, обеспечивающей поддержку принятия решений. Он состоит из двух метрик, также предусматривающих делением по категориям баз данных в соответствии с их размерами: мощности (QppD@размер) и пропускной способности (QthD@размер). В начале 1999 года ожидалось принятие версии 2.0 теста, однако обстоятельства сложились не в пользу TPC-D.
В течение последнего времени несколько производителей предложили инструменты работы с данными, которые нарушали объективность теста TPC-D. Первой была компания NCR, когда ввела объединенный индекс (join index) для СУБД Teradata, позже в IBM DB2 5.2 для платформ Unix и Windows NT появились таблицы с автоматическим суммированием (automatic summary tables), а затем в Oracle8i были включены материализованные представления (materialized views). Оперируя этими инструментами, производители могли предоставлять компьютерной общественности данные, не вполне соответствующие реальной практике работы с хранилищами данных. Особую остроту дискуссия вокруг несовершенства TPC-D приобрела в связи с конфликтом между Microsoft и Oracle, который был вызван тем, что одна из компаний использовала предварительно подготовленные данные для выполнения нерегулярных отчетов. В связи с этим TPC решил разделить TPC-D на два теста TPC-R (business reporting) и TPC-H (adhoc querying). Точнее говоря, были переименованы версии TPC-D: модернизированная Version 2.0.1. теперь будет назваться TPC-H, а совсем новая TPC-D Version 3.0.0 получила название TPC-R. Последняя версия новее, поэтому о ней меньше известно и меньше опубликованных результатов тестирования (http://www.tpc.org/new_result/h-ttperf.idc).
TPC-R и TPC-H естественным образом близки к своему предшественнику, но первый в большей степени ориентирован на подготовку отчетов по планируемым работам, например, составление регулярных отчетов. Второй, напротив, нацелен на непрогнозируемые, нерегулярные отчеты.
TPC-H оценивает производительность систем принятия решений, выполняя для этого набор запросов к стандартной базе данных в хорошо контролируемых условиях. Основная метрика - QphH (TPC-H Composite Query-Per-Hour Performance) публикуется совместно с указанием размера базы данных - TPC-H QphH@размер, изменяемый в пределах от 1 до 10 тыс. Гбайт. Вторая метрика «цена/производительность» (TPC-H Price/Performance Metric) измеряемая в долл./QphH также относится к размеру базы данных TPC-H Price-per-QphH@размер. На сегодняшний день количество уже протестированных систем невелико. В каждой из трех категорий (по размеры базы 100, 300 и 1 тыс. Гбайт) пока всего по 4-6 систем.
Тест TPC-R служит для оценки производительности систем, предназначенных для поддержки бизнеса и подготовки отчетов (Business Support and Report workloads). Тест имеет две метрики QphR и долл./QphR. Компания NCR остается пока единственной компанией, которая предоставила данные тестирования по тесту TPC-R для своего сервера WorldMark 5200 вкупе с СУБД NCR Teradata V2R4.0.
***
Реальная оценка и выбор вариантов компьютерной платформы с использованием тестов, причем не только TPC, представляет довольно сложную инженерную задачу. Поэтому сейчас по всему миру, в том числе и в России, успешно работают компании, предлагающие консалтинговые услуги и программное обеспечение для адекватного решения проблемы выбора и аудита аппаратно-программной конфигурации.
Литература
1. Андрей Волков, Тесты TPC. «СУБД» № 2, 1995
2. Дмитрий Французов, Оценка производительности вычислительных систем. «Открытые системы», № 2, 1996
3. Джон Хенинг, SPEC CPU2000: определение производительности в новом тысячелетии. «Открытые системы», № 7-8, 2000
Некоторые общественные организации, занимающиеся проблемами тестирования
TPC - www.tpc.org
SPEC - www.spec.org
Linpack - www.netlib.no/netlib/benchmark/performance.ps
Notesbench Mail - www.notesbench.org
VolanoMark www.volano.com
Pro/E - www.proe.com
Определенный интерес представляют исследования компании IdeasInternational (www.ideasinternational.com), аккумулирующей в компактном виде результаты различных тестов.