strace、ltrace、ftrace 和 dtrace

1. strace

功能

strace 用于追踪系统调用和信号,是诊断和调试程序的强大工具。

strace [options] -p   

常用选项
-p : 附加到指定的进程。
-c: 显示系统调用的统计信息,包括总调用数、总时间等。
-e trace=: 只跟踪特定类型的系统调用,例如:
-e trace=file:跟踪文件相关的系统调用。
-s : 设置输出字符串的最大长度。
-o : 将输出写入指定文件。

示例:
strace -p 1234  
strace -c -p 1234  
strace -e trace=file -p 1234  

使用场景
  • 诊断应用程序的错误。
  • 分析系统调用的性能。
  • 检查应用程序的安全行为。

2. ltrace

功能

ltrace 用于跟踪用户程序调用的动态库函数。

用法
ltrace [options] -p   

常用选项
-p : 附加到指定进程。
-e : 指定要跟踪的库函数,例如:-e malloc;
-o : 将输出写入指定文件。

示例
bash
ltrace -p 1234  
ltrace -e malloc -p 1234  
使用场景
  • 分析程序与共享库的交互。
  • 检查程序使用的函数和参数。

3. ftrace

功能

ftrace 是 Linux 内核提供的跟踪机制,可用于追踪内核活动。

用法
  • ftrace 的配置和使用一般涉及到 /sys/kernel/debug/tracing 目录。
  • 启用 ftrace 需要 root 权限。
常用操作
  1. 启用跟踪:

    • 通过写入文件来启用特定的跟踪功能
      echo function > /sys/kernel/debug/tracing/current_tracer 

              2.查看情况

cat /sys/kernel/debug/tracing/trace 

               3. 禁用跟踪

echo 0 > /sys/kernel/debug/tracing/tracing_on  

 使用场景

  • 深入分析内核函数调用。
  • 调试内核模块。
  • 性能调优。

4. dtrace

功能

dtrace 是一个动态追踪工具,能够从用户空间和内核空间进行监控,主要用于 Solaris 系统,但某些 Linux 发行版提供支持。

用法
dtrace [options] -p   

常用选项
-p : 附加到指定的进程。
-n : 指定要监控的探针。
-s 
                    
                    

你可能感兴趣的:(服务器,linux,数据库)