Linux监控命令之==>strace
一、命令介绍
strace 常用来跟踪进程执行时的系统调用和所接收的信号。在Linux 世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
二、参数说明

- -p:跟踪指定的进程。
- -f:跟踪由fork 子进程系统调用。
- -F:尝试跟踪vfork 子进程系统调吸入,与-f 同时出现时, vfork 不被跟踪。
- -o filename:默认strace 将结果输出到stdout。通过-o 可以将输出写入到filename 文件中。
- -ff:常与-o 选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID 文件。
- -r:打印每一个系统调用的相对时间。
- -t:在输出中的每一行前加上时间信息。-tt 时间确定到微秒级。还可以使用-ttt 打印相对时间。
- -v:输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出。
- -s:指定每一行输出字符串的长度,默认是32。文件名一直全部输出。
- -c:统计每种系统调用所执行的时间,调用次数,出错次数。
- -d:输出strace 关于标准错误的调试信息。
- -h:输出简要的帮助信息。
- -i:输出系统调用的入口指针。
- -q:禁止输出关于脱离的消息。
- -tt:在输出中的每一行前加上时间信息,微秒级。
- -T:显示每一调用所耗的时间。
- -V :输出strace 的版本信息。
- -x:以十六进制形式输出非标准字符串。
- -xx:所有字符串以十六进制形式输出。
- -u:以username的UID和GID执行被跟踪的命令
- -e expr:指定一个表达式,用来控制如何跟踪.格式:[qualifier=][!]value1[,value2]
- qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用来限定的符号或数字.默认的 qualifier是 trace.感叹号是否定符号.例如:-eopen等价于 -e trace=open,表示只跟踪open调用.而-etrace!=open 表示跟踪除了open以外的其他调用.有两个特殊的符号 all 和 none. 注意有些shell使用!来执行历史记录里的命令,所以要使用\\.
- -e trace=set 只跟踪指定的系统 调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all
- -e trace=file 只跟踪有关文件操作的系统调用
- -e trace=process 只跟踪有关进程控制的系统调用
- -e trace=network 跟踪与网络有关的所有系统调用
- -e strace=signal 跟踪所有与系统信号有关的 系统调用
- -e trace=ipc 跟踪所有与进程通讯有关的系统调用
- -e abbrev=set 设定strace输出的系统调用的结果集。-v 等与 abbrev=none.默认为abbrev=all
- -e raw=set 将指定的系统调用的参数以十六进制显示
- -e signal=set 指定跟踪的系统信号.默认为all。如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号
- -e read=set 输出从指定文件中读出 的数据。例如: -e read=3,5
- -e write=set 输出写入到指定文件中的数据
三、具体用法介绍
1、跟踪指定进程


Linux监控命令之==>strace的更多相关文章
- linux监控命令全覆盖(图文说明)
1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...
- Linux监控命令整理(top,free,vmstat,iostat,mpstat,sar,netstat)
1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...
- linux 监控命令
先总结下常用的一些监控工具: ##linux命令 w 系统负载 lsof -p pid 进程打开的文件 lsof -i:port 端口的运行情况 free -m 内存情况 vmstat 进程.内存.内 ...
- Linux监控命令之==>sar
一.使用说明 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及 ...
- linux监控命令nc用法
一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程. -w <超时秒数> 设置等待连线的时间. -u 表示使用UDP协议 -z 使 ...
- Linux监控命令之==>lsof
一.命令说明 lsof 命令的原始功能是列出打开的文件的进程,但LINUX 下,所有的设备都是以文件的行式存在的,所以,lsof 的功能很强大. 二.参数说明 -a :列出打开文件存在的进程 -c&l ...
- Linux监控命令之==>free
一.命令说明 free 命令显示系统内存的使用情况:包括物理内存.交换内存(swap)和内核缓冲区内存 二.参数说明 -b -k -m -g:分别以字节.KB.MB.GB为单位显示内存使用情况 -l: ...
- Linux监控命令之==>top
一.命令说明 top 命令能够实时监控系统的运行状态,并且可以按照CPU.内存和执行时间进行排序,同时top 命令还可以通过交互式命令进行设定显示,通过top 命令可以查看即时活跃的进行. 二.参数说 ...
- Linux监控命令
dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2它不是一个专业的测试工具,不过如果对于 ...
随机推荐
- nvidia-docker安装
如果之前安装过docker1.0版本,需要先删掉该版本和之前创建的容器 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 ...
- U-Boot Driver Model领域模型设计 (转)
需求分析 在2014年以前,uboot没有一种类似于linux kernel的设备驱动模型,随着uboot支持的设备越来越多,其一直受到如下问题困扰: 设备初始化流程都独立实现,而且为了集成到系统,需 ...
- 关于log4j的配置文件
因为要在spring中添加Mongodb,在网上查阅资料的时候我发现有人在web.xml中添加如下代码: <context-param> <param-name>l ...
- NFS原理
1.什么是NFS? 全称 network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制. 什么是文件系统? 2.为什么要用共享存储? 前端所有的应用服务器接收到用户上传 ...
- mysql备份基础
1.1 备份的原因 衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO), 前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间. 1.1.1 备份的目录 做灾难恢复: ...
- 把自己的web项目发布到网页上
一.首先,登录自己的bce百度云,bce.baidu.com,建立一个自己的网站 点击左边的应用引擎BAE 点击BAE基础版的部署列表,刚开始是没有的,要添加部署 其中的选项只需要写域名(应用名称会和 ...
- split 命令
最近下游一直说我供给的文件存在乱码,下游定位到了具体哪一条. 一个250w的数据量,有一条数据有问题.几百兆的文件用note去搜索. 我使用用notepad++后,发现根本打不开. 于是只能先拆分后用 ...
- Acwing-283-多边形(区间DP)
链接: https://www.acwing.com/problem/content/285/ 题意: "多边形游戏"是一款单人益智游戏. 游戏开始时,给定玩家一个具有N个顶点N条 ...
- JAVA笔记10-抽象类
(1)abstrac关键字类修饰的类是抽象类,用abstract修饰的方法是抽象方法: (2)含有抽象方法的类必须被定义为抽象类: (3)抽象类必须被继承,抽象方法必须被重写(或者将子类也声明为抽象类 ...
- VM删除快照失败,磁盘空间不足,只是删除了快照名字(全网唯一解决办法)
原创: 删除之前的快照,发现只是把名字删除了, 看着这么多文件也不知道怎么删,一顿百度google也是没找到答案 于是就自己琢磨 因为删除快照的时候,是先把快照删除,然后删除无效的文件 所以先让这个盘 ...