CentOS7上的性能监控⼯具
Linux中基于命令⾏的性能监控⼯具:dstat、top、netstat、vmstat、htop、ss、glances
1、dstat – 多类型资源统计⼯具(需配置epel源)
该命令整合了vmstat,iostat和ifstat三种命令。同时增加了新的特性和功能可以让你能及时看到各种的资源使⽤情况,从⽽能够使你对⽐和整合不同的资源使⽤情况。通过不同颜⾊和区块
布局的界⾯帮助你能够更加清晰容易的获取信息。它也⽀持将信息数据导出到cvs格式⽂件中,从⽽⽤其他应⽤程序打开,或者导⼊到数据库中。你可以⽤该命令来监控cpu,内存和⽹络状态随着
时间的变化。
简介:
dstat - versatile tool for generating system resource statistics
格式:
dstat [-afv] [options..] [delay [count]]
选项:
-c: 显⽰cpu相关信息
-C #,#,...,total
-d: 显⽰disk相关信息
-D total,sda,sdb,...
-g:显⽰page相关统计数据
-m: 显⽰memory相关统计数据
-n: 显⽰network相关统计数据
-p: 显⽰process相关统计数据
-r: 显⽰io请求相关的统计数据
-s: 显⽰swapped相关的统计数据
-
-top-cpu:显⽰最占⽤CPU的进程
--top-io: 显⽰最占⽤io的进程
--top-mem: 显⽰最占⽤内存的进程
--top-latency: 显⽰延迟最⼤的进程
- -raw:显⽰裸套接字
- -socket:套接字
- -ipc:进程间通信信息
实例1:显⽰cpu、进程、内存、io线程以及swap等相关信息
实例2:显⽰tcp、udp协议和raw和socket套接字以及进程间通信的信息
实例3:显⽰系统中cpu和io线程以及内存使⽤的情况
2、top – 经典的Linux任务管理⼯具
作为⼀个⼴为⼈知的Linux⼯具,top是⼤多数的类Unix操作系统任务管理器。它可以显⽰当前正在运⾏的进程的列表,⽤户可以按照不同的条件对该列表进⾏排序。它主要显⽰了系统进程对CPU和
内存的使⽤状况。top可以快速检查是哪个或哪⼏个进程挂起了你的系统。你可以在这⾥看到top使⽤的例⼦。你可以在终端输⼊top来运⾏它并进⼊到交互模式:
简介:
top - display Linux processes
格式:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
交互模式的⼀些快捷操作:
全局命令: <;回车/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
统计区的命令: l, m, t, 1
任务区的命令:
外观: b, x, y, z 内容: c, f, H, o, S, u ⼤⼩: #, i, n 排序: <, >, F, O, R
⾊彩⽅案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
窗⼝命令:  -, _, =, +, A, a, G, g, w
实例1:
top命令个参数具体含义:
top – 13:26:57 up  1:38,  2 users,  load average: 0.00, 0.01, 0.04
13:26:57:当前时间
1:38:运⾏时长
2 users:登录当前系统上的⽤户数
load average: 0.00, 0.01, 0.04:平均负载(等待运⾏的队列长度的负载)Tasks: 367 total,  1 running, 366 sleeping,  0 stopped,  0 zombie Tasks:任务
367 total:⼀共运⾏367进程
1 running:1个处于运⾏
366 sleeping:366个进程睡眠
0 stopped:0个停⽌
0 zombie:0个僵死
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu:cpu占⽤百分⽐
0.0 us:⽤户空间占⽤的百分⽐
0.1 sy:内核空间占⽤时间的百分⽐
0.0 ni:对nice调整占⽤的内存百分⽐
99.9 id:空闲百分⽐
0.0 wa:等待IO完成所消耗的百分⽐
0.0 hi:处理硬件中断所占⽤的百分⽐
0.0 si:处理软件中断所占⽤的百分⽐
0.0 st:被偷⾛的百分⽐(虚拟化程序)
KiB Mem :  1868688 total,  1328280 free,  127580 used,  412828 buff/cache KiB Mem:内存空间占⽤,以KB为单位:
1868688 total:总内存空间
1328280 free:剩余内存空间
127580 used:已⽤内存空间
412828 buff/cache:⽤于缓存和缓冲的内存空间
KiB Swap:  2097148 total,  2097148 free,        0 used.  1564488 avail Mem KiB Swap:swap空间占⽤,以KB为单位
2097148 total:总空间
2097148 free:剩余空间
0 used:已⽤空间
698100 avail Mem :有效swap⼤⼩
栏位信息简介
us:⽤户空间
sy:内核空间
ni:调整nice时间
id:空闲
wa:等待IO时间
hi:硬中断
si:软中断(模式切换)
st:虚拟机偷⾛的时间
实例2:
敲m键:可以将内存使⽤率⽤|||显⽰或者⽩空格显⽰
实例3:
敲t键:可以禁⽤显⽰硬盘及cpu相关消息
实例4:
敲k键:终⽌指定的进程
实例5:
敲q键:退出top界⾯
3、netstat – 显⽰开放的端⼝和连接(以centos 6 操作)
它是Linux管理员使⽤来显⽰各种⽹络信息的⼯具,如查看什么端⼝开放和什么⽹络连接已经建⽴以及何种进程运⾏在该连接之上。同时它也显⽰了不同程序间打开的Unix套接字的信息。作为⼤多数
Linux发⾏版本的⼀部分,netstat的许多命令在 netstat和它的不同输出中有详细的描述。最为常⽤的如下:
简介:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
格式:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]
选项:
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-
l: 处于监听状态
-a: 所有状态
-n: 以数字显⽰IP和端⼝;
-e:扩展格式
-p: 显⽰相关进程及PID
常⽤组合:
-tan, -uan, -tnl, -unl, -tunlp
实例1:以数字显⽰tcp协议的ip和端⼝
实例2:以数字显⽰tcp、udp协议的ip和端⼝以及相关进程及PID
4、vmstat – 虚拟内存统计信息
vmstat是虚拟内存(virtual memory statistics)的缩写,作为⼀个内存监控⼯具,它收集和显⽰关于内存,进程,终端和分页和I/O阻塞的概括信息。作为⼀个开源程序,它可以在⼤部分Linux发⾏版本
中到,包括Solaris和FreeBSD。它⽤来诊断⼤部分的内存性能问题和其他相关问题。
简介:
vmstat - Report virtual memory statistics
格式:
vmstat [options] [delay [count]]
实例1:
procs r:等待运⾏的进程的个数  b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);
memory swpd: 交换内存的使⽤总量  free:空闲物理内存总量
buffer:⽤于buffer的内存总量  cache:⽤于cache的内存总量
swap si:数据进⼊swap中的数据速率(kb/s) so:数据离开swap中的数据速率(kb/s)
io bi:从块设备读⼊数据到系统的速率;(kb/s)  bo: 保存数据⾄块设备的速率
linux中netstat命令
system in: interrupts, 中断速率  cs: context switch, 进程切换速率
cpu us:⽤户空间  sy:内核空间  id:空闲
wa:等待IO时间  st:虚拟机偷⾛的时间
5、Htop – 更加友好的top(需配置epel源安装)
Htop基本上是⼀个top改善版本,它能够以更加多彩的⽅式显⽰更多的统计信息,同时允许你采⽤不同的⽅式进⾏排序,它提供了⼀个⽤户友好的接⼝。
简介:
htop - interactive process viewer
格式:
htop [-dChusv]
选项:
-d #: 指定延迟时间;
-u UserName: 仅显⽰指定⽤户的进程;
-s COLOMN: 以指定字段进⾏排序;
⼦命令:
s: 跟踪选定进程的系统调⽤;
l: 显⽰选定进程打开的⽂件列表;
a:将选定的进程绑定⾄某指定CPU核⼼;
t: 显⽰进程树
实例1:
6、ss – ⽹络管理的现代替代品
ss是iproute2包的⼀部分。iproute2是⽤来替代⼀整套标准的Unix⽹络⼯具组件,它曾经⽤来完成⽹络接⼝配置,路由表和管理ARP表任务。ss⼯具⽤来记录套接字统计信息,它可以显⽰类似netstat⼀
样的信息,同时也能显⽰更多TCP和状态信息。
简介:
ss - another utility to investigate sockets
格式:
ss [options] [ FILTER ]
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-
n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存⽤量
-o:计时器信息
常⽤组合:
-tan, -tanl, -tanlp, -uan
实例1:以数字格式显⽰所有的tcp协议链接
实例2:以数字形式显⽰所有的tcp、udp协议的链接以及端⼝
7、Glances – 是⼀个由 Python 编写,使⽤ psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令⾏系统监视⼯具。通过 Glances,我们可以监视 CPU,平均负载,内存,⽹络流量,磁盘 I/O,
其他处理器和⽂件系统空间的利⽤情况。(需配epel源安装)
简介:
glances - A cross-platform curses-based monitoring tool
格式:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
选项:
-b: 以Byte为单位显⽰⽹卡数据速率;
-d: 关闭磁盘I/O模块;
-f /path/to/somefile: 设定输⼊⽂件位置;
-o {HTML|CSV}:输出格式;
-m: 禁⽤mount模块
-n: 禁⽤⽹络模块
-t #: 延迟时间间隔
-1:每个CPU的相关数据单独显⽰;
内建命令:
a  Sort processes automatically    l  Show/hide logs
c  Sort processes by CPU%          b  Bytes or bits for network I/O
m  Sort processes by MEM%          w  Delete warning logs
p  Sort processes by name          x  Delete warning and critical logs
i  Sort processes by I/O rate      1  Global CPU or per-CPU stats
d  Show/hid
e disk I/O stats        h  Show/hide this help screen
f  Show/hide file system stats      t  View network I/O as combination
n  Show/hide network stats          u  View cumulative network I/O
s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)
实例1:直接输⼊"glances"命令,可以监视 CPU,平均负载,内存,⽹络流量,磁盘 I/O,其他处理器和⽂件系统空间的利⽤情况实例2:C/S模式下运⾏glances命令
服务模式:"glances -s -B IPADDR" (IPADDR: 指明监听于本机哪个地址)(Tips:需关掉防⽕墙或者开启相应的端⼝)
客户模式:"glances -c IPADDR" (IPADDR:要连⼊的服务器端地址)
分类: