Научная статья на тему 'Производительность Internet-приложений поиска в данных MySQL и PostgreSQL'

Производительность Internet-приложений поиска в данных MySQL и PostgreSQL Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
133
24
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Точилин С.Д., Точилин Д.С.

На основе языков программирования Java и PHP разработаны серверные программы для поиска в данных СУБД, а также программа-тестер для измерения их производительности. С помощью созданных программ установлены закономерности изменения производительности Internet-приложений от объема обрабатываемой информации для СУБД MySQL и PostgreSQL.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Productivity of internet-applications of data search in the mysql and postgresql

On the basis of the Java and PHP programming languages server programs for data search in the DBMS and also program tester of their productivity are developed. With the help of the created programs the laws of productivity change of the Internet-applications are established, from volume of the processable information for MySQL DBMS and PostgreSQL DBMS.

Текст научной работы на тему «Производительность Internet-приложений поиска в данных MySQL и PostgreSQL»

VTTTr ПП4 Л") J да vui.-ri

С. Д. Точилин, Д.С. Точилин

ПРОИЗВОДИТЕЛЬНОСТЬ INTERNET-ПРИЛОЖЕНИЙ ПОИСКА В ДАННЫХ MYSQL И POSTGRESQL

На основ! мое програмування Java ma PHP розроблено cepeepúi програми для поъиуку в да-н-ах СКБД, а також програыа-тестер для euuipy ix продуктивности За допомогою створе-них прогрет установлено закономхрностi змти продуктивностг Intemet-dodamme eid обся-гу оброблюеаноХ шформаци для СКБД MySQL та PostgreSQL.

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

Особую роль в Internet играют программы доступа к данным, хранящимся на ее Web-узлах. При этом, согласно [1], запросы на поиск являются наиболее важным типом транзакций информационного Web-узла.

В этой связи актуальной является задача получения информации от Intemet-ариложений с максимальной оперативностью [I], которая, как правило, зависит от того, каким образом программно реализуется их серверная часть. К инструментам решения подобной задачи можно отнести программы определения производительности работы Internet-приложений - Apache JMeter, LoadRunner, PureLoad и др. [2]. Однако эти программы либо коммерческие, либо имеют достаточно сложный пользовательский интерфейс и занимают большой объем оперативкой памяти компьютера.

В этой связи наряду с задачей выбора программного обеспечения, реализующего сервер, серверные приложения и СУБД Web-узла, актуальной язляется также и задача выбора программы-тестера internet-приложения.

Постановка задачи. Для программного обеспечения Web-узлов, как правило, используют продукты Java и PHP-технологии. Программные продукты на языке Java обычно работают с сервером Apache Tomcat, а на PHP используют сервер Apache.

Как известно, сервер Apache является одним из наиболее распространенных и производительных Web-серверов [3], а к наиболее распространенным, производительным и совершенным СУБД относят MySQL и PostgreSQL [4-6]. При этом, разработчики Iníernet-приложений, как правило, придерживаются общепринятых традиций в выборе сервера и СУБД Web-узла.

Производительность Internet-приложений на основе Java-nporpaMM (серзлетов) и РНР-программ (PHP-страниц), работавших с различным объемом данных СУБД MySQL была исследована в работе [7]. Как выяснилось в ходе этих исследований, при. возрастании объема хранимой информации от 0.5 до 1.0 МБайт, производительность приложений на основе сервлетов возрастала. На каш взгляд, данный экспериментальный факт требует дополнительного изучения. Определенный интерес представляет также сопоставление производительности Internet-приложений при работе с СУБД MySQL и PostgreSQL при указанных выше объемах хранимой информации.

В настоящей работе была поставлена задача анализа производительности Internet-приложений поиска в данных СУБД MySQL и PostgreSQL, реализованных с использованием Java-nporpaMM (сервлетов) и РНР-программ (PHP-страниц), для определения оптимального программного обеспечения Web-узла, работающего с данными СУБД в объеме от 0 до 1.0 МБайт. В этих целях предполагалось также разработать программу-тестер с простым интерфейсом пользователя.

Результаты исследований и их обсуждение. Для решения поставленной задачи было разработано 4 варианта Web-систем, имевших одинаковую клиентскую часть и функционально подобные серверные программы, разработанные с использованием Java и PHP. Эти системы выполняли, используя минимальный объем программных средств, два алгоритма. Первый из них состоял из такой последовательности действий:

1. В клиентском приложении зафиксировать время начала работы WеЬ-системы.

2. Выполнить п.З-п.8 определенное число раз (значение числа определяет пользователь).

3. Сформировать запрос к Internet-приложению со случайным значением параметра (от 0 i до максимально возможного в данных поиска).

4. Отправить из клиентского приложения запрос.

5. В серверной программе получить параметр поиска из запроса клиента.

6. Осуществить выполнение SQL-запроса поиска в данных СУБД параметра из п.5.

