How to Measure Memory Consumption and CPU Utilization

We have a Domino web application with a Java agent that uses classes of third party software to generate PDF’s. We’re considering modifying the application’s design so that the agent instead either runs a shell script or employs a web service.

The decision to make a design change will be based in part upon the memory consumption, CPU utilization, and run times of each design. I’m therefore trying to determine the best means of obtaining these measurements - particularly memory consumption and CPU utilization. Here is a list of some of the commands that can provide these measurements:

1.) Memory consumption

A. vmstat

B. svmon

C. ipcs

2.) CPU utilization

A. iostat

B. vmstat

For the memory consumption, I’m inclined to use ‘svmon’ or ‘ipcs’ since either both are process oriented and can be applied against the process that calls the Java agent (probably ‘http’).

For the CPU utilization, it seems that neither ‘iostat’ or ‘vmstat’ are process oriented and I’m therefore wondering whether there might be a better alternative to these.

I’d appreciate any recommendations on which commands to use.

Thanks.

Subject: Memory Consumption and CPU Utilization

Hi,

memory section

Domino Server Performance Troubleshooting Cookbook

JYR

Subject: Try Sysinternals ProcessViewer…

  • It gives a wealth of data on system resources … sort of like the M$ performance monitor done right. (wink)- I thought it did logging, but it does not. It does do color-coding, and it may be configured to show CPU histograms on a by-process basis. Columns are also configurable, so I have I/O bytes total delta in a column so I may see at a glance which processes are doing lots of I/O. It may also show DLLs, TCP/IP connections, stack info, threads, and a wealth of other data on a per-process basis. It even kills individual threads.

  • Sysinternals has other tools as well, like TCPView, which does the “netstat” thing in realtime in a window.

  • Hope this helps…