вторник, 16 сентября 2008 г.

Вчера я потратил целый день для того, чтобы выполнить профилирование WebSphere Process Server в кластерной конфигурации. Сразу скажу, что сделать это не получилось. История следующая.

WebSphere Process Server работает под IBM JVM 1.4.2 под AIX 5.3. JVM имеет встроенный профайлер HProf, который можно включить с помощью параметра -Xrunhprof. Меня интересовало время проведенное сервером в каждом методе, поэтому для профайлера были заданы следующие ключи -Xrunhprof:cpu=samples,file=/tmp/java.hprof,format=b,doe=n. "format=b" обеспечивает бинарный формат файла, что должно снизить дополнительную нагрузку на сервер, вызванную профилированием, "doe=n" обеспечивает запись в файл по мере поступления информации, а не после завершения виртуальной машины. Все эти параметры можно задать в консоли управления Deployment Manager'а.

Результат: сервер начинает стартовать, содержимое указанного файла пополняется, но в какой-то момент обновление логов прекращается и JVM будто замирает. Видимо профайлер становится слишком тяжелым для такого большого приложения как WebSphere Process Server.

Возможно спасение находится в использовании других профайлеров типа JProbe, OptimizeIt и т.д. Однако они в-первых платные, а во-вторых требуют установки на AIX. В идеальном случае хотелось бы найти такой профайлер, для установки которого достаточно прописать в classpath JVM путь к нужному jar-файлу. Вроде как JIP именно такой, однако заявляется, что для его использования нужен JVM 1.5.x, а это не мой случай...

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