系统监控
一、Linux
开始之前,说一下Linux中获取命令帮助的方法
- <command> --help
显示命令的用法、参数等- <command> -h
同上,简写- man <command>
查看该命令的使用手册(Linux User’s Manual ),十分详细,包括作用、语法、参数用法、系统调用、使用规则等等
1. ps
作用:查看系统进程状态(快照)
用法:ps [options] [--help]
常用用法:
-
System V 风格:
ps -ef
-
BSD 风格:
ps aux
-
排序 :
--sort=<+|-><column>
,如ps -ef --sort=+pcpu
、ps -ef --sort=-pmem
、ps aux --sort=+pid
等,+
表示升序、-
表示降序
上述命令都是输出系统中所有进程的详细信息,输出可能会很多,通常结合管道命令使用。
截图:
ps -ef --sort=+pcpu | less
ps aux --sort=-pmem | less
结果部分参数说明:
参数名 | 含义 |
---|---|
VSZ | 进程所使用的虚存的大小(Virtual Size) |
RSS | 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。 |
TTY | 与进程关联的终端(tty) |
STAT | 进程的状态:进程状态使用字符表示的(STAT的状态码) |
2. w/uptime/top
w
作用: 查看系统有谁登录了并且查看他们在做什么
用法: w [options] user [...]
load average
: 表示系统CPU的平均负载, 简单来说一段时间内就是进程队列的平均长度, 通常来说, 数值不能超过系统的逻辑CPU数量为好
uptime
作用: 查看系统运行了多长时间
用法: uptime [options]
top
作用:查看系统资源占用状况
用法:top -hv | -abcHimMsS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
常用参数:
-h
:help 显示帮助信息
-v
:version 显示版本信息
-d
:采样周期
-n
:采样次数
截图:
结果说明:
前半部分:系统统计信息
+ 第一行:任务队列信息 (相当于`uptime`命令)
系统当前时间、系统运行时间、用户数、平均负载、任务队列评价长度
+ 第二行:进程统计信息
正在运行进程数、睡眠进程数、停止的进程数、僵尸进程数
+ 第三行: CPU统计信息
us: 用户空间CPU占用率
sy: 内核空间CPU占用率
ni: 用户进程中改变了优先级的进程的CPU占用率
id: 空闲CPU占用率
wa: 等待IO的CPU时间片百分比
hi: 硬件中断请求
si: 软件中断请求
+ 第四行:内存信息
总物理内存大小、已使用、空限量、内核缓冲使用量、
+ 第五行:交换分区信息
交换分区总量、空闲交换分区大小、缓冲交换分区大小
后半部分:进程信息
PID:进程id
USER:进程所有者的用户名
PR:优先级
NI:nice值,负值表示优先级高、正值表示低优先级
%CPU:CPU占用率
TIME+:进程使用的CPU时间总计(单位:1/100 秒)
%MEN:内存占用率
VIRT:虚拟内存使用量(单位kb,VIRT=SWAP+RES)
RES:进程使用的未被换出的物理内存大小(RES=CODE+DATA)
SHR:共享内存大小(单位:kb)
COMMAND:进程命令
3. vmstat
作用:监控内存和CPU(实时采样)
用法:vmstat [-V] [-n] [delay [count]]
截图:
结果说明:
输出 | 含义 |
---|---|
Procs | r:等待运行的进程数 b:处在非中断睡眠状态的进程数 |
Memory | swpd:虚拟内存使用情况 free:空闲内存 buff:被采用作为缓存的内存数 单位均为KB |
Swap | si:磁盘->内存 换页数量 so:内存->磁盘 换页数量 单位:KB/秒 |
IO | in:发送到块的设备数 bo:从块设备接收到的块数 单位:KB/秒 |
System | in:每秒中断数 cs:每秒上下文切换次数 |
CPU | us:用户CPU使用时间 sy:内核CPU使用时间 id:空闲CPU时间 |
4. iostat
作用:监控IO使用
用法:iostat [ options ] [ <interval> [ <count> ] ]
截图:
说明:
选项 | 含义 |
---|---|
tps | 设备每秒传输次数 |
*_read/s | 每秒从设备读取的数据量 |
*_write/s | 每秒向设备写入的数据量 |
*_read | 从设备读取的数据量 |
*_write | 向设备写入的数据量 |
*代表读写单位例如KB、Blk等,不同系统不一样
5. pidstat
作用:多功能诊断器
用法:pidstat [ options ] [ <interval> [ <count> ] ]
常用参数:
-p <PID>
:指定进程ID
-u
:监控cpu使用率
-d
:监控磁盘IO
-r
:监控内存
-t
:监控粒度细化到线程级别
截图:
监控CPU:
监控磁盘:
监控内存:
二、Windows
- 任务管理器(GUI)
系统自带工具,功能有限 - perfmon(GUI)
专业级性能监控工具,功能齐全 - Process Explorer(GUI)
进程管理工具,可代替任务管理器使用 - pslist(CMD)
命令行的进程监控工具
由于大多数项目在Windows上跑的机会不大,因此这里不再详细介绍上述几个工具的使用方法,有兴趣的读者自行研究。