Статистику, специфичную для Apache (ReqPerSec, BytesPerSec, BytesPerReq, BusyWorkers, IdleWorkers, Requests currently being processed etc.) можно получить, например, с помощью вот такого инструмента SiteScope. Только скорее всего эта информация не даст вам то, что вы хотите получить. Если я правильно понимаю, то вам надо отслеживать сколько памяти потребляет java.exe процесс, который запускает ваш Apache сервер. SiteScope позволит получить и такую информацию тоже.Подскажите пожалуйста, какие инструменты позволяют обнаружить утечки памяти web приложений. Насколько я понимаю, нужно получать статистику с веб-сервера, в нашем случае это Apache.
Тестирование Web проектов
#21
Отправлено 17 июля 2004 - 19:22
#22
Отправлено 18 июля 2004 - 08:48
Приложение на Java.Само web-приложение на каком языке реализовано?Подскажите пожалуйста, какие инструменты позволяют обнаружить утечки памяти web приложений. Насколько я понимаю, нужно получать статистику с веб-сервера, в нашем случае это Apache.
#23
Отправлено 18 июля 2004 - 08:50
Спасибо, я посмосмотрю SiteScope. А средствами нагрузочного тестирования таких данных нельзя получить?Статистику, специфичную для Apache (ReqPerSec, BytesPerSec, BytesPerReq, BusyWorkers, IdleWorkers, Requests currently being processed etc.) можно получить, например, с помощью вот такого инструмента SiteScope. Только скорее всего эта информация не даст вам то, что вы хотите получить. Если я правильно понимаю, то вам надо отслеживать сколько памяти потребляет java.exe процесс, который запускает ваш Apache сервер. SiteScope позволит получить и такую информацию тоже.Подскажите пожалуйста, какие инструменты позволяют обнаружить утечки памяти web приложений. Насколько я понимаю, нужно получать статистику с веб-сервера, в нашем случае это Apache.
#24
Отправлено 18 июля 2004 - 13:47
Конечно же можно. Принцип будет тот же (ставите мониторы на Apache, на memory и на все, что вам нужно знать), только будете отслеживать не реальных пользователей, а виртуальных, что в вашем случае роли не играет. Только трудоемкость будет больше - придется этих виртуальных пользователей (скрипты) еще создать и отладить. Кстати, если у вас есть LoadRunner, то в нем можно использовать как его родные мониторы, так и мониторы из SiteScope, поскольку SiteScope интегрируется в LoadRunner без проблем.Спасибо, я посмосмотрю SiteScope. А средствами нагрузочного тестирования таких данных нельзя получить?
Вообще, если ваше приложение написано на Java, то наверняка существуют какие-нибудь специализированные утилиты, заточенные отлавливать утечки памяти именно в Java приложениях. SiteScope хорош тем, что позволяет вам мониторить все, что угодно и неважно на чем это написано. Например, если у вас web-приложение, то вы сможете мониторить, что оно постоянно работает и позволяет выполнять определенные операции с ним.
#25
Отправлено 18 июля 2004 - 17:35
Елена, методика выявления утечек памяти веб приложений может строиться по следующему алгоритму.
В начале разрабатываются типовые сценарии действий пользователей и по ним строятся тест кейсы. Это нужно для того, что бы как можно больше функциональности приложения было задействовано при их исполнении.
На время тестирования на сервере должны быть прекращены все другие активности. Это необходимо для того, что бы быть уверенным, что ни какие другие (не учтенные действия) не оказали влияние на результат.
Затем снимаются показания счетчиков системы. В первую очередь, показатели использования виртуальной памяти. Затем начинается процесс тестирования приложения - выполняются тест кейсы.
Объем используемой виртуальной памяти может и чаще всего постоянно изменяется. Это зависит как от самого приложения, так и от того какой механизм используется вашим веб сервером. Если это Апач до 2 версии, то он использует модель с управлением по процессам с главным процессом, который назначает процесс каждому новому соединению. Если 2 и выше, то в нем реализована многопоточная архитектура с размещением ресурсов в динамических областях (пулах), которые автоматически высвобождаются после завершения процесса.
Повторно метрики снимаются после выполнения всех тест кейсов. При возвращении сервера и приложения в ждущий режим в идеальном случае объем используемой виртуальной памяти должен вернуться к размеру, который был до начала тестов. Это очевидно. Все открытые при тестировании процессы, после их завершения, должны высвободить занимаемую ими виртуальную память. Но в действительности это не совсем так. Как правило еще некоторое время виртуальная память имеет "повышенный уровень". Это связано с тем, что начало и завершение процесса очень ресурсоемкая и долгая (с точки зрения производительности сервера) операция. Поэтому сервер подстраивается под существующую нагрузку и держит среднее число процессов или пулов, достаточным, что бы удовлетворить все возможные запросы. Но, со временем, при падении уровня нагрузки количество ждущих процессов должно вернуться к предтестовому уровню. И отклонение показателей использования виртуальной памяти не должно быть очень большим. Речь идет о процентах.
Если же после окончания тестирования и по прошествии долгого времени (например час), не происходит существенного снижения объема используемой виртуальной памяти, то это является верным признаком наличия ее утечки. В этом случае имеет смысл провести более длительную серию тестов (например на 8 часов) и повторно произвести замеры. Для выявления процесса, который имеет утечку необходимо провести анализ всех процессов, используемых в работе приложения и сервера. На снятых показаниях такой процесс будет хорошо заметен на фоне других, так как используемый им объем виртуальной памяти останеться большим, в то время как у остальных этот показатель вернется к нормальному размеру.
Далее следует обратиться к разработчикам и документации сервера, что бы определить, какие именно действия приложения вызвали появление утечки.
Успехов.
B)
#26
Отправлено 19 июля 2004 - 07:12
В целом понятно, если не секрет, чем вы пользуетесь для снятия показателей использования виртуальной памяти?Затем снимаются показания счетчиков системы. В первую очередь, показатели использования виртуальной памяти.
#27
Отправлено 19 июля 2004 - 07:12
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#28
Отправлено 19 июля 2004 - 07:14
Я подозреваю что они есть и надо подтвердить мои подозрения :rolleyes:Эх, есть мне что сказать, да времени не хватает, длинный пост получится. На всякий случай спрошу сначала вот какой вопрос: Елена, Вам нужно просто узнать, есть утечки памяти или нет их, или Вы знаете (или хотя бы подозреваете), что они есть и хотите обнаружить причину?
Допустим что причины мне не интересны.
#29
Отправлено 19 июля 2004 - 07:59
Тогда пост будет достаточно короткий :)Я подозреваю что они есть и надо подтвердить мои подозрения :rolleyes:Эх, есть мне что сказать, да времени не хватает, длинный пост получится. На всякий случай спрошу сначала вот какой вопрос: Елена, Вам нужно просто узнать, есть утечки памяти или нет их, или Вы знаете (или хотя бы подозреваете), что они есть и хотите обнаружить причину?
Допустим что причины мне не интересны.
Сначала небольшое лирическое отступление про архитектуру веб-приложения. Не то чтобы я считаю, что кто-то этого не знает, а только для того, чтобы определить контекст моего дальнейшего изложения.
Итак, веб-приложения на Java обычно изготавливаются в виде компонентов, которые выполняются в так называемом контейнере, который управляет жизненным циклом этих компонентов. Контейнер выполняется как отдельный процесс. Он может либо сам выступать в роли веб-сервера, в этом случае никакого апача вообще не будет, либо обслуживать только динамические запросы, а статические запросы выполняет веб-сервер (например, apache), который находится перед ним. То есть в этом втором случае веб-сервер принимает запрос, если может - обслуживает сам, если не может - передаёт его контейнеру, он генерирует ответ, отдаёт его обратно веб-серверу, а последний переправляет его клиенту. Конец лирического отступления.
Переходим к делу.
1. Для того, чтобы обнаружить утечки в веб-приложении, мониторить веб-сервер бессмысленно, нужно мониторить контейнер (Tomcat или JBoss или JRun или WebSphere или что-там у Вас).
2. Для того, чтобы исключить наведённые эффекты, следует веб-сервер и контейнер запускать в тестовом режиме. При этом они выполняются в однопроцессном/однопоточном режиме, не кешируют ответы и т.д. Кроме того, в таком режиме проще измерять.
3. Можно пользоваться всей указанной в вышеприведённых советах техникой измерений, но вот какой есть момент - Java-машина захватывает память кусками, а расходует понемногу, поэтому при небольшой утечке придётся долго ждать, пока она соберётся захватывать следующий кусок. Для упрощения дела можно использовать какой-нибудь Java-специфичный монитор памяти, который покажет реально используемую память и динамику работы сборщика мусора. Например, jvmstat от Sun (универсальный) или JMeter от Apache (заточенный специально для мониторинга контейнера Tomcat).
Не используйте для мониторинга полноценные профилировщики, даже коммерческие, если Вы лично не проверяли их в деле - они могут врать или даже сами провоцировать утечки памяти, используйте лёгкие инструменты.
4. Не пренебрегайте также обычными средствами мониторинга памяти, занимаемой приложениями - top на Unit-системах или perfmon на Windows-системах, даже делая более точное изменение Java-специфичным монитором.
5. Когда убедитесь, что утечки памяти есть - приходите, продолжим рассмотрение дела.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#30
Отправлено 23 июля 2004 - 12:54
С применением Framework.net
#31
Отправлено 23 июля 2004 - 13:00
Это что, резюме? B)опыт тестирования WEB-прилоежений, написанных на VBS, JAVA.
С применением Framework.net
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#32
Отправлено 23 июля 2004 - 14:31
просто если у кого возникнут вопросы по тестированию web-приложений с использованием этих технологий, я смогу посоветовать или просто обменяться опытом
#33
Отправлено 23 июля 2004 - 15:58
Это вообще к чему? Рекламная пауза что ли?опыт тестирования WEB-прилоежений, написанных на VBS, JAVA.
С применением Framework.net
#34
Отправлено 23 июля 2004 - 18:45
если у кого возникнут вопросы по тестированию web-приложений с использованием этих технологий, я смогу посоветовать или просто обменяться опытом
#35
Отправлено 28 июля 2004 - 13:22
опыт тестирования WEB-прилоежений, написанных на VBS, JAVA.
С применением Framework.net
Хочу уточнить, вы тестируете Java приложения с применением Framework.net ??? )
#36
Отправлено 29 июля 2004 - 10:53
нет, приложения написаны на VBS или C#опыт тестирования WEB-прилоежений, написанных на VBS, JAVA.
С применением Framework.net
Хочу уточнить, вы тестируете Java приложения с применением Framework.net ??? )
#37
Отправлено 30 июля 2004 - 10:28
А я крестиком вышиваю, очень неплохо :)для особо одаренных повторяю:
если у кого возникнут вопросы по тестированию web-приложений с использованием этих технологий, я смогу посоветовать или просто обменяться опытом
Прошу прощения, просто не смог удержаться.
Если вас не поняло больше одного человека - наверное дело в консерватории ;)
Редактор портала www.it4business.ru
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных