linux性能监控常用命令
概述
我们在linux下,如果想要监控服务器性能。我们必须掌握以下常用的指标查看命令。
- ps
 - pstree
 - top
 - free
 - vmstat
 - sar
 
ps
ps命令能给出当前系统中进程的快照。下面我们列举几个常用的选项
使用 -a 参数。-a 代表 all。同时加上x参数会显示没有控制终端的进程。
ps -ax
通过我们会查找某类或包含某些指定关键字的进程,这是会使用管道结合grep命令来进一步过滤结果。
例如查找java相关的进程ps -ax | grep java
有时我们则需要根据CPU和内存的使用情况来过滤排序筛选结果,这样便于快速找到哪个进程最耗CPU、内存
ps -aux
根据CPU的使用升序排序
ps -aux --sort -pcpu
根据内存使用升序排序
ps -aux --sort -pmem
上述两个命令合并一起,如下:
ps -aux --sort -pcpu,+pmem
只显示前几个进程,例如显示前十个,需要使用管道结合head命令。
ps -aux | head -n 10
pstree
pstree命令以树状图显示进程间的关系
下面我们看几个常用的示例。
以树状图显示进程,只显示进程的名字,且相同进程合并显示。
pstree
以树状图显示进程,还显示进程PID。
pstree -p
以树状图显示进程PID为<pid>的进程以及子孙进程,如果有-p参数则同时显示每个进程的PID。
pstree <pid>或
pstree -p <pid>
以树状图显示进程,相同名称的进程不合并显示,并且会显示命令行参数,如果有-p参数则同时显示每个进程的PID。
pstree -a
为什么要用pstree命令,通过该命令,能让你更清晰的了解你要监控的目标服务关联了哪些资源,能让你更加清楚其资源关联情况,增加在性能测试过程中分析的准确性。
不管是ps还是pstree命令,在性能测试过程中,最重要的一个应用技巧就是获取资源消耗最高的目标进程的线程id。例如
ps auxw|head -1;ps auxw|sort -rn -k3|head -10 cpu占用最高的十个进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -10 内存占用最高的十个进程
ps auxw --sort=rss 实际内存占用排名
ps auxw --sort=%cpu 实际cpu消耗排名
top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
与ps不同的是,top显示系统当前的进程和其他状况,而且是一个动态显示过程,它可以不断刷新当前状态。
直接使用即可

free -m
使用free命令,能让你清楚的了解当前系统内存消耗情况。

vmstat
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
相比于top、free等命令,vmstat可以看到整个机器的CPU,内存,IO的消耗情况。
一般情况下vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如下命令:
vmstat 2 1
2表示每个两秒采集一次服务器状态,1表示只采集一次。
sar
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
如果你的系统没安装该命令,请用以下方式进行安装
apt-get install sysstat
yum install sysstat
安装完成后在用以下命令启用:
vi /etc/default/sysstat
将ENABLED改为“true”
ENABLED="true"
重启下sar服务,开始采集相关数据
/etc/init.d/sysstat start
命令常用格式
sar [options] [-A] [-o file] t [n]
其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
sar参数说明
-A 查看汇总所有的报告-a 查看文件读写使用情况-B 查看附加的缓存的使用情况-b 查看缓存的使用情况-c 查看系统调用的使用情况-d 查看磁盘的使用情况-g 查看串口的使用情况-h 查看关于buffer使用的统计数据-m 查看IPC消息队列和信号量的使用情况-n 查看命名cache的使用情况-p 查看调页活动的使用情况-q 查看运行队列和交换队列的平均长度-R 查看进程的活动情况-r 查看没有使用的内存页面和硬盘块-u 查看CPU的利用率-v 查看进程、文件和锁表状态-w 查看系统交换活动状况-y 查看TTY设备活动状况
查看CPU是否存在瓶颈:
sar -u sar -q
查看内存是否存在瓶颈:
sar -Bsar -rsar -W
查看IO是否存在瓶颈
sar -bsar -usar -d
示例
例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件cpu_info中,需键入如下命令:
sar -u -o cpu_info 10 3
iostat
iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
iotop
如果你想知道每个进程是如何使用IO的就比较麻烦。这个时候iotop可以上场了。
iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。
例子:
sar -u #统计CPU的使用情况,每间隔1秒钟统计一次总共统计三次:#sar -u 1 3

