Сравнительный анализ цикла процессора Php

#php #memory #benchmarking #cpu

#php #память #сравнительный анализ #процессор

Вопрос:

Мы перенесли важный модуль веб-сайта на Symfony с обычного PHP.

У этого модуля много просмотров страниц, и из-за этого нам нужно оценить дополнительные требования к оборудованию (если таковые имеются). Мы хотим сравнить дополнительную память и циклы процессора, которые веб-страницы занимают после переноса.

Существует ли какой-либо существующий инструмент или функция в PHP для получения этой статистики? Я сталкивался с getrusage функцией в php, но она не кажется надежной.

Комментарии:

1. Не хочу показаться педантичным, но это пишется «Symfony».

Ответ №1:

XDebug можно использовать для создания файлов callgrind и трассировок функций.

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

Последний можно использовать, чтобы увидеть, как в реальности работают определенные пути к функциям, проверить использование памяти функциями и тому подобное для каждой функции.

Комментарии:

1. :- Инструменты типа Xdebug и KCachegrind также будут использовать ресурсы процессора и памяти и будут работать с одним запросом за раз, мы хотим выполнить сравнительный анализ с использованием таких инструментов, как apache benchmark и т.д., А Затем использовать журналы времени процессора и памяти с помощью инструментов, чтобы увидеть, какова закономерность при высокой нагрузке.

2. Эти файлы cachegrind можно добавлять вместо перезаписи для каждого запроса. Хотя это добавляет немного дополнительной нагрузки к действиям, относительное использование в большинстве случаев правильное.

Ответ №2:

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

Также посмотрите, найдете ли вы это полезным. http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html

Комментарии:

1. пожалуйста, направьте меня к встроенной системе сравнительного анализа symphony. В тестировании apache я собираюсь сделать то же самое. Вероятно, я буду использовать jmeter или siege для просмотра разных страниц на веб-сайте. ab поддерживает только один

Ответ №3:

Вместо сравнительного анализа таким образом, вы могли бы, возможно, провести стресс-тест на сервере разработки, эквивалентном производственному, с эквивалентными запросами в секунду, например, Apache Benchmarking Tool. (И не забудьте установить кэш операционного кода).

Комментарии:

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

Ответ №4:

введите описание изображения здесь

Symfony — один из лучших фреймворков для профилирования PHP-проектов. В него встроено несколько отличных инструментов.

На Symfony Conf 2010 был отличный разговор о ваших возможностях.

Слайд-шоу здесь http://www.slideshare.net/old_sound/debugging-and-profiling-symfony-apps

Комментарии:

1. Джон, это довольно много. Нужно пройти через них. Хотели бы вы порекомендовать один из них, исходя из моих потребностей. Спасибо 🙂

Ответ №5:

Ознакомьтесь с нашими инструментами профилирования PHP. Вы можете получить относительные показатели с минимальными затратами, или вы можете получить время для методов и деревьев вызовов.