Продолжается подписка на наши издания! Вы не забыли подписаться?

Что такое TPC?

Павел Румянцев

Что представляют собой системы, построенные по архитектуре «клиент/сервер»? В подавляющем большинстве случаев этими системами являются системы обработки запросов к базам данных. Зачастую перед организациями, желающими автоматизировать свою деятельность, возникает огромное количество вопросов. Одним из ключевых вопросов является решение одной, и весьма непростой проблемы – оптимального выбора платформы для будущей системы.

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

Аналогичные проблемы стоят и перед фирмами-разработчиками программного обеспечения. Насколько разработанная нашей фирмой программа лучше программы конкурентов? Или, наоборот, в чём мы проигрываем конкурентам? Что необходимо сделать для того, чтобы наша программа была лучшей?

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

Очевидно, что перед необходимостью принятия таких решений (или же обоснования своих притязаний) стояли производители и заказчики подобных систем в начале 80-х годов, когда в промышленности началась гонка, продолжающаяся до сих пор. Начало этой гонки связывают с началом автоматизации бизнес-процессов.

Естественно, что несколько смягчить остроту проблемы могли только тесты производительности систем, которые на том момент находились в зачаточном состоянии. Начиная с середины 80-х годов, продавцы компьютерных систем и баз данных начали производить оценку систем, базирующуюся на системе тестов TP1 (TP – вероятно, аббревиатура «Test of Performance»).

Фирма IBM, в «недрах» которой была разработана система тестов TP1, сделала эту систему общедоступной. Тесты, включённые в состав TP1, имели своей целью определить производительность систем, занимающихся обработкой транзакций, производимых банкоматами. Возможности этой системы были несколько ограничены. Проверялся только пакетный режим проведения транзакций, воздействие на банкомат со стороны пользователя или других компьютеров сети было исключено. У этой системы тестов были два недостатка. Во-первых, исключение из тестов внешних воздействий могло привести к получению неверных результатов. Во-вторых, условия проведения тестов не были определены, что также не могло не повлиять на точность получаемых результатов. Наконец, не существовало контроля над проведением и интерпретацией результатов тестирования. Результатом явилось то, что доверие к этой системе было достаточно низким. Ситуацию усугубил ещё и тот факт, что зачастую системы, производительность которых была неверно оценена благодаря неверным тестам (тестам, проведённым в неверных условиях), начинали пользоваться успехом на рынке. Естественно, этот факт не мог не расстроить честных производителей и торговцев системами автоматизации.

Первого апреля 1985 года в «Datamation» была опубликована анонимная статья, озаглавленная «Измерение производительности обработки транзакций». Фактически автором статьи являлись Джим Грей (Jim Gray) и ещё двадцать четыре автора, работающих в различных отраслях науки и производства. Несмотря на дату публикации, содержание статьи отнюдь не было шуткой. В этой статье предлагалась методика тестирования производительности системы обработки транзакций. Грей и его соавторы предложили систему тестов, отличчающуюся от тестов системы TP1. Эта система учитывала то, что банкомат (в более широком смысле – терминальное устройство) не является автономным устройством, и, следовательно, на него влияют как другие компьютеры, включённые в сеть, так и пользователи. Кроме того, при оценке результатов тестов было предложено использовать несколько параметров, позволявших оценить не только технические, но и экономические параметры системы.

Во-первых, Грей предложил не ограничиваться оценкой только производительности системы, но и оценивать общую стоимость эксплуатации системы. Эту общую стоимость он предложил рассчитывать не только как совокупную стоимость аппаратного и программного обеспечения, но и учитывать стоимость поддержания системы в работоспособном состоянии в течение пяти лет. До этого момента при оценке систем стоимость её обслуживания не учитывалась.

Во-вторых, предлагаемый тест должен был определять производительность системы на уровне функциональных требований. До этого момента при тестировании различных систем использовались только сравнительные тесты, то есть определялось, как поведёт себя тот или иной тест на компьютере определённой конфигурации, с определённой операционной системой, с определёнными установками. Такое нововведение позволило бы определять общую производительность системы вне зависимости от используемого «железа» и «софта».

В-третьих, при оценке производительности системы было предложено учитывать, помимо прочих, и масштаб системы, а не только скорость обработки транзакций. Понятно, что увеличение числа пользователей системы уменьшает производительность каждого терминала. Кроме того, увеличение размера базы данных также приводит к снижению скорости работы. На общую производительность системы могут, например, повлиять, и размеры log-файлов. Ранее эти и им подобные характеристики при оценке производительности системы не учитывались.

В-четвёртых, впервые было предложено ввести ограничение по времени обработки транзакций. В частности, в системе тестов «Дебет-кредит» 95% всех транзакций должны были быть завершены в течение одной секунды. Это предъявляло не столько количественные, сколько качественные требования к работе системы. Тестируемая система должна была работать так, чтобы пользователь (субъективно, конечно) не замечал задержек в ее работе. До этого момента таких ограничений не вводил никто.

