pimprof.sh script
Use the pimprof.sh
script to start, and
stop services, and to capture memory snapshots in the IBM® Product Master environment.
Syntax
pimprof.sh –-cmd=command
--mode=cpu|obj
--svc_name=unique_Service_Name
--file=filename
--opts=” “
Parameters
- –-cmd=command
- Specify the action to be performed on the service. The allowed actions are start and stop for a service, and capture_mem for capturing a memory snapshot.
- --mode=cpu|obj
- Specify the full RMI name of the service.
- cpu
- The CPU profiling mode.
- obj
- The object allocation tracing mode.
- --svc_name=unique_Service_Name
- Specify the unique service name of the service that you specified
for the --serviceType parameter. If the unique_Service_Name is not
specified, the service that is specified as default is enabled for
profiling.
- serviceName
- The unique service name of the service.
- --file=filename
- Specify the name of the file with the full path to save the memory
snapshot. If the file name and directory are not specified, the default
$TOP/profiler/snapshots
directory is where the memory snapshot exists. If the file name and directory are not specified, the default $TOP/tmp directory is where the memory snapshot is saved. fileName is the fully qualified directory and file name of the memory snapshot that is saved when either the profiling completes or you issue the --stop command. If you do not specify the --file parameter, the file name defaults are:- For YourKit:
prof_type_serviceType_serviceName_timeStamp.snapshot
- For JProfiler:
prof_type_serviceType_serviceName_timeStamp.jps
- prof_type
- The profiling mode, either cpu or obj.
- serviceType
- One of six services.
- timeStamp
- The date and time that the file is created.
- For YourKit:
- --opts=” “
- Specify this option to request help information.
pimprof.sh enable profiling
Run the following command to enable profiling:pimprof.sh --enable
--profilerName=yourkit|jprofiler
--serviceType=admin|appsvr|event|queuemgr|scheduler|workflow
--serviceName=unique_Service_Name
--port=port_#
- --enable
- Enables profiling.
- --profilerName=yourkit|jprofiler
- yourkit
- The YourKit profiling agent.
- jprofiler
- The JProfiler profiling agent.
- --serviceType=admin|appsvr|event|queuemgr|scheduler|workflow
- admin
- The admin service.
- appsvr
- The application server service.
- event
- The event processor service.
- queuemgr
- The queue manager service.
- scheduler
- The scheduler service.
- workflow
- The workflow engine service.
- --serviceName=unique_Service_Name
- The unique service name of the service you specified for the --serviceType parameter. If the unique_Service_Name is not specified, the service that is specified as default is enabled for profiling.
- --port=port_#
- The unique port number of the service you specified for the --serviceName parameter
If you do not specify the port_#, the port numbers specified in the
common.properties file for the following parameters are used:
- profiler_port_admin
- profiler_port_appsvr
- profiler_port_event
- profiler_port_queuemgr
- profiler_port_scheduler
- profiler_port_workflow
YourKit parameters for starting profiling
You
can run these additional parameters for YourKit:
The
following parameters are defined:--cpuCapture=sampling|tracing|j2ee --allocMode=adaptive|all
- sampling
- Records CPU times with adequate profiling detail and a low performance overhead impact. This is a default parameter.
- tracing
- Records CPU times as well as method invocation counts. This is a default parameter. This parameter decreases performance, therefore, it should be used only when necessary.
- j2ee
- Offers high-level profiling of JDBC, JSP or Servlets, and JNDI calls. This parameter increases performance, therefore, it should be used only when necessary.
- adaptive
- Adaptively skips some object allocation tracing while keeping CPU processing overhead at a moderate level. This is a default parameter.
- all
- Traces each object allocation.
JProfiler parameters for starting profiling
You
can run these additional parameters for JProfiler:
The
following parameters are defined:--reset=true|false --saveOnExit=true|false
- --reset=true|false
- Discards all past CPU profiling data.
- --saveOnExit=true|false
- Saves a snapshot of all of your profiling data when profiling ends. This is a default parameter.
Capture memory snapshot parameters
You can
run this script to capture the memory snapshot file:
pimprof.sh –cmd=capture_mem
–—svc_name=unique_Service_Name
--file=fileName
The following parameters are defined:
- –cmd=capture_mem
- Captures the memory snapshot.
- –—svc_name=unique_Service_Name
- The unique service name of the service you specified for the --serviceType parameter If the unique_Service_Name is not specified, the service that is specified as default is enabled for profiling.
- --file=fileName
- If the file name and directory are not specified, the default
$TOP/profiler/snapshots directory is where the memory snapshot is
saved. fileName is the fully qualified directory and file name of
the memory snapshot that is saved when either the profiling completes
or you issue the --stop command If you do not specify the --file parameter,
the file name defaults are:
- For YourKit:
MEM_serviceType_serviceName_timeStamp.snapshot
- For JProfiler:
MEM_serviceType_serviceName_timeStamp.jps
- serviceType
- One of six services.
- serviceName
- The unique service name of the service.
- timeStamp
- The date and time that the file is created.
- For YourKit:
Save memory snapshot parameters
You can
run this script to save the memory snapshot:
pimprof.sh –cmd=save
–—svc_name=unique_Service_Name
--file=fileName
--snapshot_mode=without_heap|with_heap
The following parameters are defined:
- –cmd=save
- Saves intermediate profiling data.
- –—svc_name=unique_Service_Name
- The unique service name of the service you specified for the --serviceType parameter If the unique_Service_Name is not specified, the service that is specified as default is enabled for profiling.
- --file=fileName
- If the file name and directory are not specified, the default
$TOP/profiler/snapshots directory is where the memory snapshot is
saved. fileName is the fully qualified directory and file name of
the memory snapshot that is saved when either the profiling completes
or you issue the --stop command If you do not specify the --file parameter,
the file name defaults are:
- For YourKit:
PROFILER_serviceType_serviceName_timeStamp.snapshot
- For JProfiler:
PROFILER_serviceType_serviceName_timeStamp.jps
- serviceType
- One of six services.
- serviceName
- The unique service name of the service.
- timeStamp
- The date and time that the file is created.
- For YourKit:
- --snapshot_mode=without_heap|with_heap
- A memory snapshot includes all classes loaded by the JVM, the
existing objects, and references between the objects.
- without_heap
- Captures the memory snapshot without the heap memory dump. This is a default parameter.
- with_heap
- Captures the memory snapshot with the heap memory dump
YourKit parameters for saving memory snapshot
You
can run these additional parameters for YourKit:
--hprof=true|false
The following parameters are defined:
- --hprof=true|false
- A memory snapshot in a hprof format.
- false
- Captures the snapshot in the YourKit format. This is a default parameter.
- true
- Captures the snapshot in hprof format so that only heap dumps are created and no other YourKit profiling data is captured.
Example
In this example, the
The
pimprof.sh shell script should be run from within the same shell by
using ″dot space″, see the following examples:pimprof.sh
script
is run with the parameters cmd = capture_mem, mode
= cpu, svc_name = admin and
file = /store/pimprof_data:$<install directory>/bin/pimprof.sh
–-cmd=capture_mem
--mode=cpu
--svc_name=admin
--file=/store/pimprof_data
In this example,
the YourKit profiling agent is enabled to profile the CPU for the
admin service:
$TOP/bin/pimprof.sh --enable --serviceType=scheduler --profilerName=yourkit
$TOP/bin/pimprof.sh --start cpu --serviceType=admin
In this example, the scheduler service, which has the
unique service name myscheduler, is stopped. The directory
and file name where the profiling data is saved, is specified as /opt/snapshots/mysch.snapshot:
$TOP/bin/pimprof.sh --stop obj --serviceType=scheduler --serviceName=myscheduler --file=/opt/snapshots/mysch.snapshot
In this example, a memory snapshot is captured for the
scheduler service and saved in the default directory with default
file name:
$TOP/bin/pimprof.sh --capturemem --serviceType=scheduler