In this issue:
EasySMF Version 2
EasySMF version 2 has recently been released.
There are minimal outward changes, but there have been significant changes under the covers. The focus with Version 2 was to fix areas where performance or memory usage was a problem. There is a new internal architecture, and more than 20 of the largest reports were rewritten to reduce the memory required. Testing has shown that in many cases memory usage has been reduced by as much as 90%.
The chart layout code was also rewritten, so that charts will cope better with different screen sizes and resolutions and larger amounts of data.
Some of the other significant changes in version 2:
- Centralized license key management. You can put the key on your web server, and set the URL in EasySMF or as a parameter to the installation. The key will then be retrieved via HTTP, so it does not need to be installed on each computer for new installations or renewals.
- Optional filtering by regular expression. Regular expressions allow more complex filtering, including finding values that are not equal to an expression.
- Paging and storage reports. Storage information has been added to the Job Status During Interval report.
- Context sensitive help for reports. Pressing F1 when viewing a report will show the help page for that report.
- Various bug fixes.
Another notable performance problem was fixed in version 1.1.9. Deleting data was very slow. Elapsed time for deleting data was reduced by 99% in testing after the fix.
(How do you reduce the elapsed time for a piece of code by 99%? I am sure many people are wondering. It’s simple –
Step 1: Write some very slow code…
More seriously: As the data was being deleted, entries were removed from the repository catalog. Each of those database updates was not only writing to disk, but waiting for the physical write to complete. Reorganizing the updates and wrapping a transaction around them avoided most of the waits, as the database only waits for the physical write at the end of a transaction.)
EasySMF version 2 requires version 3.5 SP1 of the Microsoft .NET Framework. If it is not installed the installer will download and install it for you (Internet access and administrator privileges are required). Alternatively, .NET 3.5 SP1 can be installed using Windows Update. Dot NET 3.5 was released in 2007, included with Windows 7 and has been a high priority update for Windows XP for a long time so hopefully this will not inconvenience too many people.
Licensed users can upgrade to version 2 at no cost, and the price of licenses remains the same.
Report Spotlight: Job Status During Interval
This somewhat awkwardly named report is actually one of the key reports in EasySMF, because it can show you what was actually running in the system during a time period. It uses all the type 30 subtypes to show the activity of each job during that time (CPU time, I/O etc). If you are looking at one of the other reports, and you are wondering what was running at the time, this report will show you.
- If you see an jump in CPU busy, and want to know which jobs started at the time the CPU usage increased, check this report. Click and drag to draw a box around the CPU spike to zoom into the time in question. Switch to Job Status During Interval, select “Started” as the status, and “Complete” if the job(s) in question might have ended. You can sort by CPU time or any other column to find the most active jobs.
- If you see a jump in paging or page dataset usage this report can show you the address space storage high water marks and how much they changed during the interval, so you can see if a task has increased its storage consumption.
- If you want to know which jobs were running in a service class at a particular time, this report can tell you, along with which jobs used the most CPU etc.
There are 4 different statuses that can be shown: Started, Ended, Running and Complete.
Started: the job started, but did not end during the time period.
Ended: the job was running at the start of the period, and ended during the period.
Running: the job was running for the whole period i.e. there were interval/step end records, but no job start or end records.
Complete: the complete job was contained within the time period.
The information in the report includes:
- Service
- CPU time
- I/O activity
- Paging
- Changes to storage high water marks
- The number of SMF records produced by the job
for the time period selected.
This report is one of the reports where memory usage has been dramatically reduced in EasySMF version 2. If you are reporting long time periods or large amounts of data you will find version 2 is a great improvement.
Obviously, accurate data requires all type 30 subtypes. CPU time etc. is calculated as the difference between the first and last values, so more than one SMF interval is required for jobs that are not Complete. The more SMF intervals are included the more accurate the results will be.
An example
This Service by Service Class report shows a lot of service in STCMED between about 2 and 7am.
Dragging on the chart allows you to zoom in on the time in question:
Clicking on the STCMED area switches to the Job Status During Interval report for that service class:
You can sort the report by Service, and quickly see that DFHSM was consuming the resources – which not surprising for that time of day.
You can use a similar sequence to find out what was running at the time of any other report. Some reports, like Service by Service Class, will open the Job Status during interval report directly if you click on a data item. For others, you need to select it from the report menu.