性能调优之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:命令选项,用来对输出格式 ...
随机推荐
- Gym 101190H Hard Refactoring (模拟坑题)
题意:给定 n 个区间,让你进行合并,问你最后的区间是,如果是空集,输出 false 如果区间是是 [-32768,32767] ,则是true. 析:进行区间合并,要注意,如果是 x >= 0 ...
- python切片、列表解析、元组
1.列表解析 test = [x**2 for x in range(1,11)] 2.切片 test1 = ["a","b","c",&q ...
- “undefined reference to JNI_GetCreatedJavaVM”和“File format not recognized”错误原因分析
"undefined reference to JNI_GetCreatedJavaVM"和"File format not recognized"错误原因分析 ...
- &class::data_member与&object.data_menber之间的差异
前者取data_member在class中的offset:指针类型是:type class::* 后者将会得到该data_member在内存中的真正地址:指针类型是:type*
- RAD Studio Demo Code和几个国外FMX网站 good
FireMonkey X – Amazing overview of FireMonkey FMX Feeds – All your FireMonkey news in one place FMX ...
- sqlite初识
最近在部署PHP网站项目的时候,发现项目并没有使用传统的三大关系型数据库,而是采用了sqlite数据库,以前的时候,也见过sqlite,但是并没有深入了解其功能和用法,好奇心驱使,决定好好研究一下sq ...
- .net Timer定时执行
System.Timers.Timer可以实现数据库定时更新的功能 Global.asax void Application_Start(object sender, EventArgs e) { / ...
- 【洛谷九月月赛T1】签到题(bsgs)(快速乘)
说好的签到题呢qwq....怎么我签到题都不会啊qwq 之后看了bsgs才发现貌似不是那么那么难fake!!什么东西... 先贴上部分分做法(也就是枚举1的个数,然后每一步都进行取模(这和最后取模结果 ...
- leetcode 18 4Sum JAVA
题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出 ...
- jmeter压力测试值之配置JDBC Connection Configuration(一)
一.下载mysql jar包 下载mysql jar包 http://dev.mysql.com/downloads/connector/j/ 网盘下载地址:mysql-connector-java- ...