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