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: 保存数据至块设备的速率 |
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/hide 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:要连入的服务器端地址)