性能测试必备知识-stat家族

1、详解 vmstat(Linux 系统级别

介绍:Virtual Meomory Statistics,报告虚拟内存统计信息。

会统计进程信息、内存、交换区、IO、磁盘、CPU 等数据

vmstat主要能看Linux 系统级别的性能指标

  • 运行状态、不可中断睡眠状态的进程数量
  • 内存、交换区、I/O、CPU 信息

  • 上下文切换次数、中断次数

  • 磁盘 I/O 的详细信息和概要信息

语法格式:

 vmstat [options] [delay [count]]
 
options:命令行参数,可选
delay:间隔多久统计一次数据,可选
count:统计一次,可选
注意:若只传了 delay,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

栗子:
vmstat 1   #每隔 1s 统计打印一次数据,统计无限次

vmstat 2 5 #每隔 2s 统计打印一次数据,共统计 5 次

1.1命令行参数:

2.1统计数据的字段说明:

2.1.1 procs:进程状态

2.1.2 memory:内存信息

2.1.3 swap:交换区

2.1.4 io:io 读写信息

现在的Linux版本块的大小为1024bytes

2.1.5 system:系统信息

2.1.6 CPU 详细信息

这些是总 CPU 时间的百分比

3.1数据来源

主要来自这三个文件

  1. /proc/meminfo

  2. /proc/stat

  3. /proc/*/stat

3.1.1

vmstat

#这些信息主要来自 /proc/stat

3.1.2

 

vmstat -s

#这些信息的分别来自于 /proc/meminfo、 /proc/stat和 /proc/vmstat

3.1.3

 

vmstat -d

#这些信息主要来自于 /proc/diskstats

4.1打印活动内存和不活动内存量

vmstat -a 2 2

5.1以 MB 单位输出结果

vmstat -S M 1 2

6.1以 MB 单位输出各事件计数器和内存的统计信息

vmstat -s -S M

注意事项

  • vmstat 不需要特殊权限

  • vmstat 报告旨在帮助确定系统瓶颈,所以它不会将自己视为正在运行的进程

  • 当前所有的 Linux 块都是 1024 字节, 旧内核可能报告的块为 512 字节,2048 字节或 4096 字节

2、详解 pidstat (均是进程、线程级别

安装:

yum install sysstat

备注说明:(The sysstat package contains sar, sadf, mpstat, iostat, pidstat, nfsiostat-sysstat,tapestat, cifsiostat and sa tools for Linux.)

介绍:

  • 对 Linux 任务的统计
  • 主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等

pidstat 主要能看什么性能指标

均是进程、线程级别

2.1 语法格式

 

pidstat [ -C comm ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { pid [,...] | SELF | ALL } ] [ -r ] [ -t ] [ -T { TASK | CHILD | ALL } ] [ -u ] [ -V ] [ -w ] [ interval [ count ] ]

# interval :间隔多久统计一次数据,可选

# count:统计一次,可选

# 注意:若只传了 interval ,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

2.2 字段说明

2.3 查看活跃进程的 I/O 读写情况

 

pidstat -d 1 10

字段说明:

2.4 查看活跃进程的上下文切换次数

 

pidstat -w 1 5

字段说明:

2.5 查看活跃进程的内存使用情况

 

pidstat -r 1 5

字段说明:

2.6 查看活跃进程的内存使用情况

 

pidstat -s 1 2

字段说明:

2.7 参数 -t

作用

显示进程关联的线程的统计信息

 

pidstat -t 1 2

  • TGID:主进程 ID

  • TID进程下的各个子线程 ID

2.8 参数 -l

作用

详细的输出进程命令和所有参数

 

pidstat -l 1 1

2.9 参数 --human

作用

人性化的输出大小

 

pidstat -d --human 1 2

2.10 -G process_name

作用

  • 仅显示命令名称包含字符串 process_name 的进程

  • 该字符串可以是正则表达式

  • 如果选项 -t 与选项 -G 一起使用,则还将显示属于该进程的线程(即使它们的命令名不包括字符串process_name)

 

pidstat -t -G pidstat 1 2

3、详解 mpstat(输出 CPU 相关信息)

mpstat 主要能看什么性能指标

  • 每个 CPU 的不同类型 CPU 使用率、不同软中断类型次数统计、总中断次数

  • 上述所有 CPU 的平均数据

语法格式

 

mpstat [ -A ] [ -n ] [ -u ] [ -V ] [ -I { keyword [,...] | ALL } ] [ -N { node_list | ALL } ] [ -o JSON] [ -P { cpu_list | ON | ALL } ] [ interval [ count ] ]

  • interval :间隔多久统计一次数据,可选

  • count:统计一次,可选

  • 注意:若只传了 interval ,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

字段说明

命令行参数

-P { cpu_list | ON | ALL }

作用

  • 指定要报告其统计信息的 CPU

  • cpu_list:是用 , 分隔的值或值范围的列表(例如 0,2,4-7,0-1 )

  • ON:将为每个联机 CPU 报告统计信息

  • ALL:将为所有 CPU 报告统计信息

cpu_list 的栗子

只指定 CPU1

 

mpstat -P 1 1 2

ON 的栗子

 

mpstat -P ON 1 2

ALL 的栗子

 

mpstat -P ALL 1 2

重点

  • 0 是第一个 CPU

  • all 是所有处理器之间的全局平均值

-I { keyword [,...] | ALL }

作用

  • 输出中断统计信息

  • keyword 可以输入:CPU、SCPU、SUM、ALL

  • CPU显示每秒中断数量,从 /proc/interrupts 读取数据

  • SCPU:显示每秒软中断数量,从 /proc/softirqs 读取数据

  • SUM:显示每个处理器的中断总数

  • ALL:输出上面三个关键字的所有内容

SCPU 的栗子

 

mpstat -I SCPU 1 2 -P ALL

SUM 的栗子

显示所有 CPU 平均中断次数

 

mpstat -I SUM 1 2

显示每个 CPU 的中断次数、所有 CPU 平均中断次数

 

mpstat -I SUM 1 2 -P ALL

4、详解 iostat(报告 CPU 信息和 I/O 读写信息)

iostat 主要能看什么性能指标

  • 系统 CPU 使用率

  • 设备的磁盘使用情况

语法格式

 

iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [-j { ID | LABEL | PATH | UUID | ... } ] [ -o JSON ] [ [ -H ] -g group_name ] [ --human ] [-p [ device [,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]

分为两个部分:系统 CPU 信息,设备的 I/O 读写信息

系统 CPU 信息字段说明

设备的 I/O 读写信息字段说明

命令行参数

具体的栗子

1.只显示系统 CPU 信息,并伴随着时间戳

 

iostat -t -c

2.只显示指定磁盘的统计信息

 

iostat -d sda

3.显示指定磁盘和他所有分区的信息,并友好显示

 

iostat -p sda -h

4.显示整合所有设备的磁盘信息

 

iostat -g all_device

5.整合所有设备的磁盘信息,并只显示总的数据

 

iostat -g all_device -h

6.忽略没有活动的设备的统计信息

 

iostat -z 1 2

可以发现,第一次输出的时候没有活动的设备还是会打印出来,怎么解决?(下面方法)

7.忽略没有活动的设备的统计信息和第一次统计的信息

 

iostat -z -y 1 2

8.显示更详细的统计信息

 

iostat -x -d 1 2 -y -z

字段说明

重点

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值