Sysstat是一个工具集,包括sarpidstatiostatmpstatsadfsadc。其中sar是其中最强大,也是最能符合我们测试要求的工具,同时pidstat也是非常有用的东东,因此本文结合性能测试重点介绍这两个工具。

1.Sysstat下载地址

下载:http://sebastien.godard.pagesperso-orange.fr/download.html

2.Sysstat的安装

#解压tar.gz包
tar -zxvf sysstat-12.4.0.tar.gz #进入解压后的目录
cd sysstat-12.4.0 #开始安装
./configure make make install

3.监测保存性能数据

pidstat工具

#pidstat 的用法:

pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
常用的参数: -u:默认的参数,显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换情况
-t:显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD | ALL }这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析。
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数

pidstat命令没有保存性能数据的功能。

监测某个进程

1.找到相应进程的PID

#查所有
ps -e #查docker的进程
ps -ef | grep docker

2.使用pidstat命令监测进程

//每隔2秒,显示5次,所有活动进程的CPU使用情况
pidstat 2 5 //每隔2秒,显示5次,PID为3132的进程的CPU使用情况显示
pidstat -p 3132 2 5 //每隔2秒,显示5次,PID为3132的进程的内存使用情况显示
pidstat -p 3132 2 5 -r

sar工具

#sar 命令行的常用格式:

sar [options] [-A] [-o file] t [n]

#下面只列出常用选项:

-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。 #在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项,sar命令的选项很多,

sar几乎可以监视所有的性能数据,同时,sar还支持将性能数据保存起来。

性能监测

sar支持保存成两种格式的文件,一种是文本文件,一种是二进制文件(只有通过sar自己的命令才能查看)。(文本文件: > data.txt  二进制文件: -o data)

1.cpu每60秒采样一次,连续采样5次,观察CPU的使用情况并保存文件

#保存二进制到文件
sar -u -o data 60 5

#查看二进制文件
sar -u -f data

#保存文本文件
sar -u 60 5 > data.txt

显示内容包括:

  %usr:CPU处在用户模式下的时间百分比。
  %sys:CPU处在系统模式下的时间百分比。
  %wio:CPU等待输入输出完成时间的百分比。
  %idle:CPU空闲时间百分比。

注意:  %wio的值过高,表示硬盘存在I/O瓶颈;%idle值高,表示CPU较空闲;%idle值高但系统响应慢时,有可能是CPU等待分配内存,
此时应加大内存容量;%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

2.cpu每30秒采样一次,连续采样5次,观察核心表的使用情况并保存文件

#保存二进制文件
sar -v -o data 30 5 #查看二进制文件
sar -u -f data #保存文本文件
sar -v 30 5 > data.txt

显示内容包括:

  proc-sz:目前核心中正在使用或分配的进程表的表项数,由核心参数MAX-PROC控制。

  inod-sz:目前核心中正在使用或分配的i节点表的表项数,由核心参数MAX-INODE控制。

  file-sz: 目前核心中正在使用或分配的文件表的表项数,由核心参数MAX-FILE控制。

  ov:溢出出现的次数。

  lock-sz:目前核心中正在使用或分配的记录加锁的表项数,由核心参数MAX-FLCKRE控制。

结果:显示内容表示,核心使用完全正常,三个表没有出现溢出现象,核心参数不需调整,如果出现溢出时,要调整相应的核心参数,将对应的表项数加大。

3.每30秒采样一次,连续采样5次,报告设备使用情况

#查看设配情况
sar -d 30 5

显示内容包括:

  device: sar命令正在监视的块设备的名字。
  %busy: 设备忙时,传送请求所占时间的百分比。
  avque: 队列站满时,未完成请求数量的平均值。
  r+w/s: 每秒传送到设备或从设备传出的数据量。
  blks/s: 每秒传送的块数,每块512字节。
  avwait: 队列占满时传送请求等待队列空闲的平均时间。
  avserv: 完成传送请求所需平均时间(毫秒)。

结果:wd-0是硬盘的名字;%busy的值比较小,说明用于处理传送请求的有效时间太少,文件系统效率不高;一般来讲%busy值高些,avque值低些,文件系统的效率比较高;如果%busy和avque值相对比较高,说明硬盘传输速度太慢,需调整。

4.每30秒采样一次,连续采样5次,报告缓冲区的使用情况

#查看缓冲区状况
sar -b 30 5

显示内容包括:

  bread/s: 每秒从硬盘读入系统缓冲区buffer的物理块数。
  lread/s: 平均每秒从系统buffer读出的逻辑块数。
  %rcache: 在buffer cache中进行逻辑读的百分比。
  bwrit/s: 平均每秒从系统buffer向磁盘所写的物理块数。
  lwrit/s: 平均每秒写到系统buffer逻辑块数。
  %wcache: 在buffer cache中进行逻辑读的百分比。
  pread/s: 平均每秒请求物理读的次数。
  pwrit/s: 平均每秒请求物理写的次数。

结果:最重要的是%cache和%wcache两列,它们的值体现着buffer的使用效率;%rcache的值小于90或者%wcache的值低于65,应适当增加系统buffer的数量,buffer数量由核心参数NBUF控制,使%rcache达到90左右,%wcache达到80左右。但buffer参数值的多少影响I/O效率,增加buffer,应在较大内存的情况下,否则系统效率反而得不到提高。

5.每30秒采样一次,连续采样5次,报告串口I/O的操作情况

