1. top 命令 - 实时进程监控

基本用法

1
top [选项]

常用选项

选项 说明
-b 批处理模式(非交互式)
-d 秒 设置刷新间隔时间
-n 次数 指定刷新次数后退出
-u 用户 只显示指定用户的进程
-p PID 只监控指定PID的进程

显示字段说明

字段 说明
PID 进程ID
PPID 父进程ID
USER 进程所有者
RUSER 实际用户名
UID 用户ID
GROUP 所属组
PR 优先级
NI nice值
VIRT 虚拟内存使用量(KB)
RES 物理内存使用量(KB)
SHR 共享内存大小(KB)
S 进程状态
TTY 关联终端
%CPU CPU使用率
%MEM 内存使用率
TIME+ CPU占用时间累计
COMMAND 执行的命令

交互式操作

按键 功能说明
空格/Enter 立即刷新
f 选择显示字段
o 修改排序字段
l 切换负载显示
m 切换内存显示
u 筛选用户进程
t 切换CPU状态显示
P 按CPU%排序
M 按内存%排序
N 按PID排序
T 按运行时间排序
W 保存当前配置
k 结束进程
h/? 帮助信息
q 退出程序
A 切换显示模式
d/s 修改刷新间隔
</> 切换排序顺序

2. vmstat - 系统资源监控

基本用法

1
vmstat [刷新间隔(秒)] [刷新次数]

输出字段说明

类别 字段 说明
procs r 运行队列中的进程数(若持续超过CPU核心数表示CPU瓶颈)
b 等待I/O的进程数
memory swpd 使用的swap空间大小
free 空闲内存
buff 用作buffer的内存
cache 用作cache的内存
swap si 每秒从swap读入内存量
so 每秒从内存写入swap量
io bi 块设备每秒接收的块数
bo 块设备每秒发送的块数
system in 每秒中断数
cs 每秒上下文切换数
cpu us 用户空间CPU时间占比
sy 内核空间CPU时间占比
id CPU空闲时间占比
wa I/O等待时间占比
st 虚拟机偷取时间占比

3. iostat - I/O监控

基本用法

1
iostat [选项] [间隔秒数] [次数]

常用选项

选项 说明
-c 只显示CPU统计
-d 只显示磁盘统计
-k 以KB为单位显示
-t 显示时间戳

CPU统计字段

字段 说明
%user 用户进程CPU占比
%nice 调整优先级进程的CPU占比
%system 内核CPU占比
%iowait I/O等待占比
%steal 虚拟机占用占比
%idle 空闲占比

磁盘统计字段

字段 说明
tps 每秒I/O请求数
Blk_read/s 每秒读取块数
Blk_wrtn/s 每秒写入块数
Blk_read 总读取块数
Blk_wrtn 总写入块数

4. sar - 系统活动报告

基本用法

1
sar [选项] [-s 开始时间] [-e 结束时间] [-f 日志文件] [间隔] [次数]

常用选项

选项 说明
-A 显示所有报告
-b I/O和传输速率统计
-c 进程创建统计
-f 文件 指定日志文件
-n DEV 网络设备统计
-n EDEV 网络错误统计
-r 内存和swap统计
-u CPU利用率
-P ALL 每个CPU核心统计
-R 内存统计
-W swap统计

详细字段说明

sar -b (I/O统计)

字段 说明
tps 每秒I/O请求数
rtps 每秒读请求数
wtps 每秒写请求数
bread/s 每秒读取块数
bwrtn/s 每秒写入块数

sar -n DEV (网络统计)

字段 说明
IFACE 网络接口名
rxpck/s 每秒接收包数
txpck/s 每秒发送包数
rxkB/s 每秒接收KB数
txkB/s 每秒发送KB数

sar -r (内存统计)

字段 说明
kbmemfree 空闲内存(KB)
kbmemused 已用内存(KB)
%memused 内存使用率
kbbuffers buffer使用量(KB)
kbcached cache使用量(KB)

5. 系统负载命令

uptime

显示:

  1. 系统运行时间
  2. 登录用户数
  3. 1/5/15分钟平均负载

w 命令

1
w [选项] [用户名]

选项

选项 说明
-h 不显示标题
-s 精简格式(不显示登录时间/JCPU/PCPU)

输出字段

字段 说明
USER 用户名
TTY 终端名
FROM 远程主机
LOGIN@ 登录时间
IDLE 空闲时间
JCPU 该终端所有进程CPU时间
PCPU 当前进程CPU时间
WHAT 正在执行的命令

6. 进程监控

ps 命令

1
ps [选项]

常用选项

选项 说明
a 显示所有进程
e 显示环境变量
x 包括无终端进程
u 显示用户信息
r 只显示运行中进程
l 长格式显示
U 用户 筛选指定用户
-C 命令 筛选指定命令
-e 显示所有进程
-f 完整格式显示
-l 长格式显示
-p PID 筛选指定PID
-t tty 筛选指定终端

显示字段

字段 说明
USER 用户名
PID 进程ID
PPID 父进程ID
%CPU CPU使用率
%MEM 内存使用率
VSZ 虚拟内存大小
RSS 物理内存大小
TTY 关联终端
STAT 进程状态
START 启动时间
TIME CPU占用时间
COMMAND 执行的命令

其他进程工具

  • pstree:以树状显示进程关系
  • lsof:列出打开的文件

7. 内存监控

free 命令

1
free [选项]

选项

选项 说明
-b 以字节显示
-k 以KB显示(默认)
-m 以MB显示
-t 显示总计行
-o 不显示buffer行
-s 秒 持续监控间隔

输出字段

字段 说明
total 总内存量
used 已用量(含buffer/cache)
free 空闲量(含buffer/cache)
shared 共享内存
buffers buffer缓存
cached page cache
-/+ buffers/cache 实际内存使用
used 不含buffer/cache的用量
free 含buffer/cache的空闲量

8. 磁盘与网络监控

df 命令

1
df [选项] [目录]

选项

选项 说明
-a 显示所有文件系统
-h 人性化显示(1024进制)
-H 人性化显示(1000进制)
-i 显示inode信息
-l 只显示本地文件系统
-m 以MB为单位显示

网络测试工具

  • netserver:启动测试服务(监听12865端口)
  • netperf:网络性能测试客户端

9. 高级监控系统

collectd

监控项目包括:

  • CPU使用率
  • 系统温度和风扇状态
  • 进程状态
  • 网络流量和延迟
  • Web服务器状态(APACHE/Nginx)
  • DNS服务器状态
  • 数据库状态
  • SWAP使用情况
  • 用户登录情况

Nagios

功能特点:

  • 网络服务监控
  • 系统资源监控
  • 基于Web的监控界面
  • 邮件/SMS告警通知
  • 自定义事件处理
  • 日志自动轮转
  • 支持分层主机结构

可视化工具

  • MRTG:网络流量可视化
  • Cacti:MRTG的增强替代品,提供更丰富的监控功能