性能调优之vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
指令所在路径:/usr/bin/vmstat
输出字段意义:
Procs
r: The number of processes waiting for run time.
等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。
b: The number of processes in uninterruptible sleep.
处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。
Memory
swpd: the amount of virtual memory used.
已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,si、so的值长期为0,这也是没有问题的
free: the amount of idle memory.
空闲的物理内存的大小
buff: the amount of memory used as buffers.
用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB
cache: the amount of memory used as cache.
用来做cache(缓存,主要用于缓存文件)的内存,单位:KB
inact: the amount of inactive memory. (-a option)
inactive memory的总量
active: the amount of active memory. (-a option)
active memroy的总量。
Swap
si: Amount of memory swapped in from disk (/s).
从磁盘交换到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了
so: Amount of memory swapped to disk (/s).
从swap虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,
如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,
这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,
但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
IO
bi: Blocks received from a block device (blocks/s).
每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。
bo: Blocks sent to a block device (blocks/s).
每秒发送到块设备的块数,单位:块/秒 也就是写块设备。
System
in: The number of interrupts per second, including the clock.
每秒的中断数,包括时钟中断
cs: The number of context switches per second.
每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。
CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多
sy: Time spent running kernel code. (system time)
系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。
wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.
等待IO的CPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
使用示例:
1: 查看vmstat命令的帮助信息
[root@DB-Server ~]# man vmstat
2: 显示活动(active)与非活动(inactive)的内存
[root@DB-Server ~]# vmstat -a 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 242752 56264 1294680 2365840 0 0 1 18 2 2 0 2 97 0 0
1 0 242752 56504 1294676 2365736 0 0 0 0 1010 511 0 1 100 0 0
0 0 242752 55844 1294716 2366616 0 0 0 16 1011 768 1 5 94 0 0
0 0 242752 56760 1294716 2365888 0 0 0 190 1015 554 0 1 99 0 0
0 0 242752 55472 1294744 2366636 0 0 0 0 1007 751 1 6 94 0 0
0 0 242752 56636 1294748 2365904 0 0 0 16 1009 554 0 1 99 0 0
0 0 242752 55844 1294772 2366656 0 0 0 178 1020 746 1 6 93 0 0
0 0 242752 56884 1294768 2365940 0 0 0 0 1007 543 0 1 99 0 0
1 0 242752 55208 1294816 2367220 0 0 0 206 1021 726 0 4 95 0 0
0 0 242752 56760 1294796 2365960 0 0 0 16 1009 606 0 2 98 0 0
3:不加任何参数,vmstat命令只输出一条记录,这个数据是自系统上次重启之后到现在的平均数值。
[root@DB-Server ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 242752 32496 112680 2724840 0 0 1 18 3 2 0 2 97 0 0
4:显示各种事件计数器表和内存统计信息,这显示不重复。
[oracle@mylnx01 bdump]$ vmstat -s
33011144 total memory
32799072 used memory
24606736 active memory
6175700 inactive memory
212072 free memory
52288 buffer memory
30158708 swap cache
12582904 total swap
610348 used swap
11972556 free swap
44159969 non-nice user cpu ticks
8172 nice user cpu ticks
6077972 system cpu ticks
389217442 idle cpu ticks
40807984 IO-wait cpu ticks
123964 IRQ cpu ticks
383333 softirq cpu ticks
0 stolen cpu ticks
10331447387 pages paged in
2287459081 pages paged out
1524480 pages swapped in
1433512 pages swapped out
2358479992 interrupts
1876082783 CPU context switches
1481100317 boot time
15573677 forks
5:可以扩大字段长度,当内存较大时,默认长度不够完全展示内存时,会导致字段值偏移,导致查看不便
[root@DB-Server ~]# vmstat -w 2 5
procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 243852 73556 110908 2678492 0 0 1 18 3 3 0 2 97 0 0
0 0 243852 72252 110916 2678484 0 0 0 172 1016 701 0 4 95 0 0
0 0 243852 73556 110916 2678544 0 0 0 0 1005 636 0 2 98 0 0
0 0 243852 72004 110916 2678540 0 0 0 16 1005 694 0 5 95 0 0
0 0 243852 73432 110924 2678580 0 0 0 192 1015 629 0 2 98 0 0 如下所示,由于有些字段值较大,导致出现下面偏移,不便查看。
[root@DB-Server ~]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 243852 79284 110928 2678640 0 0 1 18 3 3 0 2 97 0 0
0 0 243852 78988 110928 2678648 0 0 0 0 1006 753 0 5 95 0 0
0 0 243852 80400 110936 2678696 0 0 0 194 1015 565 0 1 99 0 0
0 0 243852 78352 110936 2678748 0 0 0 16 1008 680 0 5 95 0 0
0 0 243852 79532 110936 2678748 0 0 0 0 1007 669 0 2 98 0 0
[root@DB-Server ~]#
6:显示磁盘分区数据(disk partition statistics )
[oracle@mylnx01 ~]$ vmstat -p sdc5 2 10
sdc5 reads read sectors writes requested writes
54270570 7234336956 8939045 276196850
54270570 7234336956 8939045 276196850
54270570 7234336956 8939050 276196978
54270570 7234336956 8939053 276197074
54270574 7234337260 8939053 276197074
54270577 7234337292 8939066 276197346
54270622 7234339700 8939066 276197346
54270622 7234339700 8939069 276197442
54270859 7234342828 8939078 276197634
54271074 7234345452 8939080 276197666
性能调优之vmstat命令的更多相关文章
- 性能调优之vmstat命令(转)
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.IO读写.CPU活动等进行监视.它是对系统的整体情况进行统计,不足之处是无法对某 ...
- websphere性能调优之dump命令
websphere性能调优之dump命令 基于WebSphere 构建的企业应用,时常会出现性能问题,在严重的情况下还会提示出内存溢出,这是一件很让人恼怒的事情.在WebSphere Applicat ...
- 盘点linux系统中的12条性能调优命令。
导读 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长期处于耗尽的状 ...
- 盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优
原文链接:猛戳这里 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长 ...
- JVM性能调优监控命令jps、jinfo、jstat、jmap+jhat、jstack使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jinfo.jstat.jmap+jhat.jstack等小巧的工具,本博客希望能起抛砖 ...
- JVM常用命令和性能调优建议 [Could not create the Java virtual machine]
一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. ...
- JVM常用命令和性能调优建议
一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程 ...
- jvm 命令使用调优 通过jstat、jmap对java程序进行性能调优
转载:http://blog.csdn.net/jerry024/article/details/8507589 转载: https://blog.csdn.net/zhaozheng7758/art ...
- jvm 性能调优工具之 jps 命令详解
JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...
随机推荐
- 安卓APP应用在各大应用市场上架方法整理
想要把APP上架到应用市场都要先注册开发者账号才可以.这里的方法包括注册帐号和后期上架及一些需要注意的问题.注意:首次提交应用绝对不能随便删除,否则后面再提交会显示应用APP冲突,会要求走应用认领流程 ...
- spring cloud 配置文件application.yml和bootstrap.yml 的定位,区别和联系总算是有一点明白了
最近在启用springcloud配置中心server的东西,在整理属性资源的时候,突然发现:用了这么久的springboot,为什么会配置两个属性文件同时存在(application.yml/prop ...
- 对word2vec的理解及资料整理
对word2vec的理解及资料整理 无他,在网上看到好多对word2vec的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...
- django模板语言之Template
当前端的一些数据需要后端传送过来并展示时,用到了django的模板语言,模板语言的作用就是,在后端把一些处理好的数据,通过模板语言所规定的格式,通过render渲染,放到前端页面固定的位置展示.这之间 ...
- Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)【转】
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息.它定义在include/linux/sched.h文件中. 谈到task_str ...
- 4.1Python数据类型(1)之数值类型
返回总目录 目录: 1.数据类型的表现形式: 2.数据进制的转换: 3.数据的常规操作: (一).数据类型的表现形式: (1)整数类型: # 二进制: a = 0b0110 print("二 ...
- Spring boot+ maven + thymeleaf + HTML 实现简单的web项目
第一步: 创建一个SpringBoot应用 第二步: 创建一个实体,用来存储数据,在src/main/java/com/example/first下创建包entity , 在entity下创建Pers ...
- Java设计模式之一 ----- 单例模式
什么是单例模式 保证一个系统中的某个类只有一个实例而且该实例易于外界访问.例如Windows界面的任务管理器就可以看做是一个单例. 单例模式的使用场景 需要频繁的进行创建和销毁的对象: 创建对象时耗时 ...
- 浅谈JEECG多数据源的使用
首先,简单的介绍下什么是JEECG.JEECG(J2EECode Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统.JEEC ...
- leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、
20. Valid Parentheses 错误解法: "[])"就会报错,没考虑到出现')'.']'.'}'时,stack为空的情况,这种情况也无法匹配 class Soluti ...