Linux性能监控top及vmstat命令
监控的工具---top
第一行:
- 03:07:27 当前系统时间
- 3 days, 18:58 系统已经运行了3天18小时58分钟(在这期间没有重启过)
- 4 users
- load average: 0.00, 0.00, 0.00
Load这个东西怎么理解呢,就像一条马路,有N个车道,如果N个进程进入车道,那么正好一人一个,再多一辆车就占不到车道,要等有一个车空出车道。 在CPU中可以理解为CPU可以并行处理的任务数,那么就是“CPU个数 * 核数”,如果CPU Load = CPU个数 * 核数 那么就是说CPU正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器,那么保证性能的话,最好是小于CPU个数 * 核数 *0.7。
Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率状况,而是在一段时间内 CPU正在处理以及等待 CPU处理的进程数之和的统计信息,也就是 CPU使用队列的长度的统计信息
Load Average < CPU个数 * 核数 *0.7
使用 vmstat 看到的数据中也有这个数据,vmstat 查看r(Load Average)
第二行:
Tasks 任务(进程),系统现在共有108个进程,其中处于运行中的有2个,105个在休眠(sleep),stoped状态的有1个,zombie状态(僵尸)的有0个。
第三行:CPU状态
- 0.0% us 用户空间占用CPU的百分比。
- 0.0% sy 内核空间占用CPU的百分比。
- 0.0% ni 改变过优先级的进程占用CPU的百分比
- 99.7% id 空闲CPU百分比
- 0.3% wa IO等待占用CPU的百分比
- 0.0% hi 硬中断(Hardware IRQ)占用CPU的百分比
- 0.0% si 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
- 1035660k total 物理内存总量(1GB)
- 1025928k used 使用中的内存总量(0.9GB)
- 9732k free 空闲内存总量(9M)
- 37784k buffers 缓存的内存量 (3.5M)
第五行:swap交换分区
- 2048276k total 交换区总量(2GB)
- 52576k used 使用的交换区总量(50M)
- 1995700k free 空闲交换区总量(1.9GB)
- 756448k cached 缓冲的交换区总量(750M)
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少。
可用内存的近似计算公式=第四行的free + 第四行的buffers + 第五行的cached
第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第七行以下:各进程(任务)的状态监控
- PID 进程id
- USER 进程所有者
- PR 进程优先级
- NI nice值。负值表示高优先级,正值表示低优先级
- VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR 共享内存大小,单位kb
- S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU 上次更新到现在的CPU时间占用百分比
- %MEM 进程使用的物理内存百分比
- TIME+ 进程使用的CPU时间总计,单位1/100秒
- COMMAND 进程名称(命令名/命令行)
按键盘数字1,可监控每个逻辑CPU的状况
监控的工具---vmstat
vmstat--CPU相关参数介绍:
- r,可运行队列的线程数,这些线程都是可运行状态,有多数的进程等待CPU;
- b,被 blocked 的进程数,正在等待 IO 请求;
- in,被处理过的中断数
- cs,系统上正在做上下文切换的数目
- us,用户占用 CPU 的百分比
- sys,内核和中断占用 CPU 的百分比
- wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比
- id,CPU 完全空闲的百分比
vmstat--内存参数说明:
- swpd,已使用的 SWAP 空间大小,KB 为单位;
- free,可用的物理内存大小,KB 为单位;
- buff,物理内存用来缓存读写操作的 buffer 大小,KB 为单位;
- cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;
- si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;
- so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;
- bi,磁盘块从文件系统或 SWAP 读取到 RAM(blocks in)的大小,block 为单位;
- bo,磁盘块从 RAM 写到文件系统或 SWAP(blocks out)的大小,block 为单位;
不同的系统用途也不同,要找到性能瓶颈需要知道系统跑的是什么应用、有些什么特点,比如 webserver 对系统的要求肯定和 file server 不一样,所以分清不同系统的应用类型很重要,通常应用可以分为两种类型:
看看实际中的例子,第1个是文件服务器拷贝一个大文件时表现出来的特征:
第2个是 CPU 做大量计算时表现出来的特征:
第一个示例:id 在50%左右,说明cpu比较空闲;bi,bo的值较大说明瓶颈在IO上
第二个示例:r为4(= CPU个数 * 核数),id 为0,说明cpu处于繁忙状态;bi,bo的值较小
Linux性能监控top及vmstat命令的更多相关文章
- Linux 性能监控的18个命令行工具
对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我 ...
- Linux性能分析top iostat vmstat free
最近看到一大牛的分析报告,才知道笔者认识这4个命令是多么肤浅,其实要读懂内存的信息,是要一些功力的.1.top VIRT 虚拟内存总量,VIRT=SWAP+RESSWAP ...
- Linux性能监控
转自:http://blog.csdn.net/chosen0ne/article/details/8200737 linux性能监控,就是要监控系统的各个子系统是否正常.linux主要的子系统包括: ...
- 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具
性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在popte ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux性能监控与分析之--- CPU
Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- linux性能监控 -CPU、Memory、IO、Network等指标的讲解
[操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...
- Linux性能监控分析命令(四)—top命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
随机推荐
- MVC框架 - 异常处理
在ASP.NET中,错误处理是通过使用标准的尝试捕捉方法或使用应用程序事件.ASP.NET MVC附带内置支持,被称为异常过滤器功能异常处理.在这里我们要学习两种方法:一个是定义HandleError ...
- Android 高级UI设计笔记15:HorizontalScrollView之 实现画廊式图片浏览器
1. HorizontalScrollView 本来,画廊式的图片浏览器,使用Android中的Gallery就能轻松完成,但是Google说Gallery每次切换图片时都要新建视图,造成太多的资源浪 ...
- iOS之GCD的DEMO
由DEMO得知,串行队列同步执行会按照顺序一步一步执行,不会开辟线程 由DEMO得知,串行队列异步执行,队列中的任务会一步一步按顺序执行,队列外的任务不确定.会开辟线程 由DEMO得知,并行队列同步执 ...
- Oracle安装步骤及PL/SQL Developer连接数据库
一:Oracle安装步骤及PL/SQL Developer连接数据库 win7 64位 11g 点击(操作步骤):http://www.cnblogs.com/haoke/articles/27343 ...
- Linux Bash Shell学习笔记
参数扩展: 1.被名称引用的参数称作变量2.被数字引用的参数称作位置参数3.被特定符号引用的参数具有特殊的含义和用途,被称作Bash的特殊内部变量引用. 基本参数扩展:字符$会引导参数扩展.大括号是可 ...
- 【VMware虚拟化解决方案】 基于VMware虚拟化平台VDI整体性能分析与优化
一.说一说 本来打算将前期项目里面出现的问题的分析思路与解决方法写出来,第一.疏导一下自己的思路,第二.分析并找出自身在技术层面所存在欠缺.但由于每个人都有一根懒经所以迟迟未动.今天突然发现51CTO ...
- Linux文件系统的barrier:启用还是禁用
大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但 是,在许多情况下,我们并不清楚这些barrier是否有用.本文 ...
- vs克隆新建团队项目
团队资源——克隆,完成后打开: 在解决方案资源中,添加——新建项目——web——ASP.NET web应用程序——空的,并将其设为启动项目:
- hdu 4729 树链剖分
思路:这个树链剖分其实还是比较明显的.将边按权值排序后插入线段树,然后用线段树查找区间中比某个数小的数和,以及这样的数的个数.当A<=B时,就全部建新的管子. 对于A>B的情况比较 建一条 ...
- Matlab之文件操作
1.判断是否存在文件夹:if (exist(folderName,'dir')) 2.创建文件夹:mkdir(folderName) 3.删除文件夹:rmdir(folderName,'s') 4.当 ...