sysdig 超级系统工具、sar

一、Sysdig

是一个超级系统工具,比 strace、tcpdump、lsof 加起来还强大。可用来捕获系统状态信息,保存数据并进行过滤和分析。使用 Lua 开发,提供命令行接口以及强大的交互界面。

安装

https://www.cnblogs.com/NiceTime/p/7640558.html   

使用示例

1、网络

查看占用网络带宽最多的进程

sysdig-probe-loader (不执行,下面会报错)

sysdig -c topprocs_net
Bytes               Process             PID                 
--------------------------------------------------------------------------------
18.03KB             prometheus          1408
388B                sshd                1495

显示主机192.168.0.1的网络传输数据

as binary:
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1
as ASCII:
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1

查看连接最多的服务器端口

sysdig -c fdcount_by fd.sport "evt.type=accept"

sysdig -c fdbytes_by fd.sport

查看客户端连接最多的ip

sysdig -c fdcount_by fd.cip "evt.type=accept"
sysdig -c fdbytes_by fd.cip

列出所有不是访问apache服务的访问连接

sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

2、应用

查看机器所有的HTTP请求

sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET

查看机器所有的SQL select查询

sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT

3、硬盘 I/O

查看使用硬盘带宽最多的进程

sysdig -c topprocs_file

列出使用大量文件描述符的进程

sysdig -c fdcount_by proc.name "fd.type=file"e

二、sar(System Activity Reporter 系统活动情况报告)

是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

我们可以使用sar命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈,并且有助于我们找出这些烦人的性能问题的解决方法。

Linux 内核维护着一些内部计数器,这些计数器包含了所有的请求及其完成时间和 I/O 块数等信息,sar命令从所有的这些信息中计算出请求的利用率和比例,以便找出瓶颈所在。

性能问题排查技巧:

  • 怀疑 CPU 存在瓶颈,可用sar -usar -q等来查看。
  • 怀疑 内存存在瓶颈,可用sar -Bsar -rsar -W等来查看。
  • 怀疑 I/O 存在瓶颈,可用sar -bsar -usar -d等来查看。

sar命令来自于sysstat工具包,如果提示sar命令不存在,需先安装sysstat

语法

语法:sar [选项] [参数]

选项:
    -A:显示所有的报告信息;
    -b:显示I/O速率;
    -B:显示换页状态;
    -c:显示进程创建活动;
    -d:显示每个块设备的状态;
    -e:设置显示报告的结束时间;
    -f:从指定文件提取报告;
    -i:设状态信息刷新的间隔时间;
    -n:网络统计信息;
    -R:显示内存状态;
    -P:报告每个CPU的状态;
    -u:显示CPU整体的利用率;
    -v:显示索引节点,文件和其他内核表的状态;
    -w:显示交换分区状态;
    -x:显示给定进程的状态。

参数:
    间隔时间:每次报告的间隔时间(秒);
    次数:显示报告的次数。

常用用法

  • sar [command] 2 5:每2秒输出一次 sar [command],总计输入五次,省略5表示持续输出。

  • sar -n DEV 1 -e 22:26:00 >/tmp/123 &:每秒采样一次网络情况直到22:26并把采样数据输出到/tmp/123。

  • sar -f /var/log/sa/sa27 -s 23:00:00 -e 00:00:00 -r:本月27日23点至0点的内存数据,需要通过crontab设置定时任务。

1、CPU 状态统计

-P {CPU_LIST | ALL}:用于分析多核CPU的性能状况,可以使用CPU_LIST分析指定核心的CPU状态,可以使用离散值和连续值,也可以使用ALL分析所有CPU核心状态。

# sar -P 0 1 3  # 表示每秒采集0号CPU状态,总共采样3次。
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 	12/21/2022 	_x86_64_	(4 CPU)

11:15:32 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:15:33 AM       0      2.97      0.00      0.99      0.00      0.00     96.04
11:15:34 AM       0      1.02      0.00      1.02      0.00      0.00     97.96
11:15:35 AM       0      2.00      0.00      2.00      0.00      0.00     96.00
Average:          0      2.01      0.00      1.34      0.00      0.00     96.66
  • CPU:0 表示采集的是 0 号CPU,all 表示统计信息为所有 CPU 的平均值。
  • %user:指运行非特权用户进程时间百分率。
  • %nice是指运行特权用户进程时间百分率
  • %system:是指运行内核进程时间,这个时间包括了CPU处理软硬中断的时间。
  • %iowait:是指等待I/O完成的时间。
  • %steal是指运行虚拟机的时间百分率,steal意味着被偷走的时间(一般是0)
  • %idle是指cpu空闲时间百分率,若机器上并未运行任何程序,所以此列一直为100%。

注意说明:

  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈。
  2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。
  3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

-q:用于报告队列长度以及平均负载。

# sar -q 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 	12/21/2022 	_x86_64_	(4 CPU)

11:21:52 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
11:21:53 AM         1       274      0.01      0.05      0.05         0
11:21:54 AM         2       274      0.01      0.05      0.05         0
11:21:55 AM         1       274      0.01      0.05      0.05         0
Average:            1       274      0.01      0.05      0.05         0
  • runq-sz:等待cpu调度的任务数。
  • plist-sz:处于任务列表的任务总数。
  • ldavg-1ldavg-5ldavg-15:分别指1分钟,5分钟,15分钟内cpu的负载。
  • blocked:表示等待I/O完成而被阻塞的任务总数,不为0则需要留意I/O是否存在性能瓶颈。

 

 

 

 

 

 

Linux 状态命令之 sar_linux sar_奔跑的大西吉的博客-CSDN博客

https://www.oschina.net/p/sysdig?hmsr=aladdin1e1

 

posted @ 2020-10-21 10:07  凡人半睁眼  阅读(234)  评论(0编辑  收藏  举报