Liunx学习总结(七)--系统状态查看和统计
sar命令
sar 是一个非常强大的性能分析工具,它可以获取系统的 cpu/等待队列/磁盘IO/内存/网络等性能指标。功能多的必然结果是选项多,应用复杂,但只要知道一些常用的选项足以。
语法
sar [options] [-o filename] [delay [count] ]
选项
-A:显示系统所有资源运行状况
-b:显示磁盘IO和tranfer速率信息,和iostat的信息一样,是总体IO统计信息
-d:显示磁盘在刷新时间间隔内的活跃情况,可以指定一个或多个设备,和-b不同的是,它显示的是单设备的IO、transfer信息。
:建议配合-p使用显示友好的设备名,否则默认显示带主次设备号的设备名
-P:显示指定的某颗或某几颗cpu的使用情况。指定方式为,-P 0,1,2,3或ALL。
-u:显示每颗cpu整体平均使用情况。-u和-P的区别通过下面的示例很容易区分。
-r:显示内存在刷新时间间隔内的使用情况
-n:显示网络运行状态。后可接DEV/NFS/NFSD/FULL等多种参数。
:DEV表示显示网路接口信息,NFS和NFSD分别表示显示NFS客户端服务端的流量信息,FULL表示显示所有信息。
-q:显示等待队列大小
-o filename:将结果存入到文件中
delay:状态刷新时间间隔
count:总共刷新几次
安装 sar
yum install sysstat
将性能收集工具的开关打开
vi /etc/default/sysstat
ENABLED="true"
启动这个工具来收集系统性能数据:
/etc/init.d/sysstat start
统计 CPU 使用情况
[root@VM_0_15_centos /]# sar -P ALL 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)
01:28:19 PM CPU %user %nice %system %iowait %steal %idle
01:28:20 PM all 1.01 0.00 1.01 0.00 0.00 97.98
01:28:20 PM 0 1.01 0.00 1.01 0.00 0.00 97.98
01:28:20 PM CPU %user %nice %system %iowait %steal %idle
01:28:21 PM all 0.00 0.00 0.00 1.00 0.00 99.00
01:28:21 PM 0 0.00 0.00 0.00 1.00 0.00 99.00
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 0.50 0.00 0.50 0.50 0.00 98.49
Average: 0 0.50 0.00 0.50 0.50 0.00 98.49
列说明:
* CPU all 表示统计信息为所有 CPU 的平均值。
* %user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
* %nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
* %system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
* %iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
* %steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
* %idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。
- 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
- 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
- 若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。
统计内存使用情况
[root@VM_0_15_centos /]# sar -r 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)
01:29:00 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
01:29:01 PM 172072 1710280 90.86 128960 1190316 887248 47.14 1003920 580088 308
01:29:02 PM 169052 1713300 91.02 128964 1190316 891820 47.38 1006176 580084 376
Average: 170562 1711790 90.94 128962 1190316 889534 47.26 1005048 580086 342
列说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:物理内存使用率,这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
可用内存 = free+buffers+cached
已用内存 = userd-buffers-cached
统计网络流量
[root@VM_0_15_centos /]# sar -n DEV 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)
01:29:40 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:29:41 PM eth0 3.03 6.06 0.18 0.52 0.00 0.00 0.00
01:29:41 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:29:41 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:29:42 PM eth0 8.91 10.89 0.61 1.31 0.00 0.00 0.00
01:29:42 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 6.00 8.50 0.40 0.92 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
列说明:
rxpck/s:每秒收到的包数量
txpck/s:每秒发送的包数量
rxkB/s:每秒收到的数据,单位为kb
txkB/s:每秒发送的数据,单位为kb
rxcmp/s:每秒收到的压缩后的包数量
txcmp/s:每秒发送的压缩后的包数量
rxmcst/s:每秒收到的多播包数量
查看队列情况
[root@VM_0_15_centos /]# sar -q
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)
列说明:
runq-sz:等待队列的长度,不包括正在运行的进程
plist-sz:任务列表中的进程数量,即总任务数
ldavg-N:过去1分钟、5分钟、15分钟内系统的平均哎
blocked:当前因为IO等待被阻塞的任务数量
统计磁盘IO情况
[root@VM_0_15_centos /]# sar -d -p 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)
01:30:44 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:30:45 PM vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:30:45 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:30:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:30:46 PM vda 1.98 0.00 150.50 76.00 0.01 4.50 3.00 0.59
01:30:46 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: vda 1.00 0.00 76.00 76.00 0.00 4.50 3.00 0.30
Average: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
列说明:
tps:transfer per second,每秒的transfer速率,一次物理IO请求算一次transfer,但多次逻辑IO请求可能组合起来才算一次transfer。
rd_sec/s:每秒读取的扇区数,扇区大小为512字节。
wr_sec/s:每秒写入的扇区数。
avgrq-sz:请求写入设备的平均大小,单位为扇区。(The average size (in sectors) of the requests that were issued to the device)
avgqu-sz:请求写入设备的平均队列长度。(The average queue length of the requests that were issued to the device.)
await:写入设备的IO请求的平均(消耗)时间,单位微秒(The average time for I/O requests issued to the device to be served.)
svctm:不可信的列,该列未来将被移除,所以不用管
%util:最重要的一列,显示的是设备的带宽情况。该列若接近100%,说明磁盘速率饱和了。
Liunx学习总结(七)--系统状态查看和统计的更多相关文章
- linux系统状态查看/管理相关命令
系统状态查看命令: w 查看用户 top 系统进程监控 uptime 查看某台服务器运行了多久 htop 更加先进的交互式监控工具(需要安装) iotop 监控并实时显示磁盘IO输入和输出和程序进程( ...
- linux进程管理和系统状态查看命令简介
1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...
- Linux学习笔记(七) 查询系统
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...
- 电脑睡眠状态(ACPI规范定义了七个状态,使用powercfg -a进行查看)
ACPI规范定义了一台兼容ACPI的计算机系统可以有以下七个状态(所谓的全局状态): G0('S0)正常工作状态:计算机的正常工作状态-操作系统和应用程序都在运行.CPU(s)执行指令.在这个状态下( ...
- Linux查看系统状态命令
Linux查看系统状态命令 iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早 ...
- 查看linux系统状态
就类似你装完xp后,或者你拿到一台新的机器的时候,你通常都是进入系统,看看他的cpu,内存,硬盘使用情况.我也按照这个来看看linux的系统状态.1:top 退出按q,这个就类似windows的任务管 ...
- Linux 查看系统状态
查看系统状态 命令:vmstat 命令:vmsta 1 10 #每1秒钟1次显示10次. r:几个进程在占用cpu b:等待IO值 Swpd:多少交换内存 free:剩余内 ...
- linux怎样使用top命令查看系统状态
有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...
- Linux查看系统状态命令top
用法 top 自动刷新系统状态,要结束使用[Ctrl]+[C] 效果图: 信息解释(转自百度经验http://jingyan.baidu.com/article/4d58d5412917cb9dd4e ...
随机推荐
- C#3.0新增功能09 LINQ 基础03 LINQ 和泛型类型
连载目录 [已更新最新开发文章,点击查看详细] LINQ 查询基于 .NET Framework 版本 2.0 中引入的泛型类型. 无需深入了解泛型即可开始编写查询. 但是,可能需要了解 2 个 ...
- 2019牛客多校第一场 E-ABBA(dp)
ABBA 题目传送门 解题思路 用dp[i][j]来表示前i+j个字符中,有i个A和j个B的合法情况个数.我们可以让前n个A作为AB的A,因为如果我们用后面的A作为AB的A,我们一定也可以让前面的A对 ...
- 【MySQL】(四)表
本篇文章将从InnoDB存储引擎表的逻辑存储及实现开始进行介绍,然后将重点分析表的物理存储特征,即数据在表中是如何组织存放的.简单来说,表就是关于特定实体的数据集合,这也是关系型数据库模型的核心. 1 ...
- python课堂整理21---初识装饰器
一.装饰器: 本质就是函数,功能:为其他函数添加附加功能 原则: 1.不能修改被装饰函数的源代码 2.不能修改被修饰函数的调用方式 一个简单的装饰器 import time def timmer(fu ...
- nodejs 如何自动化配置环境参数
应用场景: 最近用 node 重构了网站的项目,部署到测试环境的时候测试一切正常. 直到有一天,运维把代码上线到内测环境的时候...... 突然发现:内测环境和测试环境竟然是同一台服务器,只不过是把代 ...
- 极简代码神器:Lombok使用教程
Lombok 是一个非常神奇的 java 类库,会利用注解自动生成 java Bean 中烦人的 Getter.Setter,还能自动生成 logger.ToString.HashCode.Build ...
- 史上最强Java开发环境搭建
在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必须阶段,只有开发环境搭建好了,方可进行开发,良好的开发环境搭建,为后续的开发工作带来极大便利. 对于大公司来说,软件开发环境搭建工作一般是由运 ...
- ansible-service
#service#查询服务状态 ansible server01 -m service -a "name=httpd state=started" #停止服务 ansible se ...
- Kotlin学习快速入门(5)——空安全
介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...
- 放出一批学生管理系统jsp源码,部分有框架
基于jsp+struts 2的学生管理系统eclipse - 源码码头 https://www.icodedock.com/article/25.html 基于jsp+mysql的JSP学生成绩管 ...