WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for dynamically controlling remote processes from a performance monitor    
United States Patent5432932   
Link to this pagehttp://www.wikipatents.com/5432932.html
Inventor(s)Chen; James N. (Austin, TX); Christiansen; Niels (Austin, TX); Ross; Joseph C. (Georgetown, TX); Rowan; Albert T. (Austin, TX)
AbstractLocal and remote processes can be controlled from a data processing system performance monitor. Multiple processes can be controlled concurrently with a single action selected. Processes to be controlled can be ranked when presented to a user, to assist in determining problematic processes that need attention. Process data is captured dynamically at local and remote processes using a daemon to minimize system overhead in monitoring and controlling processes.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5432932
System and method for dynamically controlling remote processes from a

     performance monitor - US Patent 5432932 Drawing
System and method for dynamically controlling remote processes from a performance monitor
Inventor     Chen; James N. (Austin, TX); Christiansen; Niels (Austin, TX); Ross; Joseph C. (Georgetown, TX); Rowan; Albert T. (Austin, TX)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     July 11, 1995
Application Number     07/965,954
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 23, 1992
US Classification    
Int'l Classification    
Examiner     Kriess; Kevin A.
Assistant Examiner     Chavis; John D.
Attorney/Law Firm     Bailey; Wayne P. Roberts; Diana L.
Address
Parent Case    
Priority Data    
USPTO Field of Search    
Patent Tags     dynamically controlling remote a performance monitor
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5109486
Seymour
709/224
Apr,1992

[0 after 0 votes]
5103394
Blasciak
714/47
Apr,1992

[0 after 0 votes]
5075675
Barker

Dec,1991

[0 after 0 votes]
5067099
McCown

Nov,1991

[0 after 0 votes]
5067107
Wade

Nov,1991

[0 after 0 votes]
5062055
Chinnaswamy

Oct,1991

[0 after 0 votes]
5050105
Peters
715/854
Sep,1991

[0 after 0 votes]
4951229
DiNicola
345/533
Aug,1990

[0 after 0 votes]
4943968
Hirose
714/38
Jul,1990

[0 after 0 votes]
4937743
Rassman
705/8
Jun,1990

[0 after 0 votes]
4905171
Kiel
702/186
Feb,1990

[0 after 0 votes]
4878183
Ewart
345/428
Oct,1989

[0 after 0 votes]
4845644
Anthias
715/803
Jul,1989

[0 after 0 votes]
4823290
Fasack
340/825.01
Apr,1989

[0 after 0 votes]
4821178
Levin
714/47
Apr,1989

[0 after 0 votes]
4730315
Saito
714/38
Mar,1988

[0 after 0 votes]
4653020
Cheselka
715/788
Mar,1987

[0 after 0 votes]
4651146
Lucash
715/806
Mar,1987

[0 after 0 votes]
4633467
Abel
714/45
Dec,1986

[0 after 0 votes]
4590550
Eilert
714/45
May,1986

[0 after 0 votes]
4533997
Furgerson
703/21
Aug,1985

[0 after 0 votes]
4533910
Sukonick
715/806
Aug,1985

[0 after 0 votes]
4485440
Duff
713/600
Nov,1984

[0 after 0 votes]
4459656
Wilder, Jr.
713/500
Jul,1984

[0 after 0 votes]
4373184
Lambregts
701/3
Feb,1983

[0 after 0 votes]
4296727
Bryan
126/116A
Oct,1981

[0 after 0 votes]
4291376
McCahill
702/61
Sep,1981

[0 after 0 votes]
4019040
Thompson
377/54
Apr,1977

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for controlling a plurality of processes in a data processing system, comprising the steps of:

dynamically presenting a representation of each of the processes for selection on a display;

displaying process information for each of the processes in each of the representations;

selecting at least one process from the representations;

in response to a selection of at least one process from user controls, gathering live process data for the at least one selected process from the data processing system;

displaying the gathered process data in a control console; and

in response to a command from the user controls, initiating at least one action on the at least one process.

2. The method of claim 1 wherein said step of initiating at least one action comprises the step of initiating a kill process action, pause process action, resume process action, or change priority of process action.

