1. A system for generating application-level dependencies in one or more virtual machines (VMs), comprising:
an application performance management (APM) server running on a physical machine, to accept a request and send a command to at least one forward daemon to turn on inspect status of at least one related VM of said one or more VMs, and generate an application trajectory of a selected application and export application dependencies for said selected application;
one or more intercepting modules, wherein each intercepting module intercepts a guest operation system (OS) at transmission control protocol (TCP) send and close related operations on the at least one related VM; and
one or more introspecting modules, wherein each introspecting module performs VM introspection for TCP connection and running thread information.
2. The system as claimed in 1, wherein said each introspecting module performs said VM introspection by checking the guest OS’s running kernel data structure and getting one or more running threads and TCP connection information, and generating one or more per-thread traffic logs for sending to said APM server via said forward daemon.
3. The system as claimed in claim 1, wherein said each intercepting module and said each introspecting module are both in a corresponding VM monitor on a corresponding physical server, and a corresponding forward daemon of the at least one forward daemon is running on said corresponding physical server.
4. The system as claimed in claim 2, wherein said APM server further comprises:
a traffic log conversion module for converting the one or more per-thread traffic logs to one or more inter-thread traffic logs; and
a dependency map generating module for generating said application trajectory from the one or more inter-thread traffic logs and exporting the application dependencies from the application trajectory for the selected application.
5. The system as claimed in claim 4, said system uses a log database to store the one or more inter-thread traffic logs.
6. The system as claimed in claim 1, wherein each of the one or more per-thread traffic logs contains time information, thread information, connection information and direction.
7. The system as claimed in claim 4, wherein each of the one or more inter-thread traffic logs contains time information, sender thread information, receiver thread information and direction.
8. The system as claimed in claim 1, wherein said application trajectory records message exchanges and time periods between applications that starting from one application.
9. The system as claimed in claim 1, wherein said application trajectory is stored in a tree data structure starting from a root node, and comprises one or more nodes, one or more links and one or more arrows, a node in the application trajectory indicates a message exchange to an application during a time period, a link in the application trajectory indicates a direct message exchange between two applications, an arrow in the trajectory indicates the direction of a connection between two applications.
10. The system as claimed in claim 1, wherein said application dependencies is an application dependency map represented in a tree data structure.
11. The system as claimed in claim 1, wherein said APM server uses an incremental enable module to gradually enables related VM’s inspect status until the at least one related VM’s inspect status is turn on.
12. A computer-implemented method for generating application-level dependencies in one or more virtual machines (VMs), comprising:
under controlling of one or more physical servers that provide a virtual environment having said one or more VMs;
intercepting a guest operation system (OS) at transmission control protocol (TCP) send and close related operations of at least one related VM of said one or more VMs;
performing VM introspection for TCP connection and running thread information; and
generating an application trajectory of a selected application and exporting application dependencies from the application trajectory for the selected application.
13. The computer-implemented method as claimed in claim 12, further comprising performing said VM introspection by checking the guest OS’s running threads and getting one or more running threads and TCP connection information and generating one or more per-thread traffic logs.
14. The computer-implemented method as claimed in claim 13, further comprising converting the one or more per-thread traffic logs to one or more inter-thread traffic logs,
15. The computer-implemented method as claimed in claim 14, further comprising a learning phase, a discovery phase and a generation phase to generate application-level dependencies.
16. The computer-implemented method as claimed in claim 15, further comprising, in the learning phase, using an incremental approach to identify at least one VM related to the selected application, and generating a related vm-id list and providing to the discovery phase.
17. The computer-implemented method as claimed in claim 15, further comprising, in the discovery phase, collecting the one or more per-thread traffic logs, generating the one or more inter-thread traffic logs and providing to the generation phase.
18. The computer-implemented method as claimed in claim 15, further comprising, in the generation phase, generating the application trajectory and generating an application dependency map from the application trajectory by applying an application dependency algorithm.
19. The computer-implemented method as claimed in claim 18, further comprising using a recursive approach by the application dependency algorithm to find out all indirect dependent threads related to the selected application during a time period.
20. The computer-implemented method as claimed in claim 13, wherein each of the one or more per-thread traffic logs comprises time information, thread information, connection information and direction.
21. The computer-implemented method as claimed in claim 14, wherein each of the one or more inter-thread traffic logs comprises time information, sender thread information, receiver thread information and direction.
22. The computer-implemented method as claimed in claim 12, further comprising implementing the intercepting either by hardware breakpoint or by intercepting TCP related system calls.
23. The computer-implemented method as claimed in claim 12, further comprising running at multi-process models.
24. The computer-implemented method as claimed in claim 12, further comprising running at multi-thread models.
25. The computer-implemented method as claimed in claim 22, wherein a decision to select an intercept mechanism depends on the number of hardware debug registers supported by a central processing unit (CPU) and the number of TCP send and close related functions.
26. The computer-implemented method as claimed in claim 25, wherein when the number of hardware debug registers supported by a CPU is greater than the number of TCP send and close related functions, intercepting by hardware breakpoint is selected.
27. The computer-implemented method as claimed in claim 25, wherein when the number of hardware debug registers supported by a CPU is not greater than the number of TCP send and close related functions, intercepting TCP related system calls is selected, which includes a shadow service descriptor table (SDT) is cloned in a VM monitor and the SDT table is modified to intercept TCP related system calls.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A dynamic bandwidth assignment system including a network unit for carrying out cell slot assignment, and a network termination for transmitting cells to the network unit by means of cell slots assigned by the network unit, said network unit comprising:
a detecting section for detecting a number of valid cells said network unit receives from said network termination;
a decision section for outputting a decision result in accordance with the number of valid cells; and
a cell slot assignment section for controlling the cell slot assignment to the network termination in response to the decision result of said decision section.
2. The dynamic bandwidth assignment system according to claim 1, wherein said decision section supplies its decision result to said cell slot assignment section when a number of consecutive valid cells said network unit receives from said network termination exceeds a first predetermined threshold value, and wherein said cell slot assignment section increases the number of the cell slots to be assigned to said network termination in response to the decision result.
3. The dynamic bandwidth assignment system according to claim 1, wherein said decision section supplies its decision result to said cell slot assignment section when a number of valid cells said network unit receives from said network termination in a decision period becomes less than a second predetermined threshold value, and wherein said cell slot assignment section reduces a number of the cell slots to be assigned to said network termination in response to the decision result.
4. The dynamic bandwidth assignment system according to claim 1, wherein said decision section supplies its decision result to said cell slot assignment section when a number of valid cells said network unit receives from said network termination in a decision period exceeds a first predetermined threshold value, and wherein said cell slot assignment section increases a number of the cell slots to be assigned to said network termination in response to the decision result.
5. The dynamic bandwidth assignment system according to claim 2, wherein said decision section determines the first threshold value in accordance with the total number of cells said network unit receives from said network termination in the decision period.
6. The dynamic bandwidth assignment system according to claim 3, wherein said decision section determines the second threshold value in accordance with the total number of cells said network unit receives from said network termination in the decision period.
7. The dynamic bandwidth assignment system according to claim 4, wherein said decision section determines the first threshold value in accordance with the total number of cells said network unit receives from said network termination in the decision period.
8. A dynamic bandwidth assignment method in a network unit comprising the steps of:
producing a decision result in accordance with a number of valid cells said network unit receives from a network termination; and
controlling cell slot assignment to the network termination in response to the decision result.
9. The dynamic bandwidth assignment method according to claim 8, wherein when a number of consecutive valid cells said network unit receives from said network termination exceeds a first predetermined threshold value, the step of controlling cell slot assignment increases the number of the cell slots to be assigned to said network termination in response to the decision result.
10. The dynamic bandwidth assignment method according to claim 8, wherein when a number of the valid cells said network unit receives from said network termination becomes less than a second predetermined threshold value, the step of controlling cell slot assignment decreases the number of the cell slots to be assigned to said network termination in response to the decision result.
11. The dynamic bandwidth assignment method according to claim 8, wherein when a number of the valid cells said network unit receives from said network termination exceeds a first predetermined threshold value, the step of controlling cell slot assignment increases the number of the cell slots to be assigned to said network termination in response to the decision result.
12. The dynamic bandwidth assignment method according to claim 9, wherein the first threshold value is determined in accordance with the total number of cells said network unit receives from said network termination in the decision period.
13. The dynamic bandwidth assignment method according to claim 10, wherein the second threshold value is determined in accordance with the total number of cells said network unit receives from said network termination in the decision period.
14. The dynamic bandwidth assignment method according to claim 11, wherein the first threshold value is determined in accordance with the total number of cells said network unit receives from said network termination in the decision period.