当前位置:   article > 正文

kutrace--系统性能分析环境搭建

kutrace--系统性能分析环境搭建

一. 动机

1.1 本着生命不息,折腾不止的人生理念,最近迷上了系统性能优化;找了一本书<<Understanding Software Dynamics>>作为研究资料,看完前几章,作者对系统(从硬件到软件)的理解令人叹为观止,性能优化从硬件讲到软件,时间精确到纳秒,跟着作者的思路理解系统性能优化,颇有醍醐灌顶之感。

1.2 本文章对读者做了一些假设,技术上假设读者对操作系统有基本的概念,会基本的MobaXterm操作,会基本的vim操作,能够看懂英文文档。

二. KUtrace简介

2.1 kutrace是一款基于Linux的软件工具,可以记录每一次用户态与内核态之间转换、每一次系统调和返回,每一次系统中断到中断返回,每一次系统trap,每一次上下文切换的时间。每秒在cpu每个核上做200000次记录,CPU的额外开销保持在%0.5以下,因此速度大约是ftrace之类的工具的10倍。

三. 环境准备

3.1 宿主机:Windows11

3.2 虚拟机vmware workstation 17试用版

        https://download3.vmware.com/software/WKST-1751-WIN/VMware-workstation-full-17.5.1-23298084.exe

3.3 系统:Ubuntu22.04服务器版

        https://cn.ubuntu.com/download/server/thank-you?version=22.04.4&architecture=amd64

3.4 Linux内核5.10.66版

        https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.66.tar.xz

3.5 宿主机终端MobaXterm

        MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition

3.6 kutrace

        https://github.com/dicksites/KUtrace/archive/refs/heads/master.zip

四. 安装过程

4.1 ubuntu22.04服务器安装:随便找一篇vmware安装ubuntu系统的文章即可,在给ubuntu分配资源的时候最好分到50G以上(在安装完Ubuntu服务器,再编译完内核后空间占用达到31G.....)

切记要勾选虚拟化CPU性能计数器

磁盘的扩容参照Ubuntu 20.04.3-live-server 磁盘如何扩容_ubuntu 给vda2 扩容-CSDN博客

安装完成后进入系统查看系统ip地址,使用MobaXterm连接上即可

4.2 linux-5.10.66内核安装

1. sudo apt-get install gcc; sudo apt-get install g++

2. sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

3. mkdir Download; cd Download; wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.66.tar.xz; tar xvf linux-5.10.66.tar.xz

3. wget https://github.com/dicksites/KUtrace/blob/master/linux/patches-linux-5.10.66-x86.tar.gz

4. tar xvf patches-linux-5.10.66-x86.tar.gz

5. cd linux-5.10.66; cp -v /boot/config-$(uname -r); mv config-$(uname -r) .config

6. make oldconfig,所有值都默认(一直按Enter键即可)

7. make menuconfig,直接退出即可

8. 打开.conf文件,定位到证书相关配置项

9. sudo make -j$(nproc),这一步的安装时间较长,在我电脑上装了2小时,如有其他事可以先做

10. sudo make modules_install

11. sudo make install

12. sudo reboot

13. cd Download/patches-linux-5.10.66-x86; cp -r ../linux-5.10.66

14. 将所有的xxx.patched结尾文件覆盖xxx文件

15. make menuconfig

16. sudo make -j$(nproc)

17. sudo make modules_install

18. sudo make install

19. sudo reboot

20. 进入module目录,在KUTRACE文件夹中寻找,切换至root用户make即可

21. 给kutrace_mod.ko签名

23. 执行sudo insmod kutrace_mod.ko tracemb=2后,kutrace加载入内核后即可参照

      <<Understanding Software Dynamics>>中的示例使用

五. 报错及修复方案

5.1 证书问题

INSTALL arch/x86/crypto/aegis128-aesni.ko
At main.c:160:
- SSL error:FFFFFFFF80000002:system library::No such file or directory: ../crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file: ../crypto/bio/bss_file.c:75
sign-file: : No such file or directory
make[1]: *** [scripts/Makefile.modinst:33: arch/x86/crypto/aegis128-aesni.ko] Error 1
make: *** [Makefile:1445: _modinst_] Error 2

方案: 照图中操作后,回到上面步骤四-4.2-9继续操作即可

5.2 编译kutrace_mod模块,没有出现kutrace_mod.ko

方案:切换至root用户编译即可

原因:  Makefile文件中$(PWD)在root用户下才获取当前目录

5.3 加载kutrace_mod.ko出现段错误

方案:

六. 参考资料

1. https://github.com/dicksites/KUtrace

2. https://www.kernel.org/doc/html/latest/kbuild/kconfig.html
3. https://blog.csdn.net/weixin_41182157/article/details/83312861
4. https://zhuanlan.zhihu.com/p/499173699

5. "VMware Workstation and Device/Credential Guard are not compatible" error in VMware Workstation on Windows 10 host (2146361)

6. win11系统vmware虚拟机报错“不支持嵌套虚拟化”问题解决方案汇总-CSDN博客

7. <<Understanding Software Dynamics>>

8. <<linux_patches_installation_guide.pdf>>
9. <<kutrace_user_guide.pdf>>

10. <<Vim实用技巧.pdf>>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/628033
推荐阅读
相关标签
  

闽ICP备14008679号