共计 603 个字符,预计需要花费 2 分钟才能阅读完成。
Linux获取系统调用信息
获取系统调用信息方式很多,下面是比较简单的几种方式,可以直观的查看每个进程的系统调用数据。
1 sysdig
抓取系统调用
# 每一分钟采集一个文件,会保留5个采集文件,采集的是系统全部数据
sysdig -G 60 -W 5 -w dump_0323.scap
# 采集某个容器的系统调用:jolly_gates是容器名称,-w指定文件n sysdig container.name=jolly_gates -w dump_0323_19.scapn
读取抓取的系统调用数据
# 读取数据,grep -v反选
sysdig -r dump_0323_19.scap | grep -v tail | grep -v mysqld
2 strace
# strace指定进程-p, -o指定文件
strace -p PID -o 1.txt
3 系统trace debug
cd /sys/kernel/debug/tracing/
ls
linux3.10:
linux4.18:
这里面的envents文件代表可以监控的类型,包括tcp、kvm、系统调用等
该目录下及其子目录下都有一个enable文件,只需要
echo 1 > enable
在完成相应操作后。
echo 0 > enable
这时可以在/sys/kernel/debug/tracing/trace文件中查看到采集的数据。
而该目录下的set_envent_pid文件中,可以放入特定进程号,这样就可以只抓特定进程的数据。
正文完
发表至: 操作系统
2023-05-24