초록 열기/닫기 버튼

복잡한 네트워크 시스템에 가해진 수정 사항에 대한 성능을 분석하는 것은 어렵다. 이에 관한 대표적인 사례로 리눅스가 있지만, 다양한 네트워킹 요구사항들을 모두 만족하도록 개발되다 보니 매우 복잡하게 구성되어 있다. 실제로 현시점에 커널의 네트워킹 스택에 변경을 가하고, 이에 따른 성능 변화를 분석하기 위한 상용 도구는 찾아보기 어렵다. 그나마 iperf3라는 도구를 사용해서 성능 개선 전후의 네트워크 속도를 측정하고, 비교함으로써 시도해볼 수는 있지만, 이 경우 복잡하게 구성된 코드 속에서 개발자가 의도한 특정 지점에서 속도 개선이 일어났는지에 대해 알 수 없다는 문제가 있다. 따라서 본 논문에서는 이러한 문제를 개선하기 위해 트레이싱을 결합한 새로운 성능 분석 도구를 제안한다. 제안되는 도구에서는 트레이싱이라는 기술을 이용하여 리눅스 커널 함수 호출 과정을 추적함으로써 성능 개선이 일어난 명확한 지점을 가시화하고자 한다. 따라서 사용자는 해당 지점의 함수 실행 latency가 감소하였는지 혹은 함수의 호출 depth가 감소하였는지 등의 다양한 정보를 바탕으로 성능 개선의 정확한 원인을 파악할 수 있다. 또한, 본 논문에서는 리눅스 커널 HSR 모듈의 Hash List로의 자료구조 변경으로 속도 개선이 이루어진 성능 개선 사례를 분석하여 해당 도구의 유용성을 증명하고자 한다.


These days network systems are getting more complex, making it much more difficult to measure performance for code modification. A typical example of this complexity is Linux because it was developed to meet all of the various networking requirements. In particular, it is truly difficult to find a tool to analyze the resulting performance changes after making changes to the Linux Kernel Networking Stack. It can be tried by measuring and comparing network speeds before and after performance improvements using a tool called iperf3 but still, the problem exists that it is not sure whether the speed improvement occurred at a specific point intended by the developer in complex configured code. To improve these problems, this paper proposes a new performance analysis tool that combines tracing. In the proposed tool, we use a technique called tracing to track the Linux kernel function call process to visualize the clear point where performance improvements have occurred. Therefore, the user can determine the exact cause of the performance improvement based on various information such as whether the function execution latency at that point has decreased or whether the function's call depth has decreased. This paper also aims to prove the usefulness of the tool by analyzing the case in which performance improvement occurred by changing the data structure of the HSR module on Linux Kernel to Hash List.