Однако появление этой статьи внесло ещё большую сумятицу. Вспомним, что Грей опубликовал не тест. Он опубликовал только размышления о том, каким должен быть этот тест, и каким требованиям он должен отвечать. После выхода этой статьи среди производителей и продавцов систем обработки транзакций наступила некоторая сумятица. Кто-то для оценки производительности системы пользовался тестами TP1, кто-то использовал методологию «Дебет-кредит», кто-то использовал частично тесты из TP1, а частично тесты, построенные в соответствии с «Дебет-кредитом»… При этом результаты этих тестов каждый интерпретировал по-своему, точнее, как ему выгодно.

В этой ситуации естественным выходом было создание хороших тестов производительности, выдающих достоверные результаты. На результатах хороших тестов может быть построена честная конкуренция. Однако любому мало-мальски связанному с вычислительной техникой человеку очевидно, что результаты тестов могут быть трактованы неоднозначно. Поэтому помимо создания тестов необходимо было обеспечить правильность толкования результатов тестов и предотвратить любые возможности неверной интерпретации результатов. Как общая ситуация с попытками какого-либо ранжирования систем по их производительности, так и необходимость создания «связки» «тесты/система интерпретации результатов тестов» привели к возникновению TPC – совета по производительности обработки транзакций (Transaction Processing Performance Council).

Американский маркетолог Омри Серлин (Omri Serlin) понимал и ощущал всю ненормальность этой ситуации. Поэтому он начал кампанию за приведение всего этого «безобразия» в строго определённый порядок. В необходимости наведения порядка Омри Серлину удалось убедить восемь компаний, и 10 августа 1988 года был подписан документ о создании TPC (Transaction Processing Performance Council).

TPC был создан для того, чтобы наблюдать не только за правильностью проведения тестов, но и за тем, как интерпретируются результаты этих тестов. Таким образом, основными задачами TPC явились:

разработка процедур интерпретации результатов проведённых тестов;

ведение наблюдения за правильностью проведения тестов;

учёт результатов проведённых тестов.

Год спустя, в ноябре 1989 года TPC опубликовал свою первую спецификацию теста производительности, которая получила название TPC-А. Эта спецификация в основном базировалась на модели, предложенной Джимом Греем со товарищи. TPC-А отличался от этой модели, однако, внесённые изменения не носили принципиального характера. В частности, были внесены следующие изменения:

требование выполнения 95% транзакций в течение одной секунды было заменено на требование выполнения 90% транзакций в течение двух секунд;

число эмулируемых терминалов было ограничено десятью;

стоимость терминала включалась в общую стоимость системы;

системы могли работать как в локальных (LAN), так и в глобальных (WAN) сетях (в статье Джима Грея шла речь только о работе в WAN);

требования в целом к системе были ужесточены таким образом, чтобы за общую производительность системы нельзя было принять её производительность в «пиковых» условиях;

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

В TPC-А было включено ещё одно не просто важное, а принципиально важное условие. Принципиально новым требованием явилось требование опубликования полного отчёта о проведении тестов и полученных результатах. При выполнении этого требования каждый, кто хотел проверить толкование результатов тестов, мог совершенно легально сделать это. Естественно, это требование повлекло за собой совершенно новое понимание тестирования. Тестирование как таковое стало представляться процессом, результаты которого ценны только в полноте своей. Результаты отдельных тестов потеряли своё значение, как не дающие полной картины.

Первый результат прохождения теста TPC-A был опубликованы в июле 1990 года. Четырьмя годами позднее, когда TPC-А находился на пике популярности, в списке прошедших тесты значилось 115 систем тридцати трёх компаний. Всего же было опубликовано около трёхсот результатов прохождений тестов.

Первый результат прохождения TPC-А был равен 33 tpsA (транзакций в секунду при прохождении теста TPC-А) при стоимости транзакции 25500 долларов. Лучший результат, полученный при прохождении этой серии тестов, составил 3692 tpsA при стоимости транзакции 4873 доллара. Повышение скорости в 111 раз и снижение стоимости в пять раз произошло за счёт:

неоптимальности первых версий тестов;

улучшения качества и скорости работы «железа» и «софта»;

исправления ошибок и удаления «узких мест» из программ, уже прошедших тесты;

производители «играли» с тестами, узнавая один от другого о предъявляемых требованиях и «подгоняя» систему только для прохождения теста.

Как бы то ни было, но нельзя не заметить, что во многом именно благодаря правильно построенной системе тестирования (то есть совокупности системы тестов и правил интерпретации результатов тестов) системы обработки транзакций сделали огромный шаг вперёд с точки зрения производительности. Другими словами, именно система тестирования влияла на повышение качества.

 

