Linux 性能优化/调试
文章平均质量分 96
Linux 性能优化/调试
Projectsauron
昨夜西风凋碧树,独上高楼,望尽天涯路。
展开
-
Linux 下 gdb 的使用
GDB(GNU调试器)是一个功能强大的开源调试工具,可用于调试多种编程语言,包括 C、C ++、Fortran 等。它可以在运行过程中检查程序状态,设置断点以停止程序执行并观察变量值、内存状态等,并提供一系列命令和功能来辅助调试过程。GDB设置断点GDB允许你在程序的某一行代码上设置断点,当程序执行到这一行时会暂停并等待调试命令。单步调试:通过单步调试,你可以逐行执行程序并观察每一行代码的执行情况,方便定位问题。查看变量和内存:在调试过程中,你可以查看各个变量的值,检查它们是否符合预期。原创 2024-08-26 15:09:40 · 36738 阅读 · 35 评论 -
Linux 下利用 Valgrind 进行内存调试
Valgrind是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非法内存访问等问题。它在 Linux 平台上广泛使用,并且支持下多种处理器架构。原创 2024-08-11 15:55:33 · 47102 阅读 · 3 评论 -
Linux 调试之动态打印
在 kernel 驱动代码中,使用动态输出是系统内核调试的重要手段之一,printk打印是全局的,只能设置输出等级,而且使用printk每次都要重新编译内核,很不方便。。而动态输出可以在不需要重新编译内核的情况下,方便的打印出内核的 debug 信息。动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出,printk被dev_infodev_dbgdev_err之类的函数代替,dev_xxx函数的本质还是使用printk打印的,只是对printk进行了一层包装。原创 2024-08-08 16:09:31 · 49079 阅读 · 5 评论 -
Linux 下查看 CPU 使用率
Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。为了维护 CPU 时间, Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。节拍率 HZ 是内核的可配选项,可以设置为 100、250、1000 等。不同的系统可能设置不同数值。原创 2024-08-07 20:50:54 · 59680 阅读 · 5 评论 -
Linux 利用 ftrace 分析内核调用
在 Linux 中,ftrace是一种用于跟踪内核函数调用和事件的工具。它是一个功能强大的跟踪框架,可用于分析和调试内核性能问题。ftrace提供了多种功能,包括函数跟踪、事件记录和性能分析等。它能够记录函数的调用和返回信息,以及函数执行的路径和时间。通过跟踪这些信息,我们可以了解到内核函数的执行情况,从而定位和解决性能问题。ftrace使用了内核中的一些机制来实现跟踪功能。其中一个关键的机制是函数预编译器,它会在每个内核函数的入口和出口处插入一些特殊的指令,用于记录函数的调用和返回信息。原创 2024-08-07 16:27:35 · 49962 阅读 · 1 评论 -
Linux 中 core dump 异常的分析
在 UNIX 系统中,常将“主内存称为核心(core),因为在使用半导体作为内存材料之前,便是使用核心(core)。而核心映像(core image)就是 “进程”(process)执行当时的内存内容。当进程发生错误或收到 “信号”(signal)而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。Core dump是指在程序异常终止时,操作系统将程序的内存映像保存到磁盘上的一种机制。原创 2024-08-06 21:52:00 · 50814 阅读 · 0 评论 -
Linux 利用 iostat 和 iotop 进行 IO 分析
在Linux 系统上,iostat和iotop这两个 IO 数据工具非常常用。它们都是性能分析领域中不可缺少的工具性软件。如果 Linux 系统性能变慢,我们会用top命令 来查看系统性能。它被用来检查是什么进程在服务器上占有如此高的使用率,对于大多数 Linux 系统管理员来说很常见,现实世界中被 Linux 系统管理员广泛采用。如果在进程输出中你没有看到很大的不同,你仍然有选择查看其他东西。比如你可以在top。原创 2024-08-06 18:18:55 · 50820 阅读 · 2 评论 -
Linux 下 perf 的使用
perf 是一个性能分析工具(基于 Linux 内核提供的性能事件perf_event口),用于对 Linux 系统进行性能调优和性能分析。它可以通过收集硬件性能计数器、跟踪系统事件和采样程序调用栈等方式来提供详细的性能统计信息。perf 依赖事件进行统计,这里的事件是通过采样机制,并不是 clock 级别的统计;根据使用 perf 工具的不同按测量事件的类型进行统计。原创 2024-08-05 22:38:19 · 51388 阅读 · 0 评论
分享