|
GiAPA OBJECTIVES

“Analyzing application performance, identifying reasons
for inefficiencies, and determining what to do to improve
run time and decrease CPU usage and/or disk accesses is
a complex task requiring specialized education over and
above what the average programmer normally has received
…”
We wanted to create a software product that rendered the
above, frequently heard statement untrue.
With GiAPA’s automatic data collection and analysis it is
easy for the average operator, programmer, or systems analyst
to locate and diagnose the vast majority of performance
inefficiencies.
GiAPA was designed to tell you
1.
Which of your applications
have performance problems
2.
What the problems are
3.
Where, i.e. which thread(s),
program(s), and statement(s)
4.
How the application can be
improved to run efficiently
GiAPA was not designed to tell you what additional
hardware to purchase in order to cope with (= hide?) performance
problems.
Back to Top
OTHER BENEFITS

With no (more) performance problems, what are
the benefits of (still) using GiAPA?
To analyze performance of all jobs and tasks running on
the server, GiAPA obviously collects a lot of data - but
is never the less only using less than 0.1 % of one CPU,
so GiAPA data collection runs normally 24 / 7 !
Therefore, having optimized inefficiently running applications,
GiAPA users detected that GiAPA data was a true gold mine
of information
1. to keep track of who runs which programs when
2. to analyze any performance problems even after they happened
3. to create graphics allowing management to follow trends
in resource usage by application, by user,
by hour, by you-name-it …
4. to assist operations in the everyday control of the machine
usage
5. to use as base for simple job accounting
6. to solve certain complex capacity planning
7. to control quality of new applications before they go
in production
Back to Top
EASE
OF USE

1. Installation takes typically less than half an hour,
this including download of manual and software.
2. You set up GiAPA data collection using one simple CL-command
also allowing optional automatic
deletion of data after ?? days.
3. A menu option submits a batch job analyzing few hours
or several days of collected performance
data.
4. After GiAPA has analyzed the data, numerous different
reports, displays, or charts are available
to present the results (expert level knowledge not needed).
A Belgium IBM software technician gave our software the
best possible compliment, saying “I find GiAPA intuitive!”
Back to Top
DATA COLLECTED

GiAPA collects for all jobs every 15 seconds:
|
·
Job
or task name, user name, job number
·
Job
type, priority, pool, date and time
·
CPU
milliseconds
·
Active
threads
·
Current
User
|
·
Communication
puts and gets
·
Exceptions
(numeric overflow)
·
Transactions
(number and response time)
·
Print
lines
·
Pages
allocated / deallocated
·
ASP
Disk usage %
|
|
·
I/Os
(physical/logical, synchronous/asynchronous, read/write,
data base/non-DB, miscellaneous/permanent writes)
|
Additional Information for HotSpot
Jobs
(HotSpot = Job exceeds 6 % CPU – user may adjust limit)
·
Call stack down to active statement number
·
Detailed statistics for all opened files
(To
our knowledge GiAPA is the only tool collecting file usage
data down to individual record number within the file -
- - you probably can't imagine how much optimization potential
we find by analyzing this data!)
Back to Top
RESOURCES USED

GiAPA Performance Data Collection:
Uses typically less than 0.1 % of one CPU and extremely
few I/Os when collecting data for all jobs and tasks every
15 seconds. Usage could increase if limit for collecting
additional "HotSpot" data is set much lower than the default
values.
Expansion and Analysis:
Runs predominantly CPU bound as a low priority batch job,
and is in most cases a matter of a few minutes. Processing
10 million collected job/interval performance data records
took on a P05 model 270 only 6 minutes elapsed and 5 minutes
CPU.
GiAPA Reports:
Most reports run interactively and appear within a second
or two. If *ALL details are kept during analysis, a few
reports running on this detailed data may take more than
a minute; such reports can be submitted to batch.
Graphics:
The different charts are normally created within a second
or two - they are displayed in the browser on your PC or
MAC, but are produced by program code stored on the server.
How Can Data Be Collected Using < 0.1 % of One CPU?
Reason 1:
I/Os are typically responsible for between 60 and 85 % of
the CPU used on a server running commercial applications.
GiAPA stores the data collected in a compressed binary format,
and builds large blocks of data to keep I/Os down to an
absolute minimum.
Reason 2:
The performance data (= use of resources) for all jobs are
always calculated by the operating system anyway. This already
available data is passed to GiAPA in memory every 15 seconds
without causing any I/Os.
Reason 3:
GiAPA processes the performance data real-time, immediately
detecting job(s) using sufficient resources to potentially
cause performance problems. GiAPA collects additional "HotSpot"
information about programs and files used for these particular
jobs. This data is also being received in memory work areas
not needing any I/Os.
Back to Top
GIAPA REPORTING

