Method and apparatus for benchmarking the working set of window-based computer systems
AssigneeSun Microsystems, Inc.
InventorNayeem Islam
Life of this patent
Estimating the term…
Abstract
In the system of the present invention, the performance of distributed window systems which employ shared libraries is provided. A shared library is a library which is referenced and accessed by multiple processes. Synchronization events are preset in a journal file which, during playback of the same, trigger a mechanism which reads the page table of the current applications. Once the playback is complete, the page table measurements taken during playback are reviewed and information is extracted which is used to determine the working set for shared libraries. Using the working set, the number of pages referenced and the rate of reference can be used to improve performance and predict behavior of other systems.
Claims17
In a computer system comprising a central processing unit (CPU), memory divided into pages, said memory being identified by its address space and the status of memory being defined by at least one page table which indicates if a page has been referenced, input/output devices comprising a keyboard, mouse and display, said CPU executing at least one application process, said application process during execution accessing memory, a system for benchmarking the performance speed of the computer system comprising:
- means for inputting information to the computer system through the input/output devices, said information representative of user actions taken during a user session, said computer system executing processes in response to the information input;
- means for storing events in a journal file, representative of the input information representative of user actions, said events during replay being executed, whereby the input of information representative of user actions is simulated and the computer system executes processes in response to the events;
- means for inputting into the journal file synchronization events, said synchronization events being located between first and second events, the second event being dependent upon completion of execution of the first event, said synchronization event identifying the first event to be completed before executing the second event;
- means for dividing the journal file into sections;
- means for inputting into the journal file at locations which are at a beginning of a section, an event, which when executed, clears the page table, such that the page table shows that no pages have been referenced;
- means for inputting into the journal file at locations which are at each end of a section an event which, when executed, causes the page table to be read and stored in a file;
- means for replaying the journal file comprising:
- means for executing events listed in the journal file in the sequence listed in the journal file,
- when a synchronization event is executed, means for halting execution of subsequent events listed in the journal file until the event identified by the synchronization event has completed execution,
- when an event to clear the page table is executed, means for halting initiation of subsequent events until the event has completed execution and means for clearing the page table;
- and
- when an event to read the page table is executed, means for halting initiation of subsequent actions until the event has completed execution, means for reading the page table and means for storing a copy of the page table in file;
- and once all events have been executed;
- means for reading the file which comprises the page tables stored,
- means for summing the number of occurrences of referenced pages in each stored page table for each section, and
- means for determining the working set for each section from the number of referenced pages;
- whereby the working set is indicative of the performance of the system and benchmarking is performed by replaying the journal file and determining the working sets.
In a computer system comprising a central processing unit (CPU), memory divided into pages, said memory being identified by its address space and the status of memory being defined by at least one page table which indicates if a page has been referenced, input/output devices comprising a keyboard, mouse and display, said CPU executing at least one application process, said application process during execution accessing memory, a system for benchmarking the performance speed of the computer system comprising:
- means for inputting information to the computer system through the input/output devices, said information representative of user actions taken during a user session, said computer system executing processes according to the information input;
- means for storing events in a journal file representative of the input information representative of user actions, said events during replay being executed, whereby the input of information representative of user actions is simulated and the computer system executes processes in response to the event;
- means for inputting into the journal file synchronization events, said synchronization events being located between first and second events, the second event being dependent upon completion of execution of the first event, said synchronization event identifying the first event to be completed before executing the second event;
- means for inputting into the journal file an event which clears the page table, such that the page table shows that no pages have been referenced;
- means for inputting into the journal file an event which causes the page table to be read and stored in a file;
- means for replaying the journal file comprising:
- means for executing events listed in the journal file in the sequence listed in the journal file,
- when a synchronization event is executed, means for halting execution of subsequent events listed in the journal file until the event identified by the synchronization event has completed execution,
- when an event to clear the page table is initiated, means for halting execution of subsequent events until the event has completed execution and means for clearing the page table;
- when an event to read the page table is initiated, means for halting execution of subsequent actions until the event has completed execution, means for reading the page table, and means for storing a copy of the page table in a file;
- and once all events have been executed,
- means for reading the file which comprises the page tables stored,
- means for summing the number of occurrences of referenced pages in each stored page table for each event to read the page table, and
- means for determining the working set for each section from the number of referenced pages;
- whereby the working set is indicative of the performance of the system and benchmarking is performed by replaying the journal file and determining the working sets.
In a computer system comprising a central processing unit (CPU), memory divided into pages, said memory being identified by its address space and the status of memory being defined by at least one page table which indicates if a page has been referenced, input/output devices comprising a keyboard, mouse and display, said CPU executing at least one application process, said application process accessing memory, a process for benchmarking the performance speed of the computer system when performing a plurality of user actions representative of a user session, said process comprising the steps of:
- inputting information to the computer system through the input/output devices, said information representative of user actions, said computer system executing processes in response to the information input;
- storing events in a journal file representative of the input information representative of user actions, said events during replay being executed whereby the input of information representative of user actions is simulated and the computer system executes processes in response to the events;
- inputting into the journal file synchronization events, said synchronization events being located between first and second events, the second event being dependent upon completion of execution of the first event, said synchronization event identifying the first event to be completed before executing the second event;
- separating the events listed in the journal file into sections;
- inputting into the journal file at locations which are at a beginning of a section, an event which, when executed, clears the page table, such that the page table shows that no pages have been referenced;
- inputting into the journal file at locations which are at each end of a section an event which, when executed, causes the page table to be read and stored in a file;
- replaying the journal file such that,
- execution of the events listed in the journal file are executed in the sequence listed in the journal file,
- when a synchronization event is initiated, halting execution of subsequent events listed in the journal file until the event identified by the synchronization event has completed execution,
- when an event to clear the page table is initiated, halting execution of subsequent events in the journal file, clearing the page table, and once the page table is cleared, continuing execution of subsequent events in the journal file;
- and
- when an event to read the page table is initiated, halting execution of subsequent actions, reading the page table and storing a copy of the page table in a file, and once the copy of the page table is stored in a file, continuing execution of the events listed in the journal file;
- and
- once all events have been initiated and execution of the events is complete,
- reading the file which comprises the page tables stored,
- summing the number of occurrences of referenced pages in each stored page table for each section, and
- determining the working set for each section from the number of referenced pages;
- whereby the working set is indicative of the performance of the system and benchmarking is performed by replaying the journal file and determining the working sets.
In a computer system comprising a central processing unit (CPU), memory divided into pages, said memory being identified by its address space and the status of memory being defined by at least one page table which indicates if a page has been referenced and the type of page referenced, input/output devices comprising a keyboard, mouse and display, said computer system further comprising a window system, said CPU executing at least one application process in a window established through the window system, said application process accessing memory including a library located in memory which is shared and accessed by more than one application process, a process for benchmarking the performance speed of the computer system when performing a plurality of user actions representative of a user session, said process comprising the steps of:
- inputting information to the computer system through the input/output devices, said information entered through windows of the window system, said information representative of user actions, said computer system executing processes in response to the information input;
- storing events in a journal file representative of the input information representative of user actions, said events during replay being executed whereby the input of information representative of user actions is simulated and the computer system executes processes in response to the events;
- inputting into the journal file synchronization events, said synchronization events being located between first and second events, the second event being dependent upon completion of execution of the first event, said synchronization event identifying the first event to be completed before executing the second event;
- separating the events listed in the journal file into sections;
- inputting into the journal file at locations which are at a beginning of a section, an event which clears the page table, such that the page table shows that no pages have been referenced;
- inputting into the journal file at locations which are at each end of a section an event which causes the page table to be read and stored in a file;
- replaying the journal file such that,
- execution of the events listed in the journal file are executed in the sequence listed in the journal file,
- when a synchronization event is executed, halting execution of subsequent events listed in the journal file until the event identified by the synchronization event has completed execution,
- when an event to clear the page table is initiated, halting execution of subsequent events in the journal file, clearing the page table, and once the page table is cleared, continuing execution of subsequent events in the journal file;
- and
- when an event to read the page table is initiated, halting execution of subsequent actions, reading the page table and storing a copy of the page table in a file, and once the copy of the page table is stored in a file, continuing execution of the events listed in the journal file;
- and
- once all events have been initiated and execution of the events is complete,
- reading the file which comprises the page tables stored,
- summing the number of occurrences of the shared pages and private pages in each stored page table for each section, and
- determining the working set for each section, said working set determined according to the equation:
- ##EQU9## where np is the number of processes executing during the benchmark, ns is the number of sections, x.sub.i the number of shared pages in section i, y.sub.ij =the number of private pages in section i for a process j, and ws is the working set of the benchmark in pages;
- whereby the working set is indicative of the performance of the system and benchmarking is performed by replaying the journal file and determining the working sets.
Dependencies are inferred from the claim text.