⑴Sysdig是一款系统调试工具,能够对系统进行故障排查和监控,在系统故障的时候非常实用,下面小编就给大家介绍下Linux使用Sysdig排除故障的方法,感兴趣的朋友可以来了解下。
⑵在 Linux 上,可使用以下命令来安装 Sysdig:
⑶curl -s | sudo bash
⑷这将把 Sysdig 安装到 rpm 或 deb 系的 Linux 系统。
⑸实时捕获,结果打印到标准输出:
⑹将捕获结果保存到文件 system.scap,方便稍后分析:
⑺sysdig -w system.scap
⑻捕获指定的事件数 并保存到文件:
⑼sysdig -n -w system.scap
⑽读取已捕获的文件:
⑾sysdig -r system.scap
⑿( ( ( ( ( ( ( (
⒀ ::. sysdig ( 》 sysdigevent event_type= event_data=
⒁ ::. sysdig ( 》 sysdigevent event_type= event_data=
⒂ ::. sysdig ( 》 sysdigevent event_type= event_data=
⒃ ::. sysdig ( 》 sysdigevent event_type= event_data=
⒄ ::. sysdig ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒅ ::. 《NA》 ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒆ ::. 《NA》 ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒇ ::. 《NA》 ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒈ ::. 《NA》 ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒉ ::. 《NA》 ( 》 switch next=(ml pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒊ ::. ml ( 《 poll res= fds=
⒋ ::. ml ( 》 poll fds= timeout=
⒌ ::. ml ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒍ ::. 《NA》 ( 》 switch next=(memcached pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒎ ::. memcached ( 《 epoll_wait res=
⒏ ::. memcached ( 》 epoll_wait maxevents=
⒐ ::. memcached ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒑ ::. 《NA》 ( 》 switch next=(plugin-containe pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⒒ ::. plugin-containe ( 《 poll res= fds=
⒓ ::. plugin-containe ( 》 getrlimit resource=(RLIMIT_STACK
⒔通过 Sysdig 捕获的结果如上所示,每列的意思分别为:
⒕事件方向,》 为进入事件,《 为退出事件
⒖事件类型,比如 open、read 等
⒗在默认情况下,Sysdig 捕获的信息非常多,要从中找到我们感 兴趣的信息,这就需要类似 grep 的过滤功能。
⒘按字段类别进行过滤:
⒙sysdig -r system.scap proc.name=sysdig
⒚这条命令过滤出进程名为 sysdig 的系统事件,结果为:
⒛ ::. sysdig ( 》 sysdigevent event_type= event_data=
① ::. sysdig ( 》 sysdigevent event_type= event_data=
② ::. sysdig ( 》 sysdigevent event_type= event_data=
③ ::. sysdig ( 》 sysdigevent event_type= event_data=
④ ::. sysdig ( 》 switch next= pgft_maj= pgft_min= vm_size= vm_rss= vm_swap=
⑤Sysdig 提供包括 fd、process、evt、user、group、syslog 等字段 类别,可通过 sysdig -l 查询。
⑥除 = 外,Sysdig 的过滤表达式还支持 !=、《、《=、》、》= 及 contains 等比较操作符。
⑦同时,也可以使用 and、or、not 等布尔操作符。例如:
⑧sysdig -r system.scap proc.name=sysdig and evt.type=switch
⑨在 Sysdig 中,chisels 是通过 Lua 编写的脚本,可以用来扩展 Sysdig 的过滤功能。
⑩比如我们想看读写磁盘文件最频繁的进程,可以使用 topprocs_file 这个 chisels:
Ⅰsysdig -c topprocs_file
ⅡBytes Process
Ⅲ------------------------------
Ⅳ.KB mozStorage
Ⅴ.KB perl
Ⅵ.KB tmux
Ⅶ.KB X
Ⅷ.KB urxvtd
Ⅸ更多 chisels,可通过 sysdig -cl 了解。当然,如果你熟悉 Lua, 那么也可以编写自己的 chisels。
Ⅹ上面就是Linux使用Sysdig的方法介绍了,通过使用Sysdig命令,及时捕获Linux系统的故障信息,并针对问题进行相关修复,保证Linux系统的性能保持在最佳状态。