快速学习Linux常用性能监控命令及工具
在linux系统环境的测试开发过程中,我们常常需要评估系统性能,尤其在性能测试工作中,我们需要通过系统资源的监控,从而分析定位系统的性能瓶颈。
首先,我们要知道从哪些维度来评估系统的性能好坏:
- CPU利用率及负载
- 内存利用率
- 磁盘I/O利用率
- 网络利用率
如何监控上述系统资源的使用情况,有哪些常用的命令和工具呢。下面,就给大家罗列几个工作最常用的性能监控命令及工具,希望能对大家的工作有帮助。
1.vmstat
全称是Virtual Meomory Statistics(虚拟内存统计),对linux内存、进程及CPU活动进行监控,只能对系统整体情况进行统计。
常用参数:
- -s:显示内存相关统计信息,
- -a:显示活跃和非活跃内存
- -d:显示磁盘相关统计信息
- -t:显示时间
2.top
top是一个功能强大的性能监控工具,是linux使用者最常使用系统命令,作用类似于windows系统的任务管理器。能够实时监控系统的运行状态,主要显示系统中各个进程的资源使用情况,并根据cpu及内存等进行排序。
常用参数:
- -d:设定刷新时间
- -p:指定进程
3.iostat
I/O(输入输出)统计,对系统磁盘进行监控,输出磁盘读写的统计信息,只能进行整体分析。
常用参数
- -c:显示CPU的使用情况
- -d:显示磁盘的使用情况
4.netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,检验本机各端口的网络连接情况。
常用参数:
- -a:显示所有连接socket信息。
- -t:显示所有TCP连接信息
- -u:显示所有UDP连接信息
- -p:显示socket所属进程的PID和名称
5.sar
sar系统活动情况报告(System Activity Reporter)是一个非常全面的系统监控命令,可以获取系统的CPU、内存、进程活动,系统调用等信息。
常用参数:
- -u:显示所有CPU在采样时间内的负载状态
- -r:输出内存和交换空间的统计信息
- -b:采样时间内缓冲区的使用情况
- -n:显示网络运行状态
- -d:硬盘设备在采样时间的使用情况
- -q:运行队列的大小
6.nmon
nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。需要单独安装,网上有很多安装的过程,这里就不多说了。
输入nmon后,可以使用如下命令:
- c:显示CPU的信息
- m:内存信息
- n:系统网络信息
- d:磁盘信息
- t:系统的进程信息
常用参数:
- -s:每隔n秒抽样一次
- -c:取多少个抽样数量
- -f:按标准格式输出文件名称YYMMDD_HHMM.nmon
- -m:指定统计文件的保存目录
nmon-s1-c60-f-m/home/nmon
使用nmonanalyser可以把nmon采集的数据生成直观的Excel图表,如下:
7.dstat
多功能系统资源统计生成工具,需要单独安装。集成了vmstat,iostat和ifstat三种命令的功能,输出带颜色的信息,更加清晰的显示系统的整体运行情况。
常用参数:
- -c:显示CPU系统占用
- -d:显示磁盘读写数据大小。
- -n:显示网络状态。
- -m:显示内存使用情况。
- -p:显示进程状态。
- -s:显示交换分区使用情况。
- -r:I/O请求情况。
一般使用按照如分类,进行性能工具选取,有时候需要几个命令配合使用,在使用命令选择上大家可以参考下图。
- 设置你的Gravatar头像的方法
- 阅读Ext 学习Javascript(二)Core/Ext.extend 从继承说起
- IronPython资料
- WordPress免插件仅代码实现“返回顶部、返回底部、评论”效果(样式一)
- encodeURIcomponent编码和ASP.NET之间编码转换
- WordPress免插件仅修改代码去掉评论/留言里的链接
- 阅读Ext 学习Javascript(一)Core/Ext.js
- 利用腾讯的ip地址库做ip地址定位
- WordPress登陆不了后台的原因及解决方法(登陆界面不断返回)
- select元素的options.add 与 insertbefore的区别
- 如何去理解 拓扑排序算法
- WordPress免插件仅代码实现文章归档(模板页面)I
- Bing Map App 开发 还没入门遇见错误无法继续
- 使用MongoDB的支持Linq 驱动NoRM
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法