3. The method of claim 1 wherein said step of displaying process information comprises the step of displaying associated performance data statistics.

4. The method of claim 3 wherein said step of displaying associated performance data statistics comprises the step of displaying a process ID, process name, process priority, user ID of a process owner, process memory utilization, and CPU utilization.

5. The method of claim 3 further comprising the step of sorting the displayed process information by sorting at least one of the performance data statistics.

6. The method of claim 5 further comprising the step of ranking said displayed process information by the performance data statistic.

7. The method of claim 1 further comprising the step of dynamically changing said process information with live data updates.

8. The method of claim 1 wherein said step of initiating at least one action to be performed on at least one process further comprises the step of sending a message having control information to a daemon to control the process.

9. The method of claim 1 further comprising the step of grouping the gathered data as specified by a user.

10. The method of claim 9 further comprising the step of displaying the grouped data.

11. A system for controlling a plurality of processes in a data processing system, comprising:

means for dynamically presenting a representation of each of the processes for selection on a display;

means for displaying process information for each of the processes in each of the representations;

means for selecting at least one process from the representations;

in response to a selection of at least one process from user controls, means for gathering live process data for the at least one selected process from the data processing system;

means for displaying the gathered process data in a control console; and

in response to a command from the user controls, means for initiating at least one action on the at least one process.

12. The system of claim 11 wherein said actions comprise a kill process, pause process, resume process, and change priority of process.

13. The system of claim 11 wherein said process information comprises associated performance data statistics.

14. The system of claim 11 wherein said displayed process information is sorted by process statistic.

15. The system of claim 11 wherein said displayed process information is ranked by process statistic.

16. The system of claim 11 wherein said process information is changed dynamically with live data updates.

17. The system of claim 11 wherein said data is gathered using daemons on said local and remote data processing systems.
 Description Submit all comments and votes
 


A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

Ser. No. 07/713,484, filed Jun. 10, 1991 for REAL TIME SYSTEM RESOURCE MONITOR FOR DATA PROCESSING SYSTEM, now abandoned, and assigned to the same assignee as the present invention and hereby incorporated by reference.

Ser. No. 07/713,471, filed Jun. 10, 1991 for REAL TIME SYSTEM RESOURCE MONITOR FOR DATA PROCESSING SYSTEM WITH SUPPORT FOR DYNAMIC VARIABLE UPDATE AND AUTOMATIC BOUNDING, now abandoned, and assigned to the same assignee as the present invention and hereby incorporated by reference.

Ser. No. 07/713,486, filed Jun. 10, 1991 for REAL TIME INTERNAL RESOURCE MONITOR FOR DATA PROCESSING SYSTEM, now abandoned, and assigned to the same assignee as the present invention and hereby incorporated by reference.

Ser. No. 07/965,982, filed Oct. 23, 1992 for SYSTEM AND METHOD MAINTAINING PERFORMANCE DATA IN A DATA PROCESSING SYSTEM, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

Ser. No. 07/965,956, filed Oct. 23, 1992 for SYSTEM AND METHOD FOR CONCURRENT RECORDING AND DISPLAYING OF SYSTEM PERFORMANCE DATA, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

Ser. No. 07/965,959, filed Oct. 23, 1992 for SYSTEM AND METHOD FOR DISPLAYING SYSTEM PERFORMANCE DATA, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

Ser. No. 07/965,960, filed Oct. 23, 1992 for SYSTEM AND METHOD FOR REAL TIME VARIABLE GRANULARITY RECORDING OF SYSTEM PERFORMANCE DATA, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

Ser. No. 07/965,981, filed Oct. 23, 1992 for SYSTEM AND METHOD FOR MONITORING AND OPTIMIZING PERFORMANCE IN A DATA PROCESSING SYSTEM, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

Ser. No. 07/965,953, filed Oct. 23, 1992 for SYSTEM AND METHOD FOR ANNOTATION OF REAL TIME DATA IN A DATA PROCESSING SYSTEM, currently co-pending, and assigned to the same assignee as the present invention, which is hereby incorporated by reference.

TECHNICAL FIELD

