@article{oai:ipsj.ixsq.nii.ac.jp:00217594, author = {Yuuki, Tsubouchi and Masahiro, Furukawa and Ryosuke, Matsumoto and Yuuki, Tsubouchi and Masahiro, Furukawa and Ryosuke, Matsumoto}, issue = {3}, journal = {情報処理学会論文誌}, month = {Mar}, note = {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. ------------------------------ This is a preprint of an article intended for publication Journal of Information Processing(JIP). This preprint should not be cited. This article should be cited as: Journal of Information Processing Vol.30(2022) (online) DOI http://dx.doi.org/10.2197/ipsjjip.30.260 ------------------------------, 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. ------------------------------ This is a preprint of an article intended for publication Journal of Information Processing(JIP). This preprint should not be cited. This article should be cited as: Journal of Information Processing Vol.30(2022) (online) DOI http://dx.doi.org/10.2197/ipsjjip.30.260 ------------------------------}, title = {Low Overhead TCP/UDP Socket-based Tracing for Discovering Network Services Dependencies}, volume = {63}, year = {2022} }