Компания

Система

tpmC

Ст/пр

Дата начала продаж

СУБД

ОС

TP Monitor

Дата
тестиров.

Кластер

IBM eServer pSeries 690 Turbo 7040-681  

763,898 

8.31 $

08 ноября 2003

IBM DB2 UDB 8.1  

IBM AIX 5L V5.2  

BEA Tuxedo 8.0  

30 июня 2003

ProLiant DL760-900-256P  

709,220 

14.96 $

15 октября 2001 

Microsoft SQL Server 2000 Enterprise Edition  

Microsoft Windows 2000 Advanced Server  

Microsoft COM+  

19 сентября 2001 

hp superdome Client/Server  

707,102 

8.44 $

23 октября 2003 

Microsoft SQL Server 2000 Enterprise Ed. 64-bit  

Microsoft Windows Server 2003 Datacenter Edition  

Microsoft COM+  

20 мая 2003

IBM eServer pSeries 690 Turbo 7040-681  

680,613 

11.13 $

08 ноября 2003 

IBM DB2 UDB 8.1  

IBM AIX 5L V5.2  

BEA Tuxedo 8.0  

09 мая 2003

ProLiant DL760-900-192P  

567,882 

14.04 $

15 октября 2001

Microsoft SQL Server 2000 Enterprise Edition  

Microsoft Windows 2000 Advanced Server  

Microsoft COM+  

19 сентября 2001 

NEC Express 5800/1320Xc  

514,034 

11.50 $

22 октября 2003

Microsoft SQL Server 2000 Enterprise Ed. 64-bit  

Microsoft Windows Server 2003 Datacenter Edition  

Microsoft COM+  

23 апреля 2003 

PRIMEPOWER 2000 c/s w 66 Front-Ends  

455,818 

28.58 $

28 февраля 2002 

SymfoWARE Server Enterp. Ed. VLM 3.0  

Sun Solaris 8  

BEA Tuxedo 6.5 CFS  

28 августа 2001 

NEC Express5800/1320Xc C/S with Express5800/120Re- 

433,107 

12.98 $

30 июня 2003

Microsoft SQL Server 2000 Enterprise Ed. 64-bit  

Microsoft Windows Server 2003 Datacenter Edition  

Microsoft COM+  

20 февраля 2003

IBM eServer pSeries 690  

427,760 

17.75 $

31 мая 2003

Oracle 9i Enterprise Database Server 9.2.0.1  

IBM AIX 5L V5.2  

Websphere App. Server Ent. Edition V 3.0 

26 декабря 2002

10 

HP 9000 Model Superdome Enterprise Server  

423,414 

15.64 $

26 августа 2002

Oracle 9i Enterprise Database Server 9.2.0.1  

HP UX 11.i 64-bit  

BEA Tuxedo 8.0  

26 августа 2002

Таблица 1. Системы, показавшие десять лучших результатов
в тесте TPC-С, категория «Производительность» (1 июля 2003 года).

Второй системой тестов, результаты которой впервые были опубликованы в середине 1991 года, являлась TPC-В. Это в некотором смысле был возврат к «Дебет-кредиту». При работе TPC-B не учитывались воздействия сети и пользователей. Первый результат прохождения этого теста составил 102,94 tpsB при стоимости транзакции 4167 долларов. Лучшим из показанных был результат 2025 транзакций при стоимости транзакции 254 доллара.

Результаты, да и само существование этого теста оцениваются неоднозначно, и эта неоднозначность подвигла TPC на дальнейшее развитие серии тестов и на создание ещё одной серии – TPC-S. В январе 1998 года был создан тест, позволявший оценивать производительность TPC-W для web-серверов, занимающихся обработкой транзакций.

Но вернёмся ко времени создания TPC-B. Как сказано выше, непосредственно TPC сыграл большую роль в развитии систем обработки транзакций. Но при своём создании TPC допустил один промах. У него не было никакой юридической службы. Пользователю, не согласному с результатами тестов или интерпретацией этих результатов, некуда было обратиться и обжаловать эти результаты. Для того чтобы изменить это положение, в 1990-1991 годах был создан и начал функционировать Technical Advisory Board (TAB), который и взял на себя заботу о разрешении всех конфликтов, связанных с тестами и их результатами. Таким образом, TPC помимо «законодательной» (интерпретация результатов проведения тестов) и «исполнительной» (разработка тестов и осуществление тестирования) ветвей получил также и «судебную» ветвь.

 

Компания

Система

tpmC

Ст/пр

Дата
начала продаж

СУБД

ОС

TP
Monitor

Дата тестиров.

Кластер

HP ProLiant ML350G3-1P  

19,526 

2.47 $

12 мая 2003

Microsoft SQL Server 2000  

Microsoft Windows Server 2003  

Microsoft COM+  

12 мая 2003

N

HP Proliant ML370G3-1P  

