top 命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。运维工程师们常常会把 top 命令比作是 “加强版的 Windows 任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然,实时感知系统全局的运行状态,非常适合作为接手服务器后执行的第一条命令。
动态查看进程信息,并且可以查看到系统负载,内存,CPU 等使用情况。
语法格式
top [参数]
常用参数
参数 | 解析 |
-d <秒> | 改变显示的更新速度 |
-c | 切换显示模式,更详细地显示路径及命令 |
-s | 安全模式,不允许交互式指令 |
-i | 不显示任何闲置或僵死的行程 |
-n | 设定显示的总次数,完成后将会自动退出 |
-b | 批处理模式,不进行交互式显示 |
参考实例
以默认格式显示系统运行信息:
- [root@root ~]# top
- top - 02:48:56 up 20 min, 1 user, load average: 0.00, 0.00, 0.04
- Tasks: 432 total, 1 running, 431 sleeping, 0 stopped, 0 zombie
- %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 s
- MiB Mem : 1966.1 total, 172.1 free, 1339.3 used, 454.7 buff/cache
- MiB Swap: 2048.0 total, 2033.5 free, 14.5 used. 443.4 avail Mem
-
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 2848 root 20 0 177712 28820 7700 S 6.2 1.4 0:01.31 sssd_kcm
- 1 root 20 0 244748 14180 9052 S 0.0 0.7 0:01.10 systemd
- 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
- ………………省略部分输出信息………………
以默认格式显示系统运行信息,但提供完整的进程路径及名称:
[root@root ~]# top -c
以批处理模式显示程序信息:
[root@root ~]# top -b
设定每隔 5 秒刷新一次信息:
[root@root ~]# top -c -d 5
设定总显示次数为 3 回,随后自动退出命令:
[root@root ~]# top -n 5
字段解析
推荐使用
- top
- &&
- top -c
htop 是 linux 系统中的一个互动的进程查看器,一个文本模式的应用程序 (在控制台或者 X 终端中),需要 ncurses。htop 比较人性化。它可以让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
htop 相比较 top 的优势可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行、在启动上比 top 更快、杀进程时不需要输入进程号、支持鼠标选中操作、top 已不再维护。
htop 相当于 top 的升级版,监控界面是彩色的。
语法格式
htop [参数]
常用参数
非交互式是直接输入命令的时候加上参数,而交互式是 htop 进入监测后使用的。
非交互式参数
参数 | 解析 |
-C | 使用单色配色方案 |
-d | 设置更新的延迟, 单位是 10 微秒 |
-s 用户 | 纵列排序 |
-u 用户 | 只显示一个指定用户的进程 |
-p 用户 | 只显示给用户 |
-h | 打印此命令帮助 |
-v | 打印版本信息 |
交互式参数
参数 | 解析 |
space | 标记一个进程 |
U | 取消所有标记 |
l | 显示进程打来的文件 |
u | 显示特定用户 |
M | 按照内存排序 |
P | 按照 CPU 排序 |
T | 按在线时长排序 |
直接输入数字 | 查找对应的 PID 进程 |
参考实例
启动 htop:
[root@root ~]# htop
以单色模式启动 htop:
[root@root ~]# htop -C
设置显示更新的延迟为 3 秒:
[root@root ~]# htop -d 3
显示一个给定的用户的进程:
[root@root ~]# htop -u linuxcool_user
vmstat 命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O 等系统整体运行状态。
语法格式
- vmstat [参数]
- &&
- vmstat [参数] [时间间隔] [执行次数]
常用参数
参数 | 解析 |
-a | 显示活动内页 |
-f | 显示启动后创建的进程总数 |
-m | 显示 slab 信息 |
-n | 头信息仅显示一次 |
-s | 以表格方式显示事件计数器和内存状态 |
-d | 报告磁盘状态 |
-p | 显示指定的硬盘分区状态 |
-S | 输出信息的单位 |
参考实例
显示活动内页:
[root@root ~]# vmstat -a
显示启动后创建的进程总数:
[root@root ~]# vmstat -f
显示 slab 信息:
[root@root ~]# vmstat -m
头信息仅显示一次:
[root@root ~]# vmstat -n
以表格方式显示事件计数器和内存状态:
[root@root ~]# vmstat -s
显示指定的硬盘分区状态:
[root@root ~]# vmstat -p /dev/sda1
指定状态信息刷新的时间间隔为 1 秒:
[root@root ~]# vmstat 1
指定状态信息刷新的时间间隔为 2 秒刷新 3 次:
[root@root ~]# vmstat 2 3
字段解析
- [root@root ~]# vmstat
- procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
- r b swpd free buff cache si so bi bo in cs us sy id wa st
- 2 0 35896 445256 520 487496 271 2091 622 2119 129 127 1 1 97 0 0
1.procs
2.memory
3.swap
4.io
5.system
6.cpu
dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但最新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。
语法格式
dstat [参数]
常用参数
参数 | 解析 |
-c | 显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息 |
-d | 显示磁盘读写数据大小 |
-n | 显示网络状态 |
-l | 显示系统负载情况 |
-m | 显示内存使用情况 |
-g | 显示页面使用情况 |
-p | 显示进程状态 |
-s | 显示交换分区使用情况 |
-r | I/O 请求情况 |
-y | 系统状态 |
–ipc | 显示 ipc 消息队列,信号等信息 |
–socket | 用来显示 tcp udp 端口状态 |
参考实例
分别显示 cpu、disk、net、page、system 信息:
[root@root ~]# dstat
每三秒收集一次 cpu、disk、net、page、system 信息 :
[root@root ~]# dstat 3
显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息 :
[root@root ~]# dstat -c
显示磁盘读写数据大小 :
[root@root ~]# dstat -d
显示网络状态:
[root@root ~]# dstat -n
Glances 是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息。可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源最多的进程。Glances 有很多有趣的选项。它的主要特性之一是可以在配置文件中设置阀值(careful 小心、warning 警告、critical 致命),然后它会用不同颜色显示信息以表明系统的瓶颈。
语法格式
glances [参数]
常用参数
参数 | 解析 |
-b | 显示网络连接速度 Byte/ 秒 |
-s | 设置 glances 运行模式为服务器 |
-B | 绑定服务器端 IP 地址或者主机名称 |
-c | 连接 glances 服务器端 |
-t | 设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767 |
参考实例
192.168.10.2 主机启动 glances 服务:
[root@root ~]# glances -s -B 192.168.10.2 &
从另一台主机查看 192.168.10.2 主机的系统负载状态:
[root@root ~]# glances -c 192.168.10.2
显示网络连接速度 Byte/ 秒:
[root@root ~]# glances -b
设置屏幕刷新的时间间隔为 6 秒:
[root@root ~]# glances -t 6
sar 命令是 Linux 下系统运行状态统计工具,它将指定的操作系统状态计、数器显示到标准输出设备。
sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等
语法格式
sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
常用参数
参数 | 解析 |
-A | 所有报告的总和 |
-R | 显示内存状态 |
-b | 显示 I/O 和传递速率的统计信息 |
-B | 显示换页状态 |
-d | 输出每一块磁盘的使用信息 |
-e | 设置显示报告的结束时间 |
-f | 从制定的文件读取报告 |
-i | 设置状态信息刷新的间隔时间 |
-P | 报告每个 CPU 的状态 |
-u | 输出 cpu 使用情况和统计信息 |
-v | 显示索引节点、文件和其他内核表的状态 |
-w | 显示交换分区的状态 |
-x | 显示给定进程的装 |
-r | 报告内存利用率的统计信息 |
参考实例
使用 - R 参数显示内存信息:
[root@root ~]# sar -R
使用 - b 参数显示 I/O 速率:
[root@root ~]# sar -b
使用 - u 参数显示 CPU 利用率:
[root@root ~]# sar -u
使用 - d 参数查看每块磁盘的使用信息
[root@root ~]# sar -d
使用 - i 参数和 - f 参数设置状态信息 1 秒刷新一次并记录 5 次
[root@root ~]# sar -i 1 -f 5