Статья только в электронной версии журнала
Суровые испытания для серверов приложений
В эталонных тестах на производительность Sapphire/Web далеко оторвался от WebObjects и Hahtsite
Тимоти Дик (для PC Week Labs)
Серверы приложений давно уже превратились в основной элемент корпоративных вычислительных систем, однако сравнить их характеристики и выбрать именно ту систему, которая более всего подходит для вашей организации, становится все сложнее. Число производителей подобных продуктов постоянно растет, и каждый хочет выделиться на общем фоне за счет создания разнообразных вспомогательных функций, хотя ключевой характеристикой сервера приложений по-прежнему остается производительность, и если она не отвечает предъявляемым требованиям, рискует весь электронный бизнес компании.
Чтобы помочь читателям сделать правильный выбор, Тестовый центр PC Week Labs провел сравнительную оценку нескольких серверов приложений. В эту часть обзора включены результаты, полученные для WebObjects 4.01 фирмы Apple Computer, Sapphire/Web 5.1.2 фирмы Bluestone Software и Hahtsite 4.0 фирмы Haht Software. В ходе тестирования мы испытывали каждый продукт на пределе его возможностей. Справиться с такой задачей нам помог комплект эталонных приложений, разработанный фирмой Doculabs, специализирующейся в области анализа ПО.
Публикацию результатов экспертизы мы вскоре продолжим. Во вторую часть обзора будут включены данные еще по четырем серверам приложений: WebSphere корпорации IBM, Netscape Application Server корпорации Netscape Communications, Apptivity корпорации Progress Software и Enterprise Application Server фирмы Sybase. Столь широкий охват новых продуктов призван дать четкое представление о состоянии рынка серверов приложений и помочь компаниям в совершенствовании или анализе своих электронных бизнес-процессов.
Эталонный тест @Bench фирмы Doculabs представляет собой полномасштабное приложение электронной коммерции, дополненное имитатором тысяч отдельных пользователей и колоссальной серверной базой данных на 12,5 млн. строк. С его помощью можно устроить серверу Web-приложений “допрос с пристрастием”, проверив производительность, масштабируемость и отказоустойчивость. @Bench выполнен в виде онлайнового книжного магазина под названием Nile.com, где посетители могут просматривать книги, вести поиск в базе данных, пользоваться тележками для покупок и оплачивать приобретенные книги с помощью кредитных карточек.
Серверы приложений, включенные в первую часть обзора, сильно отличаются друг от друга по производительности. Явный лидер среди них - Sapphire/Web фирмы Bluestone, намного опередивший своих соперников по скорости работы. К тому же он оказался наиболее отказоустойчивым. Мы можем смело рекомендовать этот продукт для развертывания важнейших приложений электронной коммерции.
Самый медленный сервер выпускается фирмой Hahtsite: его производительность примерно вдвое ниже, чем у Sapphire/Web. Однако Haht Software оснастила свое детище наиболее удобным инструментарием разработки. Hahtsite отлично подойдет компаниям, занимающимся моделированием систем либо развертыванием приложений небольшого и среднего масштаба, особенно в своих интрасетях.
WebObjects несколько обошел по скорости работы Hahtsite, но отстал от Sapphire/Web. Он к тому же снабжен тщательно проработанным интерфейсом прикладного программирования, который станет настоящей находкой для разработчиков объектно-ориентированных приложений. Лучшая область его применения - интрасети и слабозагруженные узлы экстрасетей.
В комплект @Bench входят три тестовых пакета: ПО измерения производительности, масштабируемости и отказоустойчивости.
Первая часть теста на производительность позволяет определить, как быстро сервер генерирует динамические страницы и сколько времени требуется ему, чтобы отреагировать на запрос каждого клиента. Этот тест в полной мере демонстрирует все возможности сервера, так как в его ходе клиентские запросы поступают на серверный кластер с максимальной скоростью, которую тот способен поддерживать.
Sapphire/Web быстро генерирует страницы
Постепенно повышая количество одновременно подключенных пользователей, мы смогли определить пиковую производительность каждого из серверов приложений (см. график 1) и время, в течение которого пользователям приходится ждать заказанной страницы при увеличении нагрузки (см. график 2). Проведение теста прекращалось, когда среднее время ожидания страницы превышало 3 с (большую задержку мы считаем просто неприемлемой).
Минимизация времени отклика
В ходе второй части теста на производительность анализировалась работа сервера при подключении к нему большего количества пользователей, направляющих запросы не столь часто, как в предыдущем случае. С этой целью мы изменяли паузу между запросами, генерируемыми каждым из пользователей, в диапазоне от 0 до 6 с.
Проведя корреляцию результатов производительности, полученных в ходе тестов как с ожиданием, так и без него, мы определили коэффициент масштабирования пользовательской нагрузки (user-load scaling factor). Этот параметр показывает степень масштабируемости сервера приложений при одновременном обслуживании множества подключенных пользователей. Умножив данный коэффициент на наибольшее количество пользователей, которое способен обслуживать сервер в режиме с нулевым временем ожидания (при том, что время генерации страниц не превышает 3 с), мы определили предельные возможности каждого сервера приложений по обслуживанию пользователей (эти данные представлены на графике 3).
Масштабирование помогает справляться с большими нагрузками
Для проведения теста на масштабируемость были использованы три компьютера фирмы Sun Microsystems - один Ultra Enterprise 450 с четырьмя центральными процессорами и два двухпроцессорных Ultra 2. Тесты с нулевым временем ожидания повторялись по нескольку раз: на Ultra 450 при включении только одного процессора, на Ultra 450 при включении двух процессоров, на всех трех серверах с включением двух процессоров на каждом и на всех трех серверах при включении всех установленных на них процессоров (в общей сложности восемь ЦП).
И, наконец, был проведен крайне жесткий тест на отказоустойчивость. Собрав все серверы приложений в кластер и подав на них максимально допустимую нагрузку, мы отключили от сети сразу два сервера Ultra 2. После этого оставалось только проследить, как оставшийся сервер справлялся с восстановлением работоспособности системы после внезапной утраты половины вычислительных ресурсов и как это сказывалось на работе подключенных пользователей.
WebObjects 4.01 фирмы Apple
WebObjects появился на рынке одним из первых и очень быстро завоевал репутацию зрелого, в полной мере объектно-ориентированного (хотя и довольно консервативного) продукта.
Он допускает разработку серверных приложений на трех языках: Java, Objective-C (объектно-ориентированная версия Си), а также на собственном интерпретируемом языке сценариев под названием WebScript. Для создания узла Nile.com фирма Apple предпочла язык Objective-C, обеспечивающий наибольшую скорость работы.
Таким образом, при проведении экспертизы WebObjects был единственным сервером, который использовал язык Си (в Sapphire/Web применялся Java, а Hahtsite полагался на свой собственный язык Hahttalk Basic). Тем не менее сервер приложений Apple смог показать лишь средние результаты. По числу генерируемых в секунду страниц - 612 - он занял промежуточное положение между Sapphire/Web и Hahtsite, а трехсекундный предел ожидания был достигнут при тысяче одновременно работающих пользователей.
WebObjects постоянно хранит базу данных состояния и сеанс в ОЗУ, что позволяет ему отлично справляться с большой нагрузкой. Этот подход обеспечил продукту Apple наивысший коэффициент масштабирования пользовательской нагрузки - 20,5. Умножив его на максимальное количество одновременно работающих пользователей, мы определили, что сервер способен обслуживать до 20,5 тыс. клиентов - весьма неплохой результат.
Правда, из соображений производительности Apple не включила в свой продукт вторичную базу данных состояния (такая возможность имеется, но чтобы воспользоваться ею, потребителю придется самому заняться программированием). Недостатки подобного подхода в полной мере проявились при проверке отказоустойчивости системы. Когда мы отключили от сети два сервера, все пользователи, обслуживавшиеся ими, полностью потеряли уже отобранные книги.
WebObjects использует простой алгоритм балансировки нагрузки, в основу которого положена случайная выборка данных, однако это не помешало ему показать отличные результаты в тесте на масштабируемость. Общий коэффициент масштабируемости здесь составил 0,92, т. е. оказался выше, чем у Hahtsite, но чуть ниже, чем у Sapphire/Web.
Сервер приложений WebObjects выпускается для сред Solaris, HP-UX, Windows NT и Mac OS X Server (последний включает в себя версию WebObjects для рабочих групп). Начальная цена продукта составляет $7500, а инсталляционную его версию с ограниченными возможностями можно приобрести за $1499.
Sapphire/Web 5.1.2 фирмы Bluestone
В эталонных тестах на производительность, которые PC Week Labs проводил в 1998 г., Sapphire/Web обошел всех своих конкурентов. С тех пор этот сервер приложений стал еще лучше. Качество работы программистов Bluestone, отлично освоивших язык Java, особенно наглядно проявилось на сравнительных испытаниях этого года: Sapphire/Web далеко оторвался и от своих новых соперников.
В тестах на производительность Sapphire/Web почти вдвое превзошел Hahtsite и в полтора раза - WebObjects. Столь высокий результат, честно говоря, удивил нас, ведь Bluestone создала узел Nile.com на языке Java (хотя могла это сделать и на более быстром языке Си, использовавшемся в WebObjects). Высокую производительность Sapphire/Web мы связываем в первую очередь с архитектурой этого сервера приложений и теми успехами, которых удалось добиться Sun в оптимизации своей виртуальной машины Java. При проведении сравнительных испытаний Sapphire/Web запускался на Sun 1.2 Java Virtual Machine.
Sapphire/Web показал и наилучшее время отклика - трехсекундный предел ожидания здесь был достигнут, когда число пользователей Nile.com возросло до 1,5 тыс. Таким образом, сервер Bluestone способен обслуживать в полтора раза больше клиентов, чем WebObjects или Hahtsite.
Sapphire/Web продемонстрировал также самые богатые возможности управления состоянием и сеансом. Здесь для хранения информации, нужной для управления состоянием, используется не только база данных в памяти, но и вторичные резервные хранилища. Эталонные тесты проводились как с зеркалированием состояния, так и без него. При этом изменение общей производительности не превышало 1%, что свидетельствует о весьма эффективной архитектуре. Коэффициент масштабирования пользовательской нагрузки Sapphire/Web оказался несколько ниже, чем у WebObjects, и составил всего 17. Но нельзя забывать, что с сервером Bluestone одновременно может работать до 1,5 тыс. пользователей, а умножение этих показателей дает цифру 22 500 - наивысшую предельную пользовательскую нагрузку для всех описываемых продуктов.
Sapphire/Web продемонстрировал и самый высокий коэффициент масштабируемости - 0,93, превзойдя по этому показателю (хотя и не намного) даже WebObjects.
В отличие от Apple, фирма Bluestone решила запускать свой сервер приложений с включенной функцией зеркалирования состояния. Достоинства такого подхода в полной мере проявились, когда мы приступили к тестированию продуктов на отказоустойчивость. Здесь Sapphire/Web воистину не имел себе равных: даже после отключения двух серверов кластера ни один сеанс связи с пользователями не прервался. Единственный оставшийся работоспособным сервер совершенно прозрачно извлек необходимую для их обслуживания информацию из резервной базы данных. А когда “отказавшие” серверы были вновь подсоединены к сети, они без каких-либо проблем сразу же включились в работу кластера.
Мы собираемся вновь повторить этот эксперимент после того, как завершим тестирование остальных четырех серверов приложений, но как бы Sapphire/Web ни выглядел на их фоне, совершенно ясно: его производительность воистину впечатляет.
В Sapphire/Web воплощены самые современные разработки в области Java, поэтому он в полной мере поддерживает едва ли не все основополагающие стандарты разработки Интернет-приложений.
Немало внимания Bluestone уделила и вопросам управления, которые были слабым местом прежних версий ее серверов приложений. Чтобы избавиться от этого недостатка, разработчики оснастили Sapphire/Web полнофункциональным добавочным средством мониторинга и составления отчетов Sapphire/Application Manager, работающим в реальном масштабе времени. С этим сервером приложений можно использовать и другие инструментальные программы управления в масштабе предприятия, предлагаемые сторонними производителями.
Самый серьезный недостаток Sapphire/Web - малопривлекательный комплект визуальных средств разработки. Мы не нашли ни HTML-редактора, способного работать в режиме WYSIWYG, ни средств создания Java-клиентов, ни отладчика.
Sapphire/Web может функционировать на основных Unix-платформах, в средах Windows NT, OS/390 и OS/400. Начальная цена этого программного сервера приложений составляет $25 000. Она покрывает 2 млн. запросов на страницы в год и три рабочих места разработчика. Предусмотрена и альтернативная схема оплаты - по $20 000 за каждый ЦП.
Hahtsite 4.0 фирмы Haht
Hahtsite 4.0, как и его соперники, поддерживает несколько языков программирования. Он позволяет разрабатывать проекты не только на собственном языке Hahttalk Basic, но и на Java. Эталонный узел Nile.com, необходимый для тестирования, фирма Haht создала на базе Hahttalk Basic.
Hahtsite выгодно отличается от своих соперников отлично выполненным инструментарием разработки, однако его производительность оказалась самой низкой. Максимальная пропускная способность Hahtsite при работе всех трех аппаратных серверов кластера не превышала 373 страницы в секунду, т. е., была почти вдвое меньше, чем у Sapphire/Web. Не может Hahtsite похвалиться и быстротой отклика - трехсекундный предел задержки был достигнут, когда к серверу подключилось всего 980 пользователей. Конечно, такие показатели вполне приемлемы для приложений, которые используются не слишком активно, но для перегруженных узлов расширенной интрасети этого явно недостаточно.
При управлении состоянием и сеансами сервер Haht также создавал большую, чем его конкуренты, дополнительную нагрузку. В результате коэффициент масштабирования пользовательской нагрузки для него составил всего 9. Напомним, что при работе на тех же аппаратных средствах WebObjects и Sapphire/Web выдерживали почти в два раза более высокую пользовательскую нагрузку. То же можно сказать и о предельном количестве одновременно работающих пользователей. Для Hahtsite этот показатель, полученный умножением коэффициента масштабирования пользовательской нагрузки на максимально допустимое число одновременно работающих пользователей, составил только 8820, т. е. опять же в два с лишним раза меньше, чем у каждого из его соперников.
Правда, Hahtsite показал неплохой коэффициент масштабирования - 0,89. Конечно, он несколько ниже, чем у других проверенных серверов, но в абсолютных цифрах вполне достаточный. При тестировании на отказоустойчивость Hahtsite потерял всю информацию о сеансах пользователей, которая хранилась на двух отключенных серверах. Возможность создания резервных баз данных состояния здесь не предусмотрена, поэтому решить такую проблему можно единственным путем - разработав собственную программу обработки состояния.
Из достоинств Hahtsite можно отметить включение в комплект удобных расширений для среды предприятия (в том числе и средств SNMP-управления), новую и более гибкую систему безопасности, а также поддержку CORBA (Common Object Request Broker Architecture - общая архитектура посредника запросов к объектам) для объектов Java. Нельзя забывать и о том, что Haht Software постоянно расширяет свою линию комплексных Web-приложений, предназначенных для работы с R/3 фирмы SAP. Это альтернативное направление деятельности фирмы может оказаться весьма многообещающим.
Hahtsite 4.0 устанавливается на платформах Solaris, HP-UX, AIX и Windows NT; начальная цена составляет $7500.
Компания SilverStream Software также предложила нам провести тестирование ее одноименного сервера приложений, однако возникшие у нас проблемы с аппаратными средствами не позволили уложиться в указанные фирмой сроки. К участию в сравнительном тестировании была приглашена и корпорация Microsoft, но это предложение было ею отклонено.
Сразу же после завершения полной программы сравнительного тестирования фирма Doculabs опубликует подробный отчет о его результатах с приложением всех полученных данных и их анализа.
С внештатным редактором Тимоти Диком можно связаться по адресу: timothy_dyck@dyck.org.
Табло результатов: Web-серверы приложений
WebObjects 4.01
Резюме: WebObjects предлагает пользователю богатый инструментарий разработки, хорошую производительность и масштабируемость, а также широкий набор встроенных средств подключения к данным в масштабе предприятия. Однако эффективно применять все эти компоненты сможет лишь достаточно опытный разработчик. Еще труднее создать отказоустойчивые кластеры на базе этого сервера, так как решение подобной задачи предполагает гораздо больший объем программирования, чем для других подобных пакетов.
Фирма Apple Computer, Купертино, шт. Калифорния, (408) 996-1010, www.apple.com/webobjects.
Sapphire/Web 5.1.2
Резюме: Sapphire/Web отличается наивысшей производительностью, наилучшим временем отклика и высочайшей гибкостью. По этим показателям он не имеет себе равных среди серверов приложений, когда-либо проходивших тестирование в PC Week Labs. Кроме того, продукт Bluestone обеспечивает самый высокий уровень отказоустойчивости. Отсутствие каких-либо компромиссов, отличная поддержка языка Java (при возможности использования языка Си), полная серверная интеграция, новый инструментарий управления - все это выводит Sapphire/Web в явные лидеры переполненного сегмента рынка. Ахиллесова пята сервера - слабость включенного в него инструментария разработки.
Фирма Bluestone Software, Маунт-Лорел, шт. Нью-Джерси, (609) 727-4600, www.bluestone.com.
Hahsite 4.0
Резюме: Hahsite снабжен хорошо продуманным и простым в использовании инструментарием разработки, однако по сравнению со своими соперниками слишком медлителен, потребляет много ресурсов и не обеспечивает такого же уровня отказоустойчивости. Этот сервер приложений лучше всего подойдет тем компаниям, где нет профессиональных программистов, а также организациям, специализирующимся в создании прототипов приложений. Всем же другим пользователям мы рекомендуем выбрать какой-либо другой продукт из имеющихся на рынке.
Фирма Haht Software, Рейли, шт. Сев. Каролина, (919) 786-5100, www.haht.com.
ПОЯСНЕНИЕ КАТЕГОРИЙ Серверная интеграция: способность интегрироваться с различными серверными источниками данных, т. е. не только с реляционными базами данных, но и с серверами электронной почты, файлов, каталогов, электронной коммерции, а также с мониторами транзакций, очередей сообщений и средствами планирования ресурсов предприятия. Инструментарий разработки: качество, законченность и производительность всех клиентских инструментальных программ разработки HTML- и Java-приложений, включая такие компоненты (если они есть), как редактор, отладчик, система управления исходными текстами. Простота использования: насколько быстро начинающие пользователи могут освоить продукт, а также уровень подготовки программистов, необходимый для разработки приложений для данного сервера. Отказоустойчивость: способность сервера приложений защитить подключенных к нему пользователей в случае нарушения бизнес-логики или сбоев в программе работы сервера приложений, сетевых или серверных аппаратных средств. Управляемость: трудоемкость сопровождения, мониторинга и настройки продукта при его непрерывной эксплуатации, особенно в распределенных или кластерных конфигурациях; при этом принимается во внимание качество входящих в комплект инструментальных средств администрирования, развертывания и контроля за работой; совершенство функций обеспечения безопасности; возможность пересылки сигналов тревоги на системы управления масштаба предприятия. Масштабируемость: уровень снижения производительности сервера при повышении рабочей нагрузки или количества подключенных к нему пользователей; дополнительная нагрузка, создаваемая программными компонентами при увеличении числа центральных процессоров на аппаратном сервере или компьютеров в кластере. Производительность: максимальное количество Web-страниц, генерируемых сервером при заданных критериях качества обслуживания и скорость их генерации.