This invention relates to the area of data processing systems, and more particularly to the field of performance tools used to analyze the operations of data processing systems.

BACKGROUND ART

As data processing systems continue to grow in complexity, traditional tools used in the development, design and debug of such systems become increasingly impractical to use. For example, in the development and design of personal computers, an engineer could use a logic analyzer and oscilloscope to assist in locating errors in hardware and software. As the software running on these data processing systems became more complex, tools such as in-circuit emulators were developed, whereby the instruction flow of a central processing unit (CPU) could be captured and analyzed. These types of tools still require a large amount of human intervention and human analysis to assist in problem determination.

Various types of software tools have been introduced in the marketplace to assist in monitoring a data processing system, such as the System Performance Monitor/2 from IBM. This tool provides a graphical interface to visual depict various aspects of a data processing system, and greatly reduces the amount of time required to analyze the operation of a data processing system. Although these systems provide a substantial improvement over previous methods for monitoring and analyzing a data processing system, there are still certain deficiencies. First, they are geared towards hardware resources in a data processing system, and do not fully address the ability to monitor software processes or applications. Secondly, the flexibility and granularity provided are limited. Further, performance data is merely output to a user display device, and thus does not provide full flexibility in analyzing the data being captured.

Network monitoring tools such as IBM NetView/6000 (TM) programs are concerned primarily with supervision and corrective action aiming at keeping the network resources available and accessible. Resource availability is the concern of such tools, rather than resource utilization. For example, IBM NetView/6000 tracks the amount of free space of a disk.

There is a need to provide a data processing system performance tool that is flexible and easy to use, that can monitor hardware as well as software events and process activities, that can capture data (e.g. read sampled data) for subsequent retrieval and analysis, and that provides other facilities to further analyze and categorize such captured data.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a highly flexible analysis tool for a data processing system.

It is a further object of the present invention to provide a performance tool for a data processing system.

It is yet a further object of the present invention to provide a tool for monitoring, capturing, saving, retrieval and analysis of data processing system operations.

These objects and others are accomplished by a performance tool, its related application programming interfaces and the performance daemon are designed for interactive selection of performance statistics across a network of computer systems, the control of the flow of performance data, and the monitoring of the remote host(s) performance in live graphs.

Some of the key aspects of the design are in the combination of (1) graphical monitoring of remote data in highly customizable graphs capable of combining plotting styles; (2) the monitoring program is not required to know which hosts in the network can supply statistics and which statistics are available from each host; (3) interactive exploration of the sources of statistics on the network and the collection of statistics available from each source; and (4) the negotiation of what data systems processes to monitor across the network.

A computer system is made up of a variety of different types of hardware and software components, such as network nodes, CPUs, memory, processes, etc. In the field of performance analysis, these objects represent different contexts for the collection of performance data, and the computation of performance statistics.

Since the computing environment can be decomposed into successively smaller and smaller components, it defines a hierarchy of these performance analysis contexts. In the xmperf performance tool disclosed herein, all statistics are associated with particular contexts, and these contexts are identified by listing all the contexts which are traversed in going from the top-level context to that context. For example, in the case of a network-based computing environment, the disk called "hdisk0" on the host called "ultra", would be referenced by using the following path:

The statistic for the number of read operations on this disk can then be referenced by adding the statistic name to the above path:

The set of hosts on a particular network, and the configuration of any one system, may vary greatly from environment to environment and from time to time. Furthermore, the resource monitoring tool is faced with the problem of monitoring entities, such as processes, that are created dynamically and disappear without warning. Thus, obviously, a statically defined context hierarchy would not be adequate, and instead, the context hierarchy must be dynamically created and modifiable at execution time.

In the performance tool (xmperf), this problem is handled by using an object oriented model. In this model, a generic hierarchy of performance statistics contexts is defined using a hierarchy of context classes. Statistics are attributes of these classes, and generally all instances of a particular context class will have the same set of statistics. For example, the statistics relevant to the class of "disks" might include: "busy time", "average transfer rate", "number of reads", "number of writes", etc. Each class also has a "get.sub.-- data()" method (i.e. function) for each statistic, which can be called whenever that statistic needs to be computed.