7. Отправить результат поиска клиенту.

8. В клиентском приложении получить ответ Internet-приложения.

9. Зафиксировать время.

10. Определить полное время работы распределенной системы и сохранить его значение.

Второй алгоритм представлял собой сокращенную версию первого (без выполнения п.4-п.8).

Также были подготовлены объекты исследования, они представляли собой 2 базы данных (БД)

СУБД MySQL и PostgreSQL. Эти базы данных имели по 8 отношений (tbl - tb8), с одной и той же структурой полей (два поля - ключевое и данных), но различным объемом хранимой информации V, в которой осуществлялся поиск (от 125 КБайт до 1.0 МБайт, шаг - S25 КБайт).

Кроме того, в целях анализа производительности Intemet-приложений, мы создали компактную программу-тестер JTochno, имеющую простой интерфейс пользователя. Он состоял из пяти полей взода, трех кнопок и двух таблиц. Программа-тестер была написана на языке Java.

В тоже время, программное обеспечение, использованное в данной работе, представляло собой последние достижения PHP и Java-технологии (на момент написания статьи). Оно включало в себя: пакет PHP 5.2.11, сервер Apache Tomcat 6.0.20, набор Java-классов и утилит jdk 1.6.16, Java-драйверы доступа к СУБД - mysql-connector~java-5.1.10-bin.jar и postgresql-8.4-701.jdbc4.zip. Для исследований также использовались сервер Apache-2.2.14, СУБД MySQL-5.1.39 и PostgreSQL-8.4.1. Программы работали под управлением операционной системы Windows ХР (CPU - 2.7 ГГц, RAM - 1.0 ГБайт).

Согласно [1], для определения полного времени в выполнения запроса в распределенной Web-системе можно применять выражение:

в = $ + т,

где \ - время обдумывания пользователя (время формирования дежурного запроса), т - время отклика (время на выполнение запроса пользователя), т - характеризует производительность Internet-приложения [1].

В данной работе для определения времени отклика Internet-приложений поиска в данных СУБД предварительно на сервер Apache-2.2.14, который работал в связке с PHP 5.2.11, устанавливался комплект из PHP-программ поиска в таблицах tbl-tb8 БД СУБД MySQL и PostgreSQL. В тс же время, на сервер Apache Tomcat 6.0.20 устанавливался функционально подобный комплект Java-nporpaMM, после чего запускались серверы и программа-тестер.

В ходе измерений в программе ITochno сначала формировалась таблица "Request" с URL ínternet-приложений одного типа, которые работали со всеми отношениями определенной СУБД, а также максимальными значениями параметров поиска в них. Для этих целей использовались поля ввода "URL" и "Мах", а также кнопка "Enter" интерфейса пользователя. Затем в поля ввода "Name", "Repeat" взодились название параметра поиска и число обращений и к Intemet-приложенйю, соответственно. В наших исследованиях число обращений к каждому приложению было постоянным и равным 1000.

После нажатия на кнопку "Run" вначале осуществлялось измерение времени при n-кратном формировании запросов программы-тестера к Internet-приложениям, которые работали последовательно с таблицами от tbl до tb8 БД СУБД, без выполнения этих запросов. Потом программа-тестер осуществляла подобные измерения, но уже с выполнением запросов. После завершения тестирования в таблице "Data" появлялась информация о времени обдумывания пользователя, полном времени и времени отклика при выполнении n-кратного поиска Internet-приложений в данных СУБД, при работе с каждым отношением БД. Отметим, что для определения табличных значений времени отклика программа-тестер предварительно подсчитывала среднее значение времени обдумывания пользователя при формировании п-запросов ко всем Internet-приложениям, и также помещала это значение в таблицу "Data". С помощью кнопки "Save" программы JToch.no данные всех таблиц и параметры тестирования сохранялись в текстовом файле. Имя файла для хранения данных предварительно вводилось в поле ввода "File".

В наших исследованиях вначале измерялась производительность internet-приложений поиска в отношениях СУБД MySQL, затем - PostgreSQL.

Полученные результаты были обработаны с помощью метода наименьших квадратов. Как выяснилось, время отклика т при поиске в данных СУБД MySQL и PostgreSQL при однократном запросе к Internet-приложению, удовлетворительно описывается уравнением вида (коэффициент детерминации более 0.99):

т = а + ß • V ,

где аир- постоянные коэффициенты.

При этом, величина коэффициента а принимала значения 5.615-КГ5 с и 3.360-10*J с, а коэффициента ß - 16.896-10"3 с/МБайт и 28.009-1 О*3 с/МБайт, соответственно для Java и PHP серверных программ

2Ö5

при работа с отношениями БД СУБД MySQL. В то же время, величина коэффициента а была равна 26.389-10*3 с и 26.209-10"3 с, а коэффициента ß - 42.422-Ю"3 с/МБайт и 43.291-10"3 с/МБайт, соответственно для Java и PHP серверных программ при работе с отношениями БД СУБД PostgreSQL.

