Linux性能调优-监控和基准工具

工具概览

性能监控工具

Tool 用途
top 处理器活动
vmstat 系统活动,硬件和系统信息
uptime,w 平均系统负载
ps,pstree 显示进程
free 内存使用
iostat 平均 CPU 负载,磁盘活动
sar 收集并报告系统活动
mpstat 多处理器
netstat 网络统计
iptraf 实时网络统计
tcpdump,ethereal 详细网络流量分析
nmon 收集并报告系统活动
strace 系统调用
Proc file system 内核变量数据

基准工具

Tool 描述
Imbench 系统微型基准
iozone 文件系统基准
netperf 网络性能基准

监控工具详解

top

top 命令显示处理器实际的活动。默认以 CPU 使用率排序(P)、累计运行时间(T)和内存占用排序(M)。
c 命令切换显示进程详细路径。

vmstat

vmstat 提供关于进程、内存、分页、IO 块,traps 和 CPU 活动信息。可选参数 -m 内核内存分配情况,-a 活动、不活动内存页。
image.png
r:等待执行的进程数
b: 不可中断进程数
swpd: 虚拟内存使用
si: 磁盘交换到内存(KBps),so 内存交换到磁盘
bi:块请求到块设备数(blocks/s),bo: 从块设备收到的块数量
in:每秒中断数
cs:每秒上下文切换数

ps

image.png
ps -eFy
RSS 物理内存使用量,SZ = code+data+stack 内存用量,WCHAN 进程休眠在内核哪个函数,- 正在运行 * 多线程。

free

image.png
输出图解
image.png

iostat

iostat系统启动以来的统计数据
image.png
iostat -d -x sdb 1
image.png
rrqm/s, wrqm/s: 每秒读写合并数
r/s,w/s:每秒读写请求数
rsec/s,wsec/s:每秒读写扇区数
rkB/s,wkB/s:每秒设备读写量
avgrq-sz: 平均请求大小,单位扇区
avgqu-sz: 每个请求的平均队列长度
await: 内核状态 CPU 利用率
svctm: 每个 IO 的平均服务时间
%util: IO 请求提交到设备的 CPU 使用时间比例,100%表示设备饱和了,CPU 提交到设备,设备处理不过来。

mpstat

多核处理器统计信息,查看应用是否负载到多核
image.png

pmap

显示进程的内存分布

netstat

netstat -natuw
image.png

strace

strace 命令拦截并记录进程调用的 system calls、收到的信号。
strace -p <pid> 监控进程
strace -c <command> 每一个系统调用花费的时间

proc file system

image.png
在/proc 目录中的文件记录了系统相关信息。
数字目录: 表示进程 PID
bus:总线系统信息,例如 PCI 总线和 USB 接口
irq:中断信息
net:网络子系统信息
scsi:scsi 子系统信息
sys:可调整的内核参数
tty:虚拟终端和物理设备的关联信息。

基准工具详解

基准工具包含这几个功能模块:

  • 生成负载
  • 监控性能
  • 监控系统利用率
  • 出报告

LMbench 检查上下文切换,本地通信,内存带宽和文件操作。
IOzone 测试磁盘 IO
netperf 测试 TCP/IP 性能
你必须指基准工具的特点,选择适合你需求的工具。其他有用工具列表
image.png