Как я могу тестировать и профилировать связанное с IO веб-приложение Perl при большой нагрузке? - PullRequest
7 голосов
/ 28 сентября 2010

Как мне сравнить (сравнить две разные реализации) и профилировать (найти узкие места производительности в реализации) поведение веб-приложения (в Perl) при большой нагрузке?Это веб-приложение (предположительно) связано с IO, а не с процессором.

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

Я бы также хотел профилировать узкие места ЦП и ввода-вывода в предлагаемой реализации, но тестировать поведение при большой нагрузке.

ОС - Linux, веб-сервер - Apache.


Тот же вопрос размещен на ServerFault: Как выполнить сравнительный анализ и профилировать веб-приложение Perl с привязкой к IO при большой нагрузке?

Я думаю, что ответ здесь может быть о бенчмаркинге и профилировании веб-приложения, написанного на Perl, и, возможно, также о репликации реалистичных условий загрузки или поиске показателя / эталона, который мог бы предсказать, какая реализация будет работать лучше приIO связанное условиеs под большой нагрузкой.

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Я бы посоветовал вам использовать Munin (http://munin -monitoring.org / ).

Он имеет множество плагинов, чтобы увидеть, как система ведет себя: cpu, i /o, память, использование сети, транзакции mysql, ... почти все.

0 голосов
/ 05 октября 2010

Вы можете создать несколько тестов, используя модуль Benchmark . Он имеет функции специально для сравнения двух реализаций одной и той же функциональности. Хотя он не совсем справляется с имитацией уровней нагрузки для вас, это сделает его намного проще.

...