11.性能测定
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/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的增强替代品,提供更丰富的监控功能