На рис.1, 2 изображены зависимости т для приложений поиска в данных СУБД MySQL и PostgreSQL от объема обрабатываемой информации У, для Java и PHP серверных программ, соответственно.

Рис. 1. Зависимость времени отклика т Internet-приложений поиска в данных СУБД MySQL (кривая 1) и PcsigreSQL (кривая 2} от объема обрабатываемой информации V, разработанных на основе Java-технологии. Точки на рисунке - значения т, полученные при тестировании.

Рис. 2. Зависимость времени отклика т Internet-приложений поиска в данных СУБД MySQL (кривая I) и PostgreSQL (кривая 2) от объема обрабатываемой информации V, разработанных на основе РНР-страниц.

Кривая 3 - зависимость x(V) для приложений разработанных с СУБД MySQL и сервлетов. Точки на рисунке - значения т, полученные при тестировании Как видно из этих рисунков, для рассматриваемых приложений т линейно возрастало с увеличением объема информации V в использованных базах данных. В то же время, производительность приложений на основе СУБД MySQL была выше, чем на основе СУБД PostgreSQL как для PHP, так и Java серверных программ.

При этом, как показывает сопоставление рис. 1 и рис. 2, производительность 1мегпе£-приложений на основе СУБД PostgreSQL как для PHP, так и Java серверных программ имела один и тот же порядок величины.

В случае распределенных приложений на основе СУБД MySQL сопоставление PHP и Java-технологии показывает, что производительность Internet-приложений на основе PHP-страниц была выше, чем на основе сервлетов, лишь при V < V-, (Vi - объем информации = 0.2 МБайт). При V > Vi лучшей производительностью обладали Internet-приложения, использующие вместо PHP серверные Java-программы (см. рис. 2).

То есть, для создания высокопроизводительных internet-приложений с СУБД MySQL, обрабатывающих информацию с объемом до Vb целесообразно использовать программное обеспечение РНР-технологии, в противном случае - программные продукты Java-технологии.

Выводы. Таким образом, в настоящей работе нами был выполнен анализ производительности Internet-приложений поиска в данных СУБД MySQL и PostgreSQL. В результате анализа выяснилось, что для всех исследованных приложений время поиска в данных с объемом V < 1.0 МБайт, хранящихся в БД, линейно зависит от их объема. При этом, производительность internet-приложений с PHP и Java серверными программами, работающих с СУБД PostgreSQL. имела близкое значение при аналогичных объемах обрабатываемой информации. В то же время, выбор конфигурации программного обеспечения для высокопроизводительных Web-узлов, работающих с СУБД MySQL, зависит от объема информации, которую предполагают в ней хранить.

В дальнейшем предполагается провести подобные исследования с др^тими Web-серверами и СУБД. Кроме того, предполагается модернизировать разработанную программу-тестер для измерения производительности Internet-приложений при масштабируемых запросах к Web-cepsepy.

ЛИТЕРАТУРА:

1. Менаске Д., Алмейда В. Производительность Web-служб. Анализ, оценка и планирование. -СПб.: ООО «ДиаСофтЮП», 2003.-480 с.

2. Рогов С., Намиот Д. Тестирование производительности Web-серверов // Открытые системы. -2002, №12. — С. 55-59.

3. Колисниченко Д.Н. Самоучитель PHP 5. - СПб.: Питер, 2007. - 640 с.

4. Веллинг JI. Томсон Л. Разработка Web-приложений с помощью PHP и MySQL. - М.: Вильяме, 2008. - 880 с.

5. Уорсли Дж. PostgreSQL. Для профессионалов / Дж. Уорсли, Дж. Дрейк. - СПб: Питер, 2003. -496 с.

6. Гофман В.Э., Хомоненко А.Д. Delphi 6. Наиболее полное руководство. - СПб.: БХВ-Петербург, 2001. - 1152 с.

7. Kotsis G., Tafemer L. Performance Comparison of Web-based Database Access // Proceedings of DCABES 2002. International Symposium on Distributed Computing and Applications to Business, Engineering and Science, 16-20 December, 2002,- Wuxi, Jiangsu, China, 2002. - P. 360-364.

ТОЧИЛИН Сергей Дмитриевич - к.ф.-м.н., доцент кафедры компьютерных систем и сетей Запорожского национального технического университета.

Научные интересы:

- вторичное излучение кристаллов и наноматериалов;

- автоматизация физического эксперимента;

- разработка и тестирование программного обеспечения.

ТОЧИЛИН Дмитрий Сергеевич - аспирант кафедры физики Запорожского национального технического университета.

Научные интересы:

- физика твердого тела;

- разработка и тестирование программного обеспечения.

i Надоели баннеры? Вы всегда можете отключить рекламу.