In xmperf, context classes also contain an "instantiate()" method, which is called to create object instances of that class. For example, this method could be used for the class of "disks" to generate performance analysis contexts for collecting data on each disk in a particular system, (e.g. "hdisk0", "hdisk1", etc.). These disk contexts would all have the same set of statistics and "get.sub.-- data()" methods, which they inherit from the "disks" class.

A client/server model was implemented to allow performance monitoring over a network, typically (but not necessarily) a Local Area Network (LAN). The model is implemented with a server program, known as a "Data Supplier", that runs as a daemon on the server system and one or more client programs, called "Data Consumers", which are providing the monitoring facilities.

The Data Supplier daemon:

.smallcircle. Has its statistical data organized in a hierarchy to provide a logical grouping of the data.

.smallcircle. Upon request over the network, and on a selective basis, presents what statistics it has available.

.smallcircle. Accepts subscriptions for a continuous flow of one or more sets of performance data at negotiable frequency.

.smallcircle. Provides for dynamic extension of its inventory of statistics through a simple application programming interface.

The Data Consumer Programs:

.smallcircle. May be the developed graphical monitoring program as is described in more detail below.

.smallcircle. May be a user-developed (application) program using the developed application programming interface to negotiate the set(s) of statistics in which it is interested with one or more Data Supplier daemons and to receive, process, display, and take corrective action based on the statistics as they are received from the Data Supplier(s) over the network.

An important design objective was to make sure that a Data Consumer program does not need any prior knowledge of the statistics available from Data Suppliers. This was further emphasized by the fact that not all hosts in a network have identical configurations and abilities and thus can not supply identical collections of statistics. The solution was to allow Data Consumers to negotiate with potential Data Suppliers. The implementation is a low cost, Transmission Control Protocol (TCP)/User Datagram Protocol (UDP) based protocol with the following message types:

.smallcircle. Control messages to identify potential Data Suppliers on the network and to check whether partners are still alive

.smallcircle. Configuration messages to learn about the statistics available from identified suppliers and to define subscriptions for data

.smallcircle. Data Feed and Feed Control messages to control the continuous flow of data over the network

.smallcircle. Status messages to query a Data Supplier's status

.smallcircle. Messages to register additional statistics with the Data Supplier daemon.

The protocol allows for up to 124 individual values being grouped into a set and sent across the network in a single packet. A value is the finest granularity of statistic being monitored and has attributes associated with it. The simple application program interface hides the protocol from the application programmer and isolates it from application programs. This isolation largely makes application programs unaware of future protocol extensions and support for other base protocols.

The performance monitor tool is the most visible part of the project. It is an OSF/Motif based program (OSF/Motif is a trademark of the. Open Software Foundation) that allows a user to interactively select the relevant data to monitor while also permitting a predetermined set of monitoring "devices" to be maintained. It also provides the interface for interaction with a user to control processes within a data processing system.

The basic monitoring device is called a monitor. It shows as a window on the display and can be activated or deactivated from popup or pulldown menus.

Multiple monitors can be active at a time. Within a monitor, one or more sets of data processing system statistics may be observed in subwindows called instruments. An instrument can monitor a set of statistics supplied from any host on the network that runs the Data Supplier daemon. A set of statistics can be selected from among the complete collection of statistics available from the Data Supplier. Instruments can graphically display their sets of statistics in many different graph formats.

The most versatile of the graph formats shows the statistics on a time scale with each statistics value being plotted in one of four plotting styles:

.smallcircle. Line graph

.smallcircle. Skyline graph (squared-off line graph)

.smallcircle. Area graph (filled line graph)

.smallcircle. Bar graph

Proper selection of plotting style allows the superimposing of data values upon others permitting easy correlation of performance data. Another facility allows cumulative plotting of a subset of the values in a set.

The foregoing and other objects, features, and advantages of the invention will become more apparent from the followed detailed description of the preferred embodiment which proceeds with reference to the accompanying drawing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts the subsystem components comprising the performance tool.

FIG. 2 depicts the playback and recording system interface to a recording file.

