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参数进行追踪;
浙公网安备 33010602011771号