19,140 

2.55 $

29 мая 2003 

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows Server 2003 Standard Edition  

Microsoft COM+  

29 мая 2003

N

HP ProLiant DL380G3-1P  

18,818 

2.57 $

27 мая 2003

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows Server 2003 Standard Edition  

Microsoft COM+  

29 мая 2003

N

PowerEdge 2650/2.4/1P  

16,756 

2.78 $

21
сентября 2002

Microsoft SQL Server 2000 Standard Ed.  

Microsoft Windows 2000 Server  

Microsoft COM+  

11
сентября 2002

N

IBM eServer xSeries 225/2.4Ghz/1P  

18,077 

2.79 $

12
февраля 2003

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows 2000 Server SP2  

Microsoft COM+  

4
декабря 2002

N

IBM eServer xSeries 235/2.4GHz/1P  

17,559 

2.99 $

16 августа 2002

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows 2000 Server SP2  

Microsoft COM+  

16
августа 2002

N

PowerEdge 4600/2.2/1P  

12,579 

3.31 $

26 июня 2002

Microsoft SQL Server 2000 Standard Ed.  

Microsoft Windows 2000 Server  

Microsoft COM+  

26 июня 2002

N

HP ProLiant DL380-G3  

18,051 

3.38 $

1
февраля 2003

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows Server 2003 Standard Edition  

Microsoft COM+  

19 ноября 2002

N

IBM e(logo) xSeries 220 c/s  

12,009 

3.52 $

03 июня 2002

Microsoft SQL Server 2000 Standard Ed.  

Microsoft Windows 2000 Server  

Microsoft COM+  

03 июня 2002

N

10 

HP ProLiant ML350G3T-1P  

10,089 

3.59 $

31
декабря 2002

Microsoft SQL Server 2000 Standard Ed. SP3  

Microsoft Windows Server 2003 Standard Edition  

Microsoft COM+  

13 августа 2002

N

Таблица 2. Системы, показавшие 10 лучших результатов в тесте TPC-С,
в категории «Стоимость/производительность» (1 июля 2003 года).

Разработка и дальнейшее усовершенствование тестов на этом, естественно, не остановилось, и к настоящему времени используется уже третья версия тестов TPC, TPC-С.

К началу 90-х годов прохождение тестов TPC де-факто стало почти обязательным для систем обработки транзакций. Многие компании, пройдя тестирование TPC, свою маркетинговую политику построили на результатах прохождения этих тестов. Но, как говорится, в семье не без урода. Некоторые из этих компаний стали с целью повышения объёма продаж предъявлять свои результаты несколько однобоко. При этом выпячивались результаты одних тестов и старательно замалчивались результаты других. Естественно, это не могло не нанести урона престижу TPC и авторитету производимого тестирования. Для того, чтобы впредь предотвратить подобные случаи, TPC принял решение разрешить объявление результатов тестов только при выполнении следующих условий:

точность представления результатов;

полнота представления результатов;

целостность представления результатов (должны быть представлены не только результаты тестов, но и условия их проведения).

Эти три условия позволили TPC потребовать от недобросовестных производителей и торговцев прекращения спекуляций на результатах пройденных тестов. Результатом, естественно, явилось восстановленная репутация TPC.

В настоящее время в состав TPC входят отнюдь не только восемь фирм, явившихся «отцами-основателями» TPC. Список членов TPC сам по себе может охарактеризовать эту организацию. В состав TPC по состоянию на декабрь 2002 года входили:

Acer

Assential Software

BEA Systems

Bull

DataReturn

Dell Computers

EDS

EMC Corp

Fujitsu

Gradient Systems

Hewlett-Packard

Hitachi

IBM Corp

IDEAS International

Intel Corp

Itom International

Microsoft

NCR

NEC

Network Appliance, Inc

Oracle

Performance Tuning Corp

Fujitsu Siemens

Silicon Graphics

Sun Microsystems

SunSoft

Sybase

Unisys Corp

White Cross Systems

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

Как уже говорилось выше, целью тестов TPC является предоставление объективных данных о производительности системы. Для того, чтобы достичь этой цели, спецификации TPC требуют, чтобы тестировалась производительность систем, продуктов, технологий, отвечающих следующим требованиям:

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

продукт должен относиться к соответствующему сегменту рынка (обработка транзакций);

при тестировании продукта должны быть обязательно воспроизведены действия некоторого числа пользователей этой системы.

Запрещается производить тестирование таких систем, целью тестирования которых является только улучшение результатов тестирования, но не реальное улучшение работы системы в реальных условиях.

При интерпретации результатов должны использоваться следующие характеристики:

является ли система доступной для пользователя, документированной и поддерживаемой?

есть ли у приложения какие-нибудь ограничения сверх тех, которые предъявляются TPC?

является ли система составной частью более крупной системы?

