Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system
First Claim
Patent Images
1. A method comprising:
- generating one or more threads to operate a storage system, the storage system comprising one or more system resources, and each of the one or more threads associated with one of a plurality of tasks of the storage system;
updating one or more performance counters of the storage system in response to a change in operating state of one of the one or more threads; and
generating a performance snapshot by capturing a state of the tasks associated with the threads and the performance counters wherein generating the performance snapshot comprises;
grouping one or more of the threads that are associated with a given task;
grouping counter values of the one or more performance counters into containers associated with the given task; and
generating a performance snapshot based upon the grouped one or more threads that are associated with the given task, and the containers associated with the given task,wherein generating the performance snapshot further comprises generating a directed-graph associated with the given task, the directed-graph comprising a plurality of nodes and at least one edge joining associated ones of the nodes,wherein each of the nodes is associated with a synchronization object of an operating system of the storage system,wherein each of the nodes is identified by a two-tuple node key based upon a task identifier associated with the node, and a resource identifier associated with the node, andwherein each of the edges is associated with a respective sequence of instructions.
5 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide methods and systems for tracking performance of a storage system including one or more system resources. One or more threads may be generated to operate the storage system. Each of the one or more threads may be associated with one of a plurality of tasks of the storage system. When an operating state of one of the one or more threads is changed, one or more performance counters of the storage system may be updated. A performance snapshot may be generated by capturing a state of the tasks associated with the threads and the performance counters.
144 Citations
12 Claims
-
1. A method comprising:
-
generating one or more threads to operate a storage system, the storage system comprising one or more system resources, and each of the one or more threads associated with one of a plurality of tasks of the storage system; updating one or more performance counters of the storage system in response to a change in operating state of one of the one or more threads; and generating a performance snapshot by capturing a state of the tasks associated with the threads and the performance counters wherein generating the performance snapshot comprises;
grouping one or more of the threads that are associated with a given task;
grouping counter values of the one or more performance counters into containers associated with the given task; and
generating a performance snapshot based upon the grouped one or more threads that are associated with the given task, and the containers associated with the given task,wherein generating the performance snapshot further comprises generating a directed-graph associated with the given task, the directed-graph comprising a plurality of nodes and at least one edge joining associated ones of the nodes, wherein each of the nodes is associated with a synchronization object of an operating system of the storage system, wherein each of the nodes is identified by a two-tuple node key based upon a task identifier associated with the node, and a resource identifier associated with the node, and wherein each of the edges is associated with a respective sequence of instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a processor; and memory storing computer program code that when executed on the processor causes the processor to operate a storage system, the storage system operable to perform the operations of; generating one or more threads to operate a storage system, the storage system comprising one or more system resources, and each of the one or more threads associated with one of a plurality of tasks of the storage system; updating one or more performance counters of the storage system in response to a change in operating state of one of the one or more threads; and generating a performance snapshot by capturing a state of the tasks associated with the threads and the performance counters, wherein generating the performance snapshot comprises;
grouping one or more of the threads that are associated with a given task;
grouping counter values of the one or more performance counters into containers associated with the given task; and
generating a performance snapshot based upon the grouped one or more threads that are associated with the given task and the containers associated with the given task,wherein generating the performance snapshot further comprises generating a directed-graph associated with the given task, the directed-graph comprising a plurality of nodes and at least one edge joining associated ones of the nodes, wherein each of the nodes is associated with a synchronization object of an operating system of the storage system, wherein each of the nodes is identified by a two-tuple node key based upon a task identifier associated with the node, and a resource identifier associated with the node, and wherein each of the edges is associated with a respective sequence of instructions. - View Dependent Claims (9, 10)
-
-
11. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product comprising:
-
computer program code for generating one or more threads to operate a storage system, the storage system comprising one or more system resources, and each of the one or more threads associated with one of a plurality of tasks of the storage system; computer program code for updating one or more performance counters of the storage system in response to a change in operating state of one of the one or more threads; and
computer program code for generating a performance snapshot by capturing a state of the tasks associated with the threads and the performance counters,wherein generating the performance snapshot comprises;
grouping one or more of the threads that are associated with a given task;
grouping counter values of the one or more performance counters into containers associated with the given task; and
generating a performance snapshot for each task based upon the grouped one or more threads and the containers associated with the given task,wherein generating a performance snapshot further comprises generating a directed-graph associated with the given task, the directed-graph comprising a plurality of nodes and at least one edge joining associated ones of the nodes, wherein each of the nodes is associated with a synchronization object of an operating system of the storage system, wherein each of the nodes is identified by a two-tuple node key based upon a task identifier associated with the node, and a resource identifier associated with the node, and wherein each of the edges is associated with a respective sequence of instructions. - View Dependent Claims (12)
-
Specification