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

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

В международных стандартах ISO 14598, ISO/IEC 25000 представлены методы и стандарты оценки характеристик качества готовых программных средств и их компонентов (программного продукта) на различных этапах жизненного цикла. В основе стандартов лежат метрики оценки сложности программного обеспечения, включающие в себя такие параметры, как время сертификационных испытаний, число сертифицируемых продуктов, сложность поддержки, структурированность код и др. Однако вопросу исследования и разработке метрик оценки производительности программного обеспечения, а именно веб-приложений, не было уделено должного внимания, хотя вопрос оценки производительности веб-приложений очень важен для разработчиков и хостинг-провайдеров.

Эта статья посвящена выработке метрик по оценке производительности веб-приложений по сертификации потребляемых ресурсов. В качестве основы для построения метрик были взяты статистические данные по работе веб-приложения написанном на языке PHP. 

Метрика производительности веб-приложений включает в себя следующие параметры:

1. Потребление ресурсов процессора (CPU, %). Метрика, отражающая процент загрузки ядер процессора из заданного определённого интервала потраченного на вычисления для процесса веб-приложения. Анализ истории потребления ресурсов процессора может объяснять влияние на общую производительность системы потоков обрабатываемых данных, конфигурации приложения и операционной системы, мультипоточности вычислений, и других факторов.

Использование процессора пулом php

 Загрузка ядер процессора. Средняя сумма за секунду

2. Потребление оперативной памяти (Memory usage, Mb). Метрика, отображающая количество оперативной памяти, использованной функциональными элементами веб-приложения в одном процессе. Исчерпание системных лимитов по объёму оперативной памяти на PHP-процесс может стать причиной ошибки и отказа веб-приложения. Таким образом, для формирования метрики потребления оперативной памяти важно фиксировать все достижения лимитов за период работы веб-приложения. Эта статистика станет основой для формирования интегральной оценки потребления памяти веб-приложением: , где x – количество достижений лимитов за исследуемый период, n количество периодов без достижения лимита по оперативной памяти. R=0 – оптимальный показатель потребления оперативной памяти.

Использование сайтом оперативной памяти

3. Потребление сетевых ресурсов (kb/s). Эта метрика не связана непосредственно с производительностью веб-приложения, однако её показатели могут отражаться на производительности системы в целом.

 

Трафик веб-приложения. Средняя сумма за секунду

В зависимости от специфики анализируемого веб-приложения, эта метрика может быть исключена.

4. Работа с дисковой подсистемой (I/O Wait). Работа с дисковой подсистемой может значительно влиять на производительность веб-приложения. Большое количество чтений или записей может приводить к простаиванию процессора в ожидании обработки данных с диска и в итоге увеличению потребления CPU и увеличению времени отклика. Руководствуясь результатами анализа статистики по работе с диском, можно выявить узкие места в работе веб-приложения, а также  дать интегральную оценку работы с дисковой подсистемой веб-приложением.

Использование диска сайтом

5. Работа с базой данных (connections, requests time (ms)). Во многих случаях, для стабильности работы веб-приложения используют ограничение на количество одновременных подключений к базе данных (шт./с), руководствуясь аппаратными возможностями сервера. Превышение допустимого количества одновременных подключений одного mysql-пользователя может стать причиной отказа работы веб-приложения. Актуальным становится анализ использования соединений с базой данных функциональными элементами веб-приложения.

Время выполнения запроса веб-приложением остаётся одним из самых главных показателей производительности системы или приложения. Это время может быть измерено на серверной стороне, как временя, которое требуется серверной части для обработки запроса; так и на клиентской, как временя, которое требуется на сериализацию / десериализацию, пересылку и обработку запроса.

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

Время выполнения запроса веб-приложением остаётся одним из самых главных показателей производительности системы или приложения. Это время может быть измерено на серверной стороне, как показатель времени, которое требуется серверной части для обработки запроса; так и на клиентской, как показатель полного времени, которое требуется на сериализацию / десериализацию, пересылку и обработку запроса.