#查看串口/IO情况
sar -g 30 5

显示内容包括:

  ovsiohw/s:每秒在串口I/O硬件出现的溢出。

  ovsiodma/s:每秒在串口I/O的直接输入输出通道高速缓存出现的溢出。

  ovclist/s :每秒字符队列出现的溢出。

结果:显示的内容中,每一列的值都是零,表明在采样时间内,系统中没有发生串口I/O溢出现象。

6.每隔1秒记录CPU的使用情况,直到15点,并保存文本文件

#每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
sar 1 0 -e 15:00:00 > data.txt

7.每隔1秒记录内存使用情况,直到15点,并保存文本文件

#每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 -r -e 15:00:00 > data.txt

8.每隔1秒记录网络使用情况,直到15点,并保存文本文件

#每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 -n DEV -e 15:00:00 > data.txt

从Linux服务器上取下data.txt文件,就可以轻松的使用WPS表格来统计CPU的使用情况了。

文章整合至:https://blog.csdn.net/i5999/article/details/5680887?utm_source=blogxgwz0https://www.cnblogs.com/coderzh/archive/2008/05/05/1183125.html

Linux:监测收集linux服务器性能数据工具Sysstat的使用与安装的更多相关文章

  1. sar命令,linux中最为全面的性能分析工具之一

    sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工具将对系统当前的状态就行取样,然后通 ...

  2. linux服务器性能检测工具nmon使用

    今天介绍一款linux系统服务器性能检测的工具-nmon及nmon_analyser (生成性能报告的免费工具),亲测可用. 一.介绍 nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并 ...

  3. Linux自带-系统级性能分析工具 — Perf(转)

    https://blog.csdn.net/zhangskd/article/details/37902159/

  4. linux性能分析工具Sysstat

  5. docker搭建zabbix收集windows计数器性能数据

    1 docker服务的安装 1)在线安装docker服务 在线安装可以参考下面的安装步骤 a 安装相关依赖组件 yum install -y yum-utils device-mapper-persi ...

  6. 服务器性能分析工具gprof的使用及没有生成gmon.out文件的原因

            早上从网上查看资料时无意中看到了gprof这个工具,随便把他用在项目里试了一下.结果发现调用次数的数据比较全,但调用时间基本上都是0.网上查了一下发现gprof只记录执行时间超过0.0 ...

  7. Jmeter工具使用-分布式架构和服务器性能监控解决方案

    在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境. 一.J ...

  8. nmon性能统计工具使用-初认识

    1.概述 监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分.通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况.根据运行结果分析可以帮助我们快速定位系统问题 ...

  9. Jmeter 分布式架构和服务器性能监控解决方案

    在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境 . 一. ...

随机推荐

  1. 华为鲲鹏处理器实现商用,Arm服务器又添砝码

    华为鲲鹏处理器实现商用,Arm服务器又添砝码 鲲鹏920就是华为海思1620 鲲鹏920面向 服务器CPU就是 华为海思162064core 武汉华为PC不是海思1620是另一个cpu 深圳华为PC的 ...

  2. MyBatis的Example如何按条件排序(Day_35)

    MyBatis的Example如何按条件进行排序? 背景:有时我们在使用mybatis example 进行查询时,需要进行相应的业务排序.本博客以下图为例 @Override public List ...

  3. Redis(3)- 数据结构

    一.Redis数据结构 Redis数据结构:Redis在数据类型上常用的有5种数据类型,而底层实现拥有种.可以使用命令OBJECT ENCODING K1查询底层数据结构. # 查询key的底层数据类 ...

  4. 从Lombok到JSR-269

    前言 Lombok的出现帮助开发人员在开发工程中消除了大部分冗余代码:繁琐的get.set方法甚至建造者模式. Lombok的实现方式是什么呢? 新建一个测试类使用Lombok的Getter和Sett ...

  5. 『动善时』JMeter基础 — 32、JMeter察看结果树组件详解

    目录 1.察看结果树介绍 2.察看结果树界面详解 3.察看结果树的其他功能 (1)将数据写入文件中 (2)Search功能 (3)Scroll automatically选项 4.总结 1.察看结果树 ...

  6. 游刃于私有网络与公共网络之间的NAT

    网络地址转化技术NAT 1. 应用场景 2. NAT 2.1 静态NAT 2.2 动态NAT 2.3 NAPT 2.4 EASY IP 3. NAT配置 3.1 静态NAT 3.2 动态NAT 3.3 ...

  7. Go语言的函数01---概念

    package main import "fmt" /* 向某人致以问候 参数: name string类型,要问候的对象 n int类型,要问候的次数 返回值: string类型 ...

  8. Apollo 自动驾驶开发套件(D-KIT)

    Apollo 自动驾驶开发套件(D-KIT)

  9. VGG16迁移学习实现

    VGG16迁移学习实现 本文讨论迁移学习,它是一个非常强大的深度学习技术,在不同领域有很多应用.动机很简单,可以打个比方来解释.假设想学习一种新的语言,比如西班牙语,那么从已经掌握的另一种语言(比如英 ...

  10. 用Java如何设计一个阻塞队列,然后说说ArrayBlockingQueue和LinkedBlockingQueue

    前言 用Java如何设计一个阻塞队列,这个问题是在面滴滴的时候被问到的.当时确实没回答好,只是说了用个List,然后消费者再用个死循环一直去监控list的是否有值,有值的话就处理List里面的内容.回 ...