2022 年 30 巻 p. 260-268
The widespread use of cloud computing has made it easier for service providers to develop new features and handle increased access. However, the network dependencies among components in distributed applications deployed in the cloud are becoming more complex because the number and types of components are increasing. When system administrators make changes to a system, they cannot specify the impact of the changes, which may lead to larger failures than expected. Current methods of automatically discovering dependencies trace network flows included in TCP/UDP sockets in the Linux kernel on all hosts deployed in distributed applications. However, as the rate of communication increases, the number of flows transferred from the kernel space to user space increases, which increases CPU usage for tracing. We propose a low-overhead method of bundling multiple flows with the same network service into a single flow in a kernel to discover dependencies. The proposed method reduces the number of transferred flows to the user space, thus reducing CPU usage. Experimental results from evaluating our method indicate that the method maintains a CPU overhead below 2.2% when the number of flows increases.