strace-常用的跟踪进程或线程系统调用的工具

strace-常用的跟踪进程或线程系统调用的工具

当想要知道某个进程在进行什么样的系统调用时,可以用strace进行追踪;

使用场景:用于查看磁盘IO问题时(磁盘IO异常)的文件定位

运行原理:通过追踪系统调用,比如追踪open、read、write函数来查看打开的文件

安装:yum install strace -y

常用选项:

-p:指明进程的pid

-f:同时追踪线程的系统调用(默认只追踪进程的)

-e:指定要查看哪个函数的系统调用

      例:strace -p 126529 -e write,表示查看126529进程的进行write调用的情况

-tt:打印出调用时间

用法示例:

strace -pf 126529

常见系统调用函数说明:

open:open函数表示打开的文件名

read:read函数显示了打开文件的文件描述符、读取的数据大小

write:write函数显示了打开文件的文件描述符、写入数据大小

fdatasync:fdatasync函数表示在向磁盘刷新文件

特别说明:

通过strace追踪系统调用事件时,明明有大量的io操作,通过strace缺看不到任何open、write函数的调用;

此时是由于strace默认是追踪进程的,当有些进程是通过子线程进行IO操作时,追踪进程当然就看到不的,所以要加上-f参数进行追踪;
posted @ 2024-01-04 20:17  寻梦99  阅读(27)  评论(0)    收藏  举报