FIG. 3 depicts system interactions with the configuration subsystem.

FIG. 4 depicts system interactions with the data display subsystem.

FIG. 5 depicts system interactions with the recording subsystem.

FIG. 6 depicts system interactions with the playback subsystem.

FIG. 7 depicts system interactions with the data value receiver subsystem.

FIG. 8 depicts system interactions with the network send/receive subsystem.

FIG. 9 is a flow diagram of the operations of the recording subsystem.

FIG. 10 depicts the recording subsystem interfaces to the overall performance tool system.

FIG. 11 is a table showing allowable actions from various menu selections.

FIGS. 12a-12e depict various displays generated by the performance tool.

FIG. 13 depicts the playback subsystem interfaces to the overall performance tool system.

FIG. 14 depicts concurrent operations between multiple data processing systems.

FIG. 15 is a flow diagram of the internal operations of the playback subsystem.

FIG. 16 is a flow diagram of the internal operations of the data display subsystem.

FIG. 17 is a flow diagram of the internal operations of the configuration subsystem.

FIG. 18 is a flow diagram of the internal operations of the data value receiver subsystem.

FIG. 19 is a flow diagram of the internal operations of the network send/receive interface.

FIG. 20 is a flow diagram of the internal operations of the graphical user interface.

FIG. 21 depicts the graphical user interface subsystem interfaces to the overall performance tool system.

FIG. 22 depicts the interface between a data supplier daemon and a dynamic data supplier.

FIG. 23 is a flow diagram of the internal operations of the data supplier daemon.

FIG. 24 is a flow diagram of the internal operations of the xmpeek utility.

FIG. 25 depicts the data supplier daemon interfaces to the overall performance tool system.

FIG. 26 shows an example of output generated from the sample program listed in Appendix A.

FIGS. 27A-27B are a C language program of a dynamic data supplier program using the daemon application programming interface to provide extensions for supplying additional types of data.

FIGS. 28a-28b are flow diagrams of the internal operation for annotation and marking of data.

FIG. 29 is a flow diagram of the internal operation for a pathology library system.

FIG. 30 is a block diagram of the filtering and alarm capabilities of the performance tool.

FIG. 31 is a flow diagram of the internal operations of the filtering and alarm utility filtd.

FIG. 32 depicts a data recording file having marker token for supporting annotations.

FIG. 33 depicts the preferred embodiment data processing system.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

As shown in FIG. 1, the performance tool 90 can be perceived as consisting of five subsystems and two interfaces. The following sections describe each of these components.

GRAPHICAL USER INTERFACE

The performance tool's graphical user interface (GUI) 80 allows the user to control the monitoring process almost entirely with the use of a pointing device (e.g. a mouse or trackball). The GUI 80 uses menus extensively and communicates directly to the following four subsystems:

GUI TO RECORDING SUBSYSTEM

The GUI 80 allows the user to start and stop recording from any active monitoring console and any active monitoring instrument. When recording begins in the recording subsystem 20, the configuration of the entire monitoring console is written to a recording file (100 of FIG. 2). The recording file 100 itself is named from the name of the monitoring console from which it is being recorded.

As all information about the monitoring console's configuration is stored in the recording file 100, playback can be initiated without a lengthy interaction between user and playback subsystem 50. Through the GUI 80, the user can start and stop recording as required and if a recording file already exists when recording is requested for a monitoring console, the user is given the choice of appending to the existing file or replacing it.

GUI TO CONFIGURATION SUBSYSTEM

The configuration subsystem 30 has two means of acquiring information about the monitoring of consoles and instruments. First, a configuration file (110 of FIG. 3) can contain configuration information for many monitoring devices. These may be skeleton consoles or may be fixed consoles. Second, the user can add, change, and delete configuration about fixed consoles directly through the GUI 80. Whether configuration information is read from the configuration file or established in interaction with the user, it causes configuration messages to be exchanged between the configuration subsystem 30 and the network send/receive interface 70 and the remote data supplier daemon(s) (210 of FIG. 8).

The skeleton consoles are monitoring devices where the exact choice of the performance data to display is left open. To activate a skeleton console,