关闭

不是所有的Linux工具都会让人惊叹

发表于:2024-4-12 09:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:didiplus    来源:攻城狮成长日记

  今天我要向大家介绍一款非常强大的系统诊断和监控工具——sysdig。它能替代top、iftop、lsof和strace等工具,让你的工作更加高效。下面让我举几个应用场景,让你亲眼见证它的强大!
  什么是sysdig
  sysdig是一款开源的系统诊断和监控工具,Sysdig可以看做是 strace + tcpdump + lsof + htop + iftop 以及其他系统分析工具的合集 。能够实时捕获系统的运行状态并以可视化的方式展示。通过sysdig,用户可以深入了解系统的各项指标、进程活动、网络流量等情况,从而更好地进行故障排查、性能优化和安全监控。
  安装sysdig
  首先,我们需要安装sysdig工具。sysdig提供了多种安装方式,包括源代码编译安装和各种包管理器安装。在大多数Linux发行版上,您可以通过包管理器轻松安装sysdig。例如,在Ubuntu系统上,可以使用以下命令安装:
  sudo apt-get  -y install sysdig
  安装成功后,通过下面命令查看对应的版本信息:
  controlplane $ sysdig --version
  sysdig version 0.26.4
  使用场景
  场景一:跟踪进程的系统调用
  跟踪进程的系统调用是故障排查中常用的手段,可以帮助您了解应用程序在执行过程中的具体行为。举例来说,假设一个应用程序在处理某个请求时出现了失败,通过跟踪系统调用,您可以得知是在哪个环节出现了问题,或者是因为缺少了哪个依赖库。现在假设您有一台运行Nginx服务的服务器,想要查看该Nginx服务的系统调用,您可以使用以下命令:
  sysdig proc.name=nginx
  或
  sysdig proc.pid = 进程号
  执行完上述命令后,它会实时监听Nginx的进程,如下图:
监听Nginx
  我们在另外一个终端向这个nginx发送一个HTTP请求,这时,sysdig就会捕抓到请求Nginx的所有数据。如下图:
监听Nginx的结果
  场景二:系统性能分析
  这也是sysdig的拿手好戏之一。比如,要查看CPU使用最高的进程,您可以使用以下命令:
  sysdig -c  topprocs_cpu
  执行上述命令后,如下图:
监控CPU情况
  这将列出使用CPU最高的进程,可以清晰的看出当前系统中哪些进程占用CPU最高,一目了然,非常直观。
  查看网络使用最高的进程,您可以执行以下命令:
  sysdig -c topprocs_net
  执行完上述命令后,将列出使用网络最高的进程,可以看出哪些进程使用网络流量比较大。如下图:
监控网络情况
  要查看读写硬盘最高的进程,您可以执行以下命令:
  sysdig -c  topprocs_file
  执行上述命令后,如下图:
监控硬盘读写情况
  这里会帮你列出读写硬盘最高的进程,假设你的系统硬盘读写慢,你想知道是那个进程,占用的磁盘IO比较大,就可以通过这个命令得出来,哪个进程现在占用大量的磁盘IO,从而造成硬盘的一个瓶颈。
  查看网络链接,您可以执行以下命令:
  sysdig -c netstat
  执行上述命令后,如下图:
  这里面列出的,与我们直接使用netstat命令列出的内容类似,包括监听,网络链接等等。
  查看进程列表,您可以执行以下命令:
  sysdig -c ps
  执行这个命令后,帮你列出当前系统中所有的进程,包括进程ID以及它的文件描述符的限制,如下图:
  查看系统打开的文件描述,您可以执行以下命令:
  sysdig -c  lsof
  执行完这个命令后,将列出系统中打开的所有文件描述符。包括进程PID以及文件,都能看到。如下图:
  场景三:查看某个目录被哪些进程打开
  想要了解某个目录被哪些进程打开,可以使用以下命令:
  sysdig fd.name contains /etc
  它将会过滤出打开文件描述符中,包含etc的路径,etc目录下的所有的打开文件都能在这里看到。如下图:
  写到最后
  sysdig是一款强大的系统诊断和监控工具,结合系统调用跟踪和抓包功能,能够实时捕获系统运行状态并以可视化方式展示,提供了丰富的命令行工具和高级功能,可应用于性能优化、故障排查、安全监控等多个场景,是系统管理员和运维工程师的得力助手。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号