linux性能监控常用命令的更多相关文章
- Linux 性能监控之命令行工具
		
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
 - linux性能优化常用命令
		
作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性 和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪 ...
 - linux系统性能监控常用命令
		
一.Linux服务器性能关注点 1)CPU -> load:表示cpu在一段时间内正在处理以及等待处理的任务之和统计信息,简单可理解为cpu正处理的线程数和能同时处理的线程数的比值.一般认为 ...
 - Linux性能监控分析命令(五)—free命令介绍
		
性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...
 - Linux性能监控分析命令(四)—top命令介绍
		
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
 - Linux 系统监控常用命令
		
简介 列举操作系统级监控常用的几个方法,建议收藏使用 CPU top 命令可用于监控系统整体负载,包括cpu.内存使用等,能够实时显示系统中各个进程的资源占用状况 输出样例 top - 19:37:4 ...
 - Linux性能监控分析命令(三)—iostat命令介绍
		
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...
 - Linux性能监控分析命令(二)—sar命令介绍
		
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
 - linux 性能分析常用命令汇总
		
CPU性能分析工具: vmstatpssartimestracepstreetop Memory(内存)性能分析工具:vmstatstracetopipcsipcrmcat /proc/meminfo ...
 
随机推荐
- Vue v-bind与v-model的区别
			
v-bind 缩写 : 动态地绑定一个或多个特性,或一个组件 prop 到表达式. 官网举例 <!-- 绑定一个属性 --> <img v-bind:src=" ...
 - 在eclipse下给android应用添加jar包
			
右键工程,Build path,java build path,选择libraries在右边的按钮中点击“Add Library”选择“User library”,点击“下一步”点击“User lib ...
 - shell EOF 用户自定义终止符
			
#!/bin/bash ftp -n << EOF user guest 123456 binary cd /home/ prompt mget * close bye EOF 使用Tab ...
 - Linux SSH 服务
			
本篇写一些关于Linux网络中SSH服务的相关知识. 测试环境 名称 IP地址 host01 192.168.28.128 host02 192.168.28.129 host03 192.168.2 ...
 - golang静态编译
			
golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库. 这样可以任意部署到各种运行环境,不用担心依赖库的版本问题.只是体积大一点而已,存储时占用了一点磁盘,运行 ...
 - python变量的内存机制
			
python变量的内存机制 作为一门简单易用的语言,且配备海量的库,python可谓是程序员手中的掌中宝,编程本身就是一种将人类思维转化为计算机思维的技术,如果不需要去追求极致的运行效率同时又不限制于 ...
 - centos7和centos6安装httpd
			
编译安装httpd http://apr.apache.org/download.cgi 下载 apr-util-1.6.1.tar.bz2 apr-1.6.5.tar.bz2 http://http ...
 - Beta版本冲刺及发布成绩汇总
			
作业要求 1.作业内容: 作业具体要求及评分标准的链接 2.评分细则 1.冲刺内容占30分. (1) 各成员两天完成的工作,以及后续两天的任务安排(表格的形式记录各个成员这两天的工作,表格内容参考S ...
 - 《Java设计模式》之代理模式 -Java动态代理(InvocationHandler) -简单实现
			
如题 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式可细分为如下, 本文不做多余解释 远程代理 虚拟代理 缓冲代理 保护代理 借鉴文章 ht ...
 - LG4781 【模板】拉格朗日插值 和 JLOI2016 成绩比较
			
[模板]拉格朗日插值 题目描述 由小学知识可知,$n$个点$(x_i,y_i)$可以唯一地确定一个多项式 现在,给定$n$个点,请你确定这个多项式,并将$k$代入求值 求出的值对$998244353$ ...