В момента използваме JProfiler 8.0.4 в Подготовка за профилиране" режим на нашите машини Cent OS заедно с Tomcat 6 и Java 7. Ние използваме JProfiler с плаващ лиценз. Извлякохме JProfiler Linux архива на отдалечените сървъри.
Tomcat се управлява от Tanuki Wrapper. Ето нашата конфигурация
wrapper.java.additional.101=-agentpath:${jprofiler.path}/bin/linux-x64/libjprofilerti.so=port=8849,nowait
Това работи добре и при стартиране намираме това в регистрационните файлове
INFO | jvm 1 | main | 2014/03/04 10:06:41.872 | JProfiler> Don't wait for frontend to connect.
INFO | jvm 1 | main | 2014/03/04 10:06:41.872 | JProfiler> Protocol version 38
INFO | jvm 1 | main | 2014/03/04 10:06:41.872 | JProfiler> Using JVMTI
INFO | jvm 1 | main | 2014/03/04 10:06:41.872 | JProfiler> JVMTI version 1.1 detected.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> 64-bit library
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Starting up without initial configuration.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Listening on port: 8849.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Instrumenting native methods.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Can retransform classes.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Can retransform any class.
INFO | jvm 1 | main | 2014/03/04 10:06:41.873 | JProfiler> Native library initialized
INFO | jvm 1 | main | 2014/03/04 10:06:42.074 | JProfiler> VM initialized
Най-накрая се свързваме с нашите JProfiler клиенти с агентите и всичко е наред.
Както е споменато в 1
, също така е възможно да добавите параметри ,config=[config file] и ,id=[id], за да инструктирате профилиращия агент да вземе настройките за профилиране от определена сесия в конкретен конфигурационен файл. Ако се свържете със същите настройки за профилиране, няма да се налага повторно преобразуване на класове.
но ако добавим конфигурация и id като този wrapper.java.additional.101=-agentpath:${jprofiler.path}/bin/linux-x64/libjprofilerti.so=port=8849,nowait,id=${jprofiler.id },config=${jprofiler.config.path} VM не може да стартира, защото JProfiler иска лиценз.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Don't wait for frontend to connect.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Protocol version 38
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Using JVMTI
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> JVMTI version 1.1 detected.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> 64-bit library
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Using config file /path/to/config/jprofiler-config.xml (id: 100)
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Listening on port: 8849.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Instrumenting native methods.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Can retransform classes.
INFO | jvm 5 | main | 2014/03/04 10:05:30.475 | JProfiler> Can retransform any class.
INFO | jvm 5 | main | 2014/03/04 10:05:30.476 | JProfiler> Native library initialized
ERROR | wrapper | main | 2014/03/04 10:05:30.614 | JVM exited while loading the application.
INFO | jvm 5 | main | 2014/03/04 10:05:30.614 | JProfiler> VM initialized
INFO | jvm 5 | main | 2014/03/04 10:05:30.614 | JProfiler> Using dynamic instrumentation
INFO | jvm 5 | main | 2014/03/04 10:05:30.615 | JProfiler> Time measurement: elapsed time
INFO | jvm 5 | main | 2014/03/04 10:05:30.615 | JProfiler> CPU profiling enabled
INFO | jvm 5 | main | 2014/03/04 10:05:30.615 | JProfiler> ERROR: Invalid license key.
Ето моите въпроси:
- Някой знае ли как да кажа на агента за лиценза?
- Някой да е използвал тези настройки в производствена настройка?
За разбирането,
Андреас