предпринимает ли система специальные меры, которые не приводят к квеличению производительности, но улучшают результаты тестирования?

не является ли система подобной какой-то другой системе, уже имеющейся на рынке?

требует ли система дополнительных навыков для работы с ней, то есть необходимо ли обслуживающему персоналу, уже имеющему опыт работы с подобными системами, проходить дополнительное обучение на рабочем месте или в учебном центре?

есть ли у системы ценовые скидки, и в каких случаях они применяются?

имеются ли уже случаи поставки этой системы? Сколько систем уже находится в эксплуатации?

если система до сих пор нигде не эксплуатируется, то есть ли какие-нибудь основания предполагать, что она будет использоваться в будущем?

Тестирование продукта производится в следующих категориях:

логическая структура базы данных;

характеристики транзакции;

характеристики устройства взаимодействия системой (терминала);

реакция системы на увеличение размера базы данных;

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

производительность и время реакции системы;

цена системы и правильность её установления;

полное раскрытие отчёта о результатах тестирования системы;

возможность аудита системы.

Как система тестирования систем обработки транзакций, TPC эмулирует некоторую среду, в которой некоторое количество терминалов производит запросы к базе данных. В общем случае эти транзакции включают в себя ввод и передачу заказа, запись платежей, проверку состояния заказа и управление запасами на складах.

Можно привести такой пример. Допустим, что в бизнес-модели TPC-С оптовый торговец (Компания) взаимодействует с некоторым числом принадлежащих ей складов в различных торговых районах. Соответствующий тест TPC-С сконструирован таким образом, чтобы можно было смоделировать рост компании и возникновение новых складов. Каждый склад в модели TPC-С поддерживает десять торговых районов, при этом в каждом торговом районе находятся три тысячи покупателей. Оператор торгового района в любой момент может осуществить транзакцию любого из пяти приведённых выше типов. Как и типы транзакций, частота возникновения транзакций модулируется на основе какого-то реального сценария.

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

Другим часто встречающимся типом транзакции является запись платежа, полученного от покупателя. Несколько менее часто у оператора возникает необходимость проверить состояние ранее размещённого заказа, отправить десять укомплектованных заказов или запросить систему о возможной нехватке товаров на складе. Уровень производительности, определяемый TPC-С, определяет число заказов, которые могут полностью быть обработаны за одну минуту. Единицей измерения этого уровня является tpmC, то есть число транзакций за минуту во время прохождения теста TPC-С.

Для того, чтобы тест мог работать с системами разного масштаба, реализация TPC-С позволяет изменять число терминалов и число и размер базы данных применительно к вычислительной мощности тестируемой системы.

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

Методика тестирования систем

Как уже говорилось выше, при тестировании систем исследуются вероятностно-временные характеристики обработки системой транзакций пяти различных видов.

К сожалению, описание всех нюансов и допущений, сделанных при разработке системы тестирования, привести здесь не представляется возможным исключительно из-за большого количества таковых. Тем не менее, приведённые ниже характеристики должны дать понятие о том, каким образом осуществляется тестирование системы. Подразумевается, что при проведении тестирования данные генерируются автоматически. Также подразумевается, что все транзакции в ходе тестирования должны быть обработаны в соответствии с установленными правилами. Кроме того, подразумевается, что результаты обработки транзакции должны соответствующим образом отображаться на устройстве ввода-вывода.

Транзакция ввода нового заказа

Смысл транзакции при вводе нового заказа состоит в формировании полного заказа и отслеживании результатов его обработки. Транзакции этого типа встречаются наиболее часто, на них налагаются жёсткие временные ограничения.

Обычно при тестировании этого вида транзакций предполагается, что у компании есть один центральный склад. Номер торгового района выбирается случайным образом из интервала [1..10]. Случайным же образом из интервала [1..3000] выбирается номер покупателя. Число элементов в заказе выбирается случайным образом из интервала [5..15]. Номер элемента выбирается случайным образом н интервале [1..100000]. 1% всех новых заказов считаются ошибочными. Ошибочный заказ выбирается случайным образом (из интервала [1..100]) из каждой сотни поступивших заказов. Транзакции, обрабатывающие ошибочные заказы, откатываются.

Считается, что в 90% случаев требуемый товар находится на складе соответствующего торгового района. 10% заказов (десять заказов, случайно выбираемых из каждой сотни заказов) требуют обращения на склад другого торгового района.

Транзакция записи платежа, полученного от покупателя

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

В данном случае при генерации данных о покупателе в 60% случаев случайным образом выбирается фамилия покупателя, а в 40% – его идентификатор. Предполагается, что в 85% случаев платёж осуществляется в том регионе, жителем которого покупатель является. В 15% случаев предполагается, что платёж осуществляется из другого торгового района.

Транзакция проверки состояния заказа

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

Транзакция доставки заказов

Транзакция этого типа является внутренней, то есть взаимодействия с пользователем системы при выполнении этой транзакции не происходит. В данном случае считается, что осуществлена доставка десяти заказов с одного склада. Номер перевозчика выбирается случайно. В качестве времени выполнения заказа используется системное время на момент завершения транзакции.

Транзакция запроса о наличии товаров на складе

Эта транзакция используется достаточно редко. При её использовании количество единиц товара генерируется случайным образом из интервала [10..20]

Представление результатов тестирования системы

Возможностью прохождения объективного тестирования в настоящее время пользуются множество разработчиков различных платформ. При этом не является редкостью факт, когда одна и та же фирма тестирует разные конфигурации производимых ею платформ. Нередки случаи, когда производители платформ, не удовлетворённые полученными при тестировании результатами, начинают искать различные «узкие» места, производить доработки, после чего повторно представляют платформу для тестирования. Примером тому является фирма IBM. Если взглянуть в таблицу 1, то можно заметить, что IBM выставляла для тестирования одну и ту же платформу дважды, 9-го мая и 30-го июня 2003 года. В конфигурации платформы никаких изменений не произошло. О чём это может свидетельствовать? Только о том, что за время, прошедшее между двумя тестированиями, платформа подверглась доработкам, которые привели к повышению производительности и, естественно, к понижению стоимости транзакции и соотношения «стоимость/производительность".

Но здесь, разумеется, необходимо заметить, что само по себе понижение стоимости транзакции не может служить характеристикой системы. Понятно, что стоимость транзакции будет падать не только благодаря повышению производительности, но и благодаря использованию более дешёвой аппаратуры. Например, настольный компьютер стоимостью в несколько сотен долларов может и, скорее всего, будет иметь лучшее соотношение «Стоимость/производительность», чем система масштаба предприятия, в состав которой входит несколько дорогих серверов. Следовательно, этот показатель можно использовать только при сравнении систем одного класса, одного масштаба.

В таблице 2 приведены результаты тестирования систем, показавших лучшие результаты в категории «Стоимость/производительность». Даже беглого взгляда на эту таблицу достаточно для того, чтобы понять, что платформы, включённые в эту таблицу, никак нельзя сравнивать с платформами, включёнными в таблицу 1. Как говорится, другой уровень.

Наверное, это было одной из причин того, что одним из требований, предъявляемых TPC, явилось требование опубликования полного отчёта о тестировании.

Чтобы познакомить читателей с примером опубликования результатов тестирования, я подробно просмотрел отчёт (Full Disclosure Report) для СУБД Microsoft SQL Server 2000 Enterprise Edition, работающей на ProLiant DL760-900-256P производства фирмы Compaq под управлением операционной системы Windows 2000 Advanced Server. Что мне бросилось в глаза во время знакомства с этим документом?

Наиболее интересным фактом, как мне кажется, является то, что непосредственно итоговые результаты теста заняли в отчёте (я просматривал файл в формате .pdf) ровно одну страницу из четырёхсот восьмидесяти трёх! Всё остальное посвящено описанию теста и условиям его проведения.

В частности, больше половины отчёта занимает код теста, треть отчёта посвящена описанию конфигурации системы во время проведения теста. Размер этого отчёта может свидетельствовать о том, с какой скрупулёзностью были описаны тест и условия его проведения. Когда я просматривал его, мне показалось, что описано абсолютно всё, начиная от общей конфигурации системы и заканчивая положением переключателей (jumper’ов) на материнских платах. Кстати, приятно было заметить, что в первом пункте описания условий проведения тестирования прямо указываются разработчик тестов, место проведения тестов и, возможно, самое главное – спонсор тестирования.

В соответствии с рекомендациями TPC, в отчёте приводятся также данные о ценах оборудования, на котором производилось тестирование.

Заметим, что правильность приведённых параметров, а также соответствие теста спецификациям и методологии TPC были удостоверены собственноручной подписью аудитора. С одной стороны, этот факт свидетельствует об открытости процесса тестирования системы, а с другой говорит о том, насколько высокое значение придаётся достоверности результатов тестирования.

Выводы

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

Однако эти тесты достаточно адекватно отражают соотношение сил на рынке аппаратных и программных средств, предназначенных для делового применения, что достигается как благодаря ответственному подходу TPC к рассмотрению результатов тестирования, так и пристальным вниманием к этим тестам практически всех производителей «железа» и программного обеспечения. Поэтому изучение и сопоставление результатов тестирования различных систем может позволить принять решение о выборе системы обработки транзакций, основанное на относительно объективной информации.

Приложение 1. Системы, занимавшие в тестах TPC-C
первые места по производительности

Компания

Система

tpmC

$/tpmC

БД

ОС

Дата публикации

IBM

RS 6000 C10 w/1MB L2 Cache c/s

486

654.03

Sy SQL Server 10.0.1

IBM AIX 3.2.5

24.05.94

HP

HP 9000 Series 800 Model E55 c/s

729

424.00

Informix OnLine 5.01

HP HP-UX 9.04

08.08.94

IBM

RS 6000 POWERServer R24 c/s

1 470

666.12

IBM DB2 for AIX 2.1

IBM AIX 3.2.5

26.12.94

NEC

UP 4800/690 C/S

1 489

235 303

Informix OnLine 5.01

NEC UP-UX/V (REL4.2MP) R6.2

27.01.95

HP

HP 9000 K400 C/S

2 616

550.41

Informix OnLine 7.1

HP HP-UX 10.0

27.03.95

Bull

ESCALA Rack R201/8 C/S

2 660

560.18

Informix OnLine 7.1

IBM AIX 4.1.2

09.05.95

NCR

3555/4-XP c/s

3 313

586.41

Informix OnLine 7.1

NCR SVR4 MP-RAS 3.00

23.05.95

Sun

SPARCCenter 2000E c/s

3 534

495.45

Informix OnLine 7.1

Sun Solaris 2.4

24.07.95

HP

HP 9000 Model K410 c/s

3 809

363.51

Oracle7 7.3

HP HP-UX 10.01

26.09.95

Sun

SPARCcenter 2000E c/s

4 545

395.82

Sy SQL Server 11.0

Sun Solaris 2.4

29.09.95

Compaq

AS 8400 5/300 c/s

9 414

315.78

Oracle7 7.3

Digital UNIX V3.2D-1

27.10.95

Compaq

AS 8400 5/350 c/s

11 456

285.80

Oracle7 7.3

Digital UNIX V3.2D-1

06.12.95

Compaq

AS 8400 5/350 c/s

13 646

276.93

Informix OnLine 7.2

Digital UNIX V3.2D-2

25.03.96

Compaq

AS 8400 5/350 4 Node c/s

30 390

304.67

Oracle7 7.3

Digital UNIX V4.0A

17.04.96

Sun

Ultra Enterprise 6000 c/s

31 147

108.90

Oracle8 EE 8.0.3

Sun Solaris 2.6

23.06.97

HP

HP 9000 V2200 Enterprise Server c/s

39 469

94.18

Sy ASE 11.5

HP HP-UX 11.00

15.09.97

Sun

Enterprise 6000 Cluster

51 872

134.46

Oracle8 EE 8.0.3

Sun Solaris 2.6

03.10.97

HP

HP 9000 Model V2250 ES (c/s)

52 118

81.17

Sy ASE 11.5

HP HP-UX 11.00

13.02.98

IBM

RISC System/6000 SP Model 309 (c/s)

57 054

147.40

Oracle Oracle8 EE 8.0.4

IBM AIX 4.2.1

18.02.98

Compaq

AS 8400 8Node 96CPU Cluster (c/s)

102 542

139.49

Oracle Oracle8 EE 8.0

Digital Digital UNIX 4.0D

05.05.98

Sun

Starfire Enterprise 10000

115 396

105.63

Oracle 8i v.8.1.5.1

Sun Solaris 7

24.03.99

Sun

Enterprise 6500 Cluster

135 461

97.10

Oracle8i Ent. Edition 8.1.6.0

Sun Solaris 2.6

24.09.99

IBM

RISC System 6000 ES S80

135 816

52.04

Oracle 8i V8.1.6

IBM AIX 4.3.3

29.10.99

IBM

Netfinity 8500R c/s

440 880

32.28

IBM DB2 UDB 7.1

Windows 2000

03.07.00

Compaq

ProLiant 8500-700-192P

505 303

19.80

MS SQL Server 2000

Windows 2000

06.10.00

IBM

IBM/eServer xSeries 370

688 221

28.89

MS SQL Server 2000

Windows 2000 DS

06.04.01

IBM

IBM eServer pSeries 690 Turbo 7040-681

763898.4

8.31

IBM DB2 UDB 8.1

IBM AIX 5L V5.2

30.06.03

 

 

Приложение 2. Системы, занимавшие в тестах TPC-C
первые места по производительности.

Компания

Система

tpmC

$/tpmC

БД

ОС

Заявка

IBM

RS 6000 C10 w/1MB L2 Cache c/s

486

654.03

Sybase SQL Server 10.0.1

IBM AIX 3.2.5

24.05.94

HP

HP 9000 Series 800 Model E55 c/s

729

424.00

Informix OnLine 5.01

HP HP-UX 9.04

08.08.94

Compaq

ProLiant 4500 5/100 Model-1 C/S

1 517

319.17

Sybase SQL Server 10.0.2

SCO UnixWare 2.0

18.05.95

IBM

RS 6000 PowerPC J30 (8CPUs) c/s

3 119

237.44

IBM DB2 for AIX 2.1

IBM AIX 4.1.2

19.06.95

Compaq

ProLiant 4500/133 Model2 c/s

3 516

185.32

Oracle7 7.3

SCO UnixWare 2.03

13.12.95

Compaq

ProLiant 4500/166 Model 2 c/s

3 849

160.93

Oracle7 7.3

SCO UnixWare 2.1

31.01.96

Compaq

ProLiant 4500 5/133 Model 2 c/s

3 112

151.07

Sybase SQL Server 11.0.1

Win NT 3.51

28.03.96

Compaq

ProLiant 4500 5/133 Model 2 c/s

3 641

147.62

SQL Server 6.5

Win NT 4.0

05.04.96

Sun

Ultra Enterprise 2 c/s

3 107

116.02

IBM DB2 for Solaris 2.1.1

Sun Solaris 2.5.1

15.04.96

Intergraph

InterServe MP-610 Server c/s

1 676

102.35

SQL Server 6.5

Win NT 4.0

28.05.96

Compaq

ProLiant 5000 6/200 Model 2 c/s

6 751

89.62

SQL Server 6.5

Win NT 4.0

06.09.96

NCR

NCR WorldMark 4300S c/s

6 044

80.18

SQL Server 6.5

Win NT 4.0

10.10.96

Compaq

Prioris ZX 6200MP c/s

6 713

65.16

SQL Server 6.5

Win NT 4.0

14.11.96

Intergraph

InterServe 625

3 961

63.34

SQL Server 6.5 SP3

Win NT 4.0

05.03.97

Dell

PowerEdge 6100

7 693

42.53

SQL Server 6.5 SP3

Win NT 4.0

12.03.97

Unisys

Aquanta HS/6 Server c/s

10 666

41.88

SQL Server 6.5. Enterprise

Win NT EE 4.0

07.07.97

HP

NetServer LX Pro (c/s)

10 506

35.82

SQL Server EE 6.5

Win NT EE 4.0

18.08.97

Compaq

ProLiant 5500 (c/s)

10 527

33.95

SQL Server EE 6.5

Win NT EE 4.0

22.12.97

Acer

AcerAltos 19000Pro4 (c/s)

11 072

27.25

SQL Server EE 6.5

Win NT EE 4.0

16.02.98

Compaq

Compaq ProLiant 5500 4P1M (c/s)

11 749

26.61

SQL Server EE 6.5

Win NT EE 4.0

11.05.98

Compaq

ProLiant 7000-6/400-M1

18 127

26.10

SQL Server EE 7.0

Win NT EE 4.0

26.06.98

Unisys

Aquanta QS/2 Server (c/s)

18 154

25.49

SQL Server EE 7.0

Win NT EE 4.0

16.07.98

Compaq

ProLiant 5500-6/400 c/s

17 716

21.71

SQL Server EE 7.0

Win NT 4.0

11.09.98

Compaq

ProLiant 7000-6/450-2S

22 479

18.84

SQL Server EE 7.0

Win NT EE 4.0

10.02.99

Dell

PowerEdge 6350

23 461

17.24

SQL Server EE 7.0

Win NT EE 4.0

28.03.99

Compaq

ProLiant 5500-6/500

20 196

15.11

SQL Server EE 7.0

Win NT EE 4.0

07.05.99

Compaq

ProLiant 5500-500-2M

22 057

14.62

SQL Server EE 7.0

Win NT EE 4.0

12.07.99

IBM

Netfinity 6000R

34 265

14.10

SQL Server 2000

Win 2000

12.02.00

HP

NetServer LH 6000

33 136

11.25

SQL Server EE 7.0

Win NT EE 4.0

06.03.00

Compaq

ProLiant ML-570-6/700-3P

20 207

9.51

SQL Server 2000

Win 2000

21.08.00

Dell

PowerEdge 6400 3P Std

20 332

8.99

SQL Server 2000

Win 2000

02.02.01

IBM

IBM e(logo) xSeries 350 c/s

20422.01

5.39

SQL 2000

Win 2000 Server

10.01.01

IBM

IBM e(logo) xSeries 250 c/s

15533.72

4.67

SQL Server 2000 SE

Win 2000 Server

11.05.01

IBM

IBM e(logo) xSeries 220 c/s

12009.46

3.52

SQL Server 2000 SE

Win 2000 Server

06.03.02

IBM

IBM eServer xSeries 225/2.4Ghz/1P

18077.98

2.79

SQL Server 2000 SE SP3

Win 2000 Server SP2

12.04.02

Dell

PowerEdge 2650/2.4/1P

16756.52

2.78

SQL Server 2000 SE

Win 2000 Server

09.11.02

HP

HP ProLiant ML350G3-1P

19526.27

2.47

SQL Server 2000

Win Server 2003

05.12.03

 


Copyright © 1994-2016 ООО "К-Пресс"