Технический анализ

Новый эталонный тест PC Week Labs вскрывает кучу проблем с Java

Тимоти Дик (для PC Week Labs)    

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

Стандартизованных эталонных тестов для серверов приложений все еще не существует, поэтому мы разработали собственный тест на базе Java 1.1, чтобы испытать производительность этих продуктов по трем критическим направлениям: выполнение конкретной бизнес-логики, связанной с манипулированием данными БД (это, например, проверка наличия товара, генерация заказа клиента и т. д.), генерация отформатированных отчетов по БД и формирование динамических Web-страниц, пусть даже и без обращений к БД.

Тестировались два продукта - Sapphire/Web 5.0 фирмы Bluestone Software и Netscape Application Server (NAS) 2.1 корпорации Netscape Communications.

Мы хотели испытать еще один конкурирующий сервер - NetDynamics 4.0, но его производитель фирма NetDynamics не смогла принять участие в наших тестах.

Для тестирования обоих серверов приложений использовались 60 клиентских машин с процессорами Pentium и Pentium Pro корпорации Intel, два четырехпроцессорных (на базе 200 МГц Pentium Pro) сервера ProLiant корпорации Compaq Computer и восьмипроцессорный (250 МГц UltraSPARC) сервер Ultra Enterprise 4000 фирмы Sun Microsystems. Оба сервера приложений тестировались на нагрузке, соответствующей одновременной работе 256 пользователей, - достаточно высокой для того, чтобы достичь устойчивой стопроцентной загрузки процессоров всех тестируемых компьютеров.

Когда “пыль осела” и мы занялись анализом полученных данных, то выяснилось, что под Windows NT сервер Sapphire/Web показал лучшие результаты, чем Netscape Application Server на той же аппаратуре - по количественным показателям он превзошел сервер Netscape на 50 - 100%.

Последний, однако, продемонстрировал прекрасные результаты под Solaris, в том числе феноменальную пиковую скорость в 250 страниц в секунду (или по 4 миллисекунды на страницу) при тестировании динамических Web-страниц (HTML-потоков). В целом мы обнаружили, что Netscape Application Server гораздо лучше приспособлен для работы под Solaris, нежели под NT.

Пытались мы тестировать под Solaris и Sapphire/Web, но последний бета-код, который у нас имелся, оказался недостаточно устойчивым для того, чтобы выдержать тестовые прогоны до конца (версия Sapphire/Web для NT у нас была уже окончательной). Мы не смогли разобраться в причинах затруднений, но представители Bluestone позже проинформировали нас о том, что им в своей лаборатории удалось прогнать промышленную версию для Solaris на наших тестах и никаких проблем при этом не возникало.

Sapphire/Web великолепен под NT, но в среде Solaris впереди оказался NAS

Гладкая масштабируемость

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

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

Тестирование на HTML-потоки, в которых обращений к СУБД вообще не было, позволило получить весьма интересные данные для сравнения машинных архитектур. Производительность пары работающих в связке серверов ProLiant составила примерно 60% от производительности сервера Sun Ultra, однако учитывая, что каждый из них стоит $38 000, а Ultra - $210 000, стоимость этой пары составила всего лишь около 36% от стоимости Ultra - так что производительность в расчете на один доллар у них почти вдвое выше.

Не меньший интерес представляют полученные нами данные о производительности Java. Виртуальная машина (VM) Java корпорации Microsoft продемонстрировала не только почти в два раза большую производительность, чем машина JavaSoft, но и оказалась значительно стабильнее: в течение 90-минутного теста она отказывала всего один-два раза, в то время как JavaSoft VM зависал 20 - 30 раз.

Однако даже несколько отказов в час неприемлемы для приложений, критически важных для бизнеса. Мы считаем, что виртуальные машины Java и Java-драйверы СУБД пока что просто не готовы удовлетворять потребности промышленных сред, характеризующихся высокой нагрузкой.

Расширенную версию этого технического анализа можно найти по адресу: www.pcweek.com/reviews/0622/22app.html.

С внештатным редактором Тимоти Диком можно связаться по адресу: tim@journalist.com.