Note:
In addition to below list, there are numerous graphics available
(pie, bar, column, area and line charts) - generated automatically
or user defined
|
Data Analysis Statistics
Job Performance Summaries
(30 different sort criteria)
Job Open Data Path Overview
Job File Statistics per Interval
Job File Analysis
Job Call Stack per Interval
Job Function / Thread Overview
Analyzed Call Stack
Entire Call Stack (<= 99 levels)
Job Details per Interval
Summary per 15 Seconds Interval
Compare Selected and *ALL Jobs
Resource Usage Totals by Job Name
Resource Usage Totals by User
HotSpots per User
HotSpots per Program
CPU and ASP % per Interval
Interval Summary for All Resources
Interval Histogram by Resource
File Analysis Based On Hotspots
|
Index Generations
per Phys. File
Jobs Having Priority Modified
CPU Usage Statistics
Analyzed PEX Statistics
List Call Stack Based on PEX
PEX Profile
Job Trace - Elapsed and CPU Time
Job Trace - Exception Report
Job Trace - Program Summary
File Open and Close by Millisecond
Message Count by Message ID
Time Tracking Utility Report
Files Having Old Index Type
Unused Data Base Files
Reorganization Candidates
Files Having Inefficient Allocation
Files Opens Greater Than I/Os
Journal Entry Analysis Summary
JAVA Storage leaks
Statistics over Repeated Use of Records
Query Usage: Name, User, Time
|
Back to Top
LOOP TRAP

Since information about all resources used by all
jobs and tasks is received every 15 seconds during performance
data collection, GiAPA can detect if a job starts looping.
If the LOOPTRAP function is activated when data collection
is started, GiAPA will send an informational message with
severity level 60 to the system operator message queue if
a job seems to be looping.
The message is sent if no data base reads are made during
xxx minutes, and the CPU usage in the same time period exceeds
yyy %, where xxx and yyy are user defined limits.
An exception list is available for job names that never
should be reported by the loop trapper
Back to Top
DATA SECURITY

For retrieving performance data GiAPA only uses IBM standard
APIs and commands. Customer programs, data base files, etc.
are obviously never modified by GiAPA in any way, but only
accessed by commands like DSPFD or DSPOBJD (or corresponding
APIs) to collect basic information about the objects used
by the jobs being analyzed.
Authority Needed to Collect Performance Data
The standard authorization assigned by IBM to some of the
APIs accessed is limiting their use rather strictly, for
which reason *JOBCTL and *ALLOBJ, *SERVICE or even authority
on QSECOFR level may be needed for the user running GiAPA
data collection. (Example: The API QPMLPFRD "List Performance
Data" is shipped with *PUBLIC authority *EXCLUDE, although
it only passes performance data to the caller).
Back to Top
COMPETITION

We never really
met any –
- there are several nice tools on the market, but …
-
some require someone to
look at the problem when it occurs
*)
-
some need a special data
collection started before the problem occurs
*)
-
some only analyze one
or two jobs or programs at the time
*)
-
some are so heavy to run
that data collection should be kept to a minimum
*)
-
some give so much information
that it is easier to find a needle in a haystack
*)
-
some are so complex that
it takes an expensive expert to find the answer
*)
*) = Statement
not being true for GiAPA
Back to Top
F A Q s

What is a HotSpot?
A
HotSpot means that the standard GiAPA performance data collection
found a job that within an interval exceeded CPU usage
or I/O limits defined by the user when starting the data
collection. Each HotSpot will cause GiAPA to collect job
call stack and file usage data.
Do HotSpots show
all details for a job?
No.
HotSpots are samples taken only when resource usage limits
were exceeded. But for jobs using (too) many resources repeatedly
and thus causing many HotSpots, this sampling gets quite
accurate and reliable, and can be used for a detailed analysis
of the behavior of the job.
What is an Interval?
A
data collection interval is normally 15 seconds, very rarely
more. It defines the time between two GiAPA standard performance
data collections.
How is CPU percentage
calculated?
The
total CPU percentage for the entire machine includes all
CPUs.
The
CPU-% for a job or task is percentage of only one CPU.
What is shown
by the “MAX” values?
The
MAX value line tells the maximum use of a resource within
any interval where the job was running during the performance
data collection. It is used to show peaks.
Back to Top
|