Оценка производительности различных платформ, работающих с протоколом HTTP без сомнения актуальна. Это обстоятельство способствовало созданию нового теста, который позволяет оценить возможности конфигураций, предлагаемых различными производителями и работающих с конкретными программами. Интегральный тест WebSTONE - одна из первых попыток дать объективную оценку аппаратуры, программного обеспечения и выбранной для работы с сетью дисциплины взаимодействия. В статье приводится описание теста и анализируется его применимость для оценки существующих и вновь разрабатываемых систем.
Несмотря на то, что Internet существует уже более двадцати лет, до сих пор отсутствовали какие-либо методики оценки эффективности организации доступа к информации, особенно для непрофессионалов в области сетевых коммуникаций. Однако сегодня, благодаря протоколу HTTP [1], появилась возможность отслеживать трафик и маршрут информации, проходящей по сети. Чтобы сопоставить множество типов программных сетевых серверов и множество альтернативных аппаратных платформ, необходим универсальный механизм оценки. Тестовая методика WebSTONE представляет собой одно из первых средств оценки эффективности работы конкретного оборудования и конкретного программного обеспечения при работе с протоколом HTTP. Как и любой новый тест, WebSTONE неизбежно должен пройти стадии утверждения и пробного использования компьютерным сообществом, в результате чего, безусловно, будут внесены изменения и дополнения.
По своему функциональному назначению "паутина" WWW во многом напоминает NFS, для оценки эффективности работы которой существует тест LADDIS. К сожалению, адаптация этого тестового набора к конкретной архитектуре часто оказывается весьма проблематичной. Тест WebSTONE более точно отражает специфику работы с глобальными сетями с многократными переключениями, коррекциями ошибок, переадресациями и т.п. Данный тест способен моделировать разнородную среду, в которой работают одновременно множество клиентов, порождающих разнообразных потомков, также способных запрашивать информацию от серверов.
Шкала ценностей WebStone
Тест предоставляет инструмент измерения загрузки серверов в зависимости от режима работы клиентов, формирующих HTTP-трафик. Предусмотрены четыре смеси, моделирующие различные конфигурации подключения Web-сервера. Первая смесь - общий набор, использующийся для моделирования наиболее распространенного на сегодняшний день способа подключения к сети через модем. Файлы данной смеси содержат небольшие, обычно текстовые, страницы размером не более 20 Кбайт, для передачи которых по модему со скоростью 14.4 Кбит/с требуется не очень много времени.
Вторая смесь используется для моделирования работы клиентов локальной сети. Размер файлов в данной смеси колеблется от 1 до 100 Кбайт.
Третий тестовый набор представляет собой массив информации мультимедиа, использующий для своей обработки все ресурсы тестируемой системы. Файлы этого набора - MPEG и Quicktime, aiff, звуковые клипы и большие графические файлы. Размер таких файлов изменяется от 20 килобайт до нескольких мегабайт.
В четвертом наборе объединены первый и третий.
Главными метриками WebStone являются пропускная способность, измеряемая в байтах в секунду, и латентность - время, необходимое для выполнения запроса. Кроме этого, WebStone содержит информацию о количестве страниц в минуту, среднем числе соединений и другую информацию, позволяющую провести более точную оценку качества конфигурации и выявить ее узкие места. Пропускная способность измеряется как для всей системы в целом, так и по каждому клиенту в отдельности; в обоих случаях она усредняется за все время проведения тестирования. Различают два типа латентности: время соединения и время запроса. Первое показывает продолжительность установки соединения, а второе - временные затраты на непосредственную передачу данных.
В WebStone включена также метрика Little Law, показывающая, сколько времени затрачивается сервером на выполнение полезной работы по обработке запроса, а не на посторонние действия типа коррекции ошибок или разнообразные вспомогательные операции. В идеальном случае этот показатель прямо пропорционален числу клиентских процессов.
Если сервер Web оказывается загружен сверх нормы, происходит массированный выброс ошибочных сообщений, свидетельствующих о том, что запросы клиента не могут быть обработаны в течение отпущенного им временного интервала. Фактически, этот формируемый WebStone, показатель дает представление об уровне максимальной загрузки для данного конкретного сервера.
Измерение производительности сервера
Тест WebSTONE достаточно просто настраивается для получения оценок следующих параметров работы сервера:
- среднее и максимальное время соединения;
- среднее и максимальное время отклика;
- пропускная способность;
- количество обработанных страниц;
- число открытых файлов.
Основная задача теста - оценить, насколько быстро и без ошибок обслуживается установленное множество клиентов, вплоть до максимально возможного для конкретной конфигурации. Программы, реализующие WebSTONE, организуют передачу запросов серверу по протоколу HTTP и обрабатывают данные по мере их поступления. Поскольку тест ориентирован на оценку работы программного и аппаратного обеспечения сервера, производительность броузеров или приложений клиента им никак не учитывается.
Структура теста WebSTONE
На Рис. 1 представлена архитектура теста WebStone. Работа потомков - Webchildren контролируется программой WebMASTER, отвечающей также за управление всем ходом тестирования. Как видно из Рис. 1 все четыре потомка работают на одной локальной сети, а сама программа WebMASTER размещается на отдельном сегменте, независимо от потомков, и может функционировать как на одном компьютере вместе с клиентом, так и на отдельной машине. Собственно говоря, при определении режима функционирования теста может задаваться произвольная конфигурация.
Рисунок 1.
Архитектура теста WebStone.
Однако в случае размещения WebMASTER на отдельном компьютере позволяет получить необходимую гибкость при моделировании всевозможных конфигураций подключения клиентов.
Как уже можно было заметить, WebSTONE является распределенным тестом, работающим со многими процессами, когда главный процесс или WebMASTER и считывает файл конфигурации клиента, и выполняет необходимые функции. Затем WebMASTER формирует командные последовательности для каждого потомка - Webchildren - и инициирует их. Каждый потомок, в свою очередь, читает команду, устанавливает связь с WebMASTER и выполняет последовательность действий, предусмотренных в тестовом наборе. После завершения работы каждого потомка вызывается WebMASTER с функцией сбора данных от каждого клиента и формирования отчета. В процессе работы каждый Webchildren является независимым как от других потомков, так и от WebMASTER.
Параметры настройки теста
Одна из главных особенностей теста WebSTONE - его гибкость, позволяющая моделировать произвольные конфигурации и имитировать работу с различными узлами. При выполнении стандартной тестовой смеси, содержащейся в одном из файлов WebStone, можно получить показатель общей производительности конфигурации. В качестве параметров настройки теста можно использовать следующие:
- продолжительность выполнения теста;
- число повторений;
- количество тестовых файлов;
- число страниц;
- опции программного и аппаратного обеспечения сервера;
- количество потомков;
- количество сетей;
- число клиентов;
- загрузка страниц;
- ведение журнала;
- отладка.
Продолжительность выполнения теста задается в минутах. Максимальное время определяется числом потомков и емкостью памяти, выделяемой для каждого клиента.
Многократное повторение теста позволяет устранить элемент случайности, неизбежный при работе в сети, и выявить устойчивые закономерности.
Существует два различных способа чтения тестовых файлов: непосредственное считывание с диска и указание UIL. Файл конфигурации "filelist" содержит перечень страниц и файлов, предназначенных для тестирования. В текущей реализации теста существует ограничение в 50 файлов на одну страницу.
Количество страниц, представляющих собой документ в формате HTML (текст, картинки в форматах GIF или JPEG), задается при формировании тестируемой конфигурации, максимально приближенной к реальной. Обычно страницы, подобранные в тестовом файле, являются типичными страницами Web, используемыми на наиболее распространенных узлах WWW (см. Врезку 2).
При описании операционного окружения для работы теста необходимо задать конфигурацию программ и аппаратуры, что позволяет имитировать различные реальные сетевые комплексы. Варьируя параметры и анализируя результаты тестирования, можно выявить оптимальные параметры для решения данной конкретной задачи. Для каждого клиента можно задавать число потомков Webchildren, страниц или файлов, загружаемых с сервера.
В реальной жизни могут встречаться несколько сетей, управляемых одним сервером, - для имитации такой ситуации достаточно задать параметр "количество сетей", не заботясь об именовании серверных узлов и организации потоков клиентов.
В тесте WebSTONE можно задавать число клиентов и их потомков, что позволяет имитировать различные режимы использования ресурсов, необходимых для работы каждого клиента и собственно процесса WebMASTER. При варьировании значения данного параметра можно моделировать клинчевые ситуации, когда слишком много потомков одновременно запрашивают один и тот же ресурс.
Каждая страница в тестовом наборе WebSTONE обладает весом, задающим активность использования страницы, - чем выше вес, тем чаще будет осуществляться обращение к данной странице.
Иногда для более подробного анализа работы клиента требуется точный протокол его работы, который не включается в результирующий отчет, формируемый процессом WebMaster, а используется отдельно. Для задания такого режима используется параметр logging.
В отдельных случаях не удается с первого раза установить соединение между клиентом и сервером, а также проследить причины возникновения различных сбоев. В качестве инструмента для решения этих проблем можно использовать режим отладки, после включения которого заголовок каждого поступающего сообщения HTTP будет выводится на экран.
ПОРЯДОК ИСПОЛЬЗОВАНИЯ ТЕСТА WEBSTONE |
Для практического использования теста необходимо выполнить следующие
шаги: установить конфигурацию, загрузить WebStone на webmaster, установить
режим тестирования, обеспечить загрузку тестовых файлов, запустить программу
выполнения теста, сохранить результаты.
Задание тестовой конфигурации. Тестируемая конфигурация должна состоять не менее чем из двух компьютеров, соединенных сетью. Первая является сервером Web, в качестве которого может выступать любой программный сервер, поддерживающий протокол HTTP 1.0. Необходимо иметь webmaster, а также на этой или другой машине один или несколько клиентов Web - обычно это Unix-узлы. Например, на одной станции Indy с 32 Мбайт памяти может спокойно работать до 120 клиентов вместе с webmaster. Далее необходимо определить порядок взаимодействия между webmaster и клиентами, каждый из которых должен быть сконфигурирован так, чтобы webmaster мог перезапускать на них программу WebStone. Обычно для этого достаточно использовать раздел "guest". Также полезно, чтобы суперпользователь имел возможность управлять работой клиентов и Web-сервера, что можно достигнуть, установив файлы /.rhosts и /etc/host.equiv. Например: /.rhosts (для каждого клиента) webmaster root /etc/hosts/equiv (для каждого клиента) webmaster Для использования WebStone webmaster должен быть укомплектован компилятором Си, Perl, awk и Web-browser. Можно также установить одну из свободнораспространяемых программ репрезентативной графики, например GnuPlot. После подключения через сеть всех субъектов тестируемой конфигурации (клиентов, webmaster и web-сервера) необходимо загрузить программу просмотра Web (browser) на один из клиентов и инициировать логическое подключение к Web-серверу. Для загрузки программы WebStone необходимо скопировать ее на webmaster, а если в качестве ОС используется на SGI IRIX 5.3 то скомпилировать заново. Далее ввести команды: webmaster webclient Для установки режима тестирования можно отредактировать скрипт conf/testbed, содержащий параметры выполнения теста. Например: ### Параметры клиента ITERATIONS="3" MINCLIENTS="8" MAXCLIENTS="128" CLIENTINCR="8" TIMEPERRUN="30" ### Параметры сервера SERVER="www" PORTNO=80SERVERINFO=hinvOSTUNINGFILES="/var/sysgen/master.d/bsd" WEBSERVERDIR="/usr/ns-home" WEBDOCDIR="$WEBSERVERDIR/docs" WEBSERVERTUNINGFILES="$WEBSERVERDIR/httpd-80/config/magnus.conf $WEBSERVER DIR/httpd-80/config/obj.conf" # Заведение пользователей с фиксированным паролем # для последующей перезагрузки CLIENTS="webstone1 webstone2 webstone3 webstone4 webstone5" CLIENTACCOUNT=guestCLIENTPASSWORD=guestCLIENTINFO=hinvTMPDIR=/tmp В результате такой установки тестируемая конфигурация будет иметь от 8 до 128 клиентов, число которых может увеличиваться на 8 за время работы 30 минут, а весь тест - три раза. Несколько итераций может потребоваться для устранения элемента случайности, а уже при трехкратном выполнении можно увидеть возникающие отклонения. В завершении установок были определены разделы для клиентов - в нашем случае это "guest" с общим паролем: guest. Как уже отмечалось, в основе теста WebStone лежит использование набора файлов, передаваемых от сервера к клиентам, поэтому в конфигурации необходимо указать список необходимых для тестирования файлов. Обычно используется стандартный набор файлов в формате html, созданных при вызове программы ./webstone -genfiles. Список файлов имеет следующий вид: #Silicon Surf model: pages and files to be tested for. 8 - всего наборов 40 2 - число страниц и файлов в наборе /file2k.html - имя файла /file3k.html . . . 4 4 /file8k.html /file9k.html /file10k.html /file11k.html . . . 1 1 /file200k.html Каждая страница содержит несколько запросов HTML - это блоки теста, изображения и т.п. Задача теста WebSTONE состоит в моделировании условий реальной загрузки путем формирования синтетических потоков, размещенных на различных узлах: Hotwired (http://www.hotwired.com), IUMA (http://www.iuma.com), Netscape Communications (http://www.netscape.com) и Silicon Graphics Silicon Surf (http://www.sgi.com). Для запуска теста достаточно ввести ./webstone Результаты каждого запуска будут сохранены в каталоге, имеющем имя типа "runs/950804_2304/run". Специальный скрипт wscollect служит для сбора результатов всех запусков и генерации таблицы по всем вариантам прогонов тестов: wscollect runs > runs.tabs Файл runs.tabs может далее использоваться в качестве основы для любого вида анализа: электронные таблицы, графики и т.п. Кроме этого, в тесте предусмотрен скрипт tabs2html, преобразующий таблицы в файл HTML 3.0: tabs2html runs.tabs > runs.html |
Примеры оценок
Для иллюстрации использования теста WebStone приведем данные, полученные при оценке трех систем: двухпроцессорный Sequent SYMMETRY 5000, SGI WebFORCE Challenge S и Sun Sparcserver 20, известный также под именем Netra i20.
ОСНОВНЫЕ ПОНЯТИЯ |
Клиенты. Один или несколько процессов, работающих с сервером.
Увеличивая число одновременно работающих клиентов можно выявить максимально
допустимую для каждого конкретного сервера конфигурацию.
Число соединений в секунду. Число успешных соединений TCP/IP, выполненных сервером за одну секунду при работе со всеми клиентами. Кроме собственно установления связи, в процедуру соединения входит передача подтверждающего сообщения, получение ответа и закрытие TCP/IP-соединения. Чем больше количество соединений, тем выше производительность конфигурации. Данная метрика непосредственно показывает, с какой скоростью сервер способен отвечать на новые запросы, одновременно завершая текущие. Единица измерений теста Webstone измеряется как 60 * Соединений/с. Число ошибок в секунду. Количество сбоев, произошедших в процессе взаимодействия сервера с клиентом, например: ошибка типа "Connection Refused", возникающая при попытке установить соединение TCP/IP, или несовпадение переданных и полученных данных. Чем меньше значение данной метрики, тем лучше и эффективнее работает конфигурация. Латентность. Среднее время, затрачиваемое на соединение клиента и сервера, а также обработку запроса. Чем меньше латентность, тем лучше. Little"s Law. Термин взят из теории очередей и обозначает отношение времени, затрачиваемого на посылку сообщения ко времени ожидания ответа. Чем ближе значение этого показателя к числу клиентов, обслуживаемых данным сервером, тем лучше его производительность. Пропускная способность. Суммарное количество мегабит в секунду, проходящих через всех клиентов. Чем выше пропускная способность, тем лучше производительность. |
На всех системах SGI и SUN был установлен сервер Netscape Server 1.1, а компьютер Sequent работал с Open Market WebServer 1.1. Каждый сервер был сконфигурирован в качестве единственного в сети, с одной сетевой платой и одним процессом на процессор. В качестве клиентов на всех трех системах работали процессы WebStone.
Результаты тестирования в числовой форме имели вид, представленный в таблице.
Ha Рисунках 2 и 3 в более наглядной форме представлены графики зависимости пропускной способности и количества соединений от числа клиентов, обслуживаемых каждым сервером.
Рисунок 2.
Зависимость пропускной способности от числа клиентов.
Рисунок 3.
Зависимость количества соединений от числа клиентов.
Конфигурации компаний Sequent и SGI по показателю достигаемой пропускной способности оказались примерно эквивалентны, где-то в два раза превышая показатели Netra i20.
Кроме графических и табличных результатов в состав отчета по тестированию может входить описание конфигурации типа:
1 150 MHZ IP22 Processor
FPU: MIPS R4010 Floating Point Chip Revision: 0.0
CPU: MIPS R4400 Processor Chip Revision: 5.0
On-board serial ports: 2
On-board bi-directional parallel port
Data cache size: 16 Kbytes
Instruction cache size: 16 Kbytes
Secondary unified instruction/data cache size: 1 Mbyte
Main memory size: 256 Mbytes
Integral ISDN: Basic Rate Interface unit 0, revision 1.
0XPI FDDI controller: xpi0, firmware version 9411032038, SAS
Integral Ethernet: ec3, version 1
Integral Ethernet: ec0, version 1
Integral SCSI controller 5: Version WD33C95A, differential, revision 0
Disk drive: unit 1 on SCSI controller 5
Integral SCSI controller 4: Version WD33C95A, differential, revision 0
Disk drive: unit 5 on SCSI controller 0
CDROM: unit 4 on SCSI controller 0
Возможна также следующая форма представления результатов, содержащая статистику по каждой странице:
Waiting for READY from 24 clients
All READYs received
Sending GO to all clients
All clients started at Tue Mar 7 01:33:16 1995
Waiting for clients completion
All clients ended at Tue Mar 7 01:43:41 1995
Page # 0
Total number of times page was hit 1888
Total time 1262.655230 seconds
Maximum Response time 1.758487
Total connect time for page 21.293520
Maximum time to connect 0.038234
Total amount of data moved 23199744
Page size 12288
Total number of connects 5664
Page #1
Total number of times page was hit 200
Total time 189.543349 seconds
Maximum Response time 1.750272
Total connect time for page 2.550292
Maximum time to connect 0.028744
Total amount of data moved 9625600
Page size 48128
Total number of connects 600
Примечание: ПС - пропускная способность |
Заключение
В тесте WebStone отсутствуют стоимостные оценки - как тут не вспомнить популярный AIM, наглядно демонстрирующий, в какие затраты выливается рост производительности. Весьма полезным будет включить в тест не только стоимость исходной конфигурации, но и, по аналогии с тестом TPC, затраты на эксплуатацию и модернизацию Web-сервера. В перспективе возможности WebStone будут расширены средствами поддержки proxy-серверов. Оставляет пока желать лучшего организация работы с транзакциями, активно использующими двоичные сценарии CG (Common Gate Interface). Оценка эффективности построения защиты и производительность работы с распределенными базами данных также входит в планы по дальнейшему совершенствованию теста WebStone.
Одновременно с началом использования WebStone рабочая группа SPEC SFS была расширена командой SGI WebStone, основная цель которой - доведение данного теста до уровня стандарта и выпуск отчетов SPEC Webperf.
Кроме WebStone, для проведения общего анализа эффективности работы Web можно также использовать программы: WebStat - сценарий анализа трафика, WebTap - анализатор работы сервера при взаимодействии с приложениями Java, WebTrac - анализатор Web, - позволяющие получить статистические оценки функционирования выбранной конфигурации.
Литература
[1] П.Храмцов. Формат HTTP. - "Computerworld Россия", #4, 1995.