![]() |
Технология Клиент-Сервер 2003'2 |
||||||
|
Павел Румянцев
Что представляют собой системы, построенные по архитектуре «клиент/сервер»? В подавляющем большинстве случаев этими системами являются системы обработки запросов к базам данных. Зачастую перед организациями, желающими автоматизировать свою деятельность, возникает огромное количество вопросов. Одним из ключевых вопросов является решение одной, и весьма непростой проблемы – оптимального выбора платформы для будущей системы.
Понятно, что ответ на такой вопрос нельзя принимать, ориентируясь на разрозненные материалы, публикуемые в прессе, заверения производителей, мнения коллег или собственное субъективное отношение к некоторой платформе или продукту. Ценой опрометчиво принятого решения могут быть огромные финансовые затраты и потерянное время. Обоснование такого решения нуждается в какой-то точке отсчета, то есть в результатах тестирования, подтвержденных независимыми источниками.
Аналогичные проблемы стоят и перед фирмами-разработчиками программного обеспечения. Насколько разработанная нашей фирмой программа лучше программы конкурентов? Или, наоборот, в чём мы проигрываем конкурентам? Что необходимо сделать для того, чтобы наша программа была лучшей?
Существует довольно много фирм, занимающихся публикацией тех или иных тестов производительности аппаратного и программного обеспечения. К сожалению, часто результаты этих тестов вызывают вполне обоснованное недоверие, особенно если в конце отчета написано "тестирование проведено по заказу такой-то компании".
Очевидно, что перед необходимостью принятия таких решений (или же обоснования своих притязаний) стояли производители и заказчики подобных систем в начале 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 |
Дата |
Кластер |
|
1 |
|
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 |
N |
2 |
|
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 |
Y |
3 |
|
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 |
N |
4 |
|
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 |
N |
5 |
|
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 |
Y |
6 |
|
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 |
N |
7 |
|
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 |
N |
8 |
|
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 |
N |
9 |
|
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 |
N |
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 |
N |
Таблица 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 |
Дата тестиров. |
Кластер |
|
1 |
|
HP ProLiant ML350G3-1P |
19,526 |
2.47 $ |
12 мая 2003 |
Microsoft SQL Server 2000 |
Microsoft Windows Server 2003 |
Microsoft COM+ |
12 мая 2003 |
N |
2 |
|
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 |
3 |
|
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 |
4 |
|
PowerEdge 2650/2.4/1P |
16,756 |
2.78 $ |
21 |
Microsoft SQL Server 2000 Standard Ed. |
Microsoft Windows 2000 Server |
Microsoft COM+ |
11 |
N |
5 |
|
IBM eServer xSeries 225/2.4Ghz/1P |
18,077 |
2.79 $ |
12 |
Microsoft SQL Server 2000 Standard Ed. SP3 |
Microsoft Windows 2000 Server SP2 |
Microsoft COM+ |
4 |
N |
6 |
|
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 |
N |
7 |
|
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 |
8 |
|
HP ProLiant DL380-G3 |
18,051 |
3.38 $ |
1 |
Microsoft SQL Server 2000 Standard Ed. SP3 |
Microsoft Windows Server 2003 Standard Edition |
Microsoft COM+ |
19 ноября 2002 |
N |
9 |
|
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 |
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 ООО "К-Пресс"