资源 | 类型 | 性能指标 |
---|---|---|
CPU | 使用率 | CPU使用率 |
CPU | 饱和度 | 运行队列长度或平均负载 |
CPU | 错误数 | 硬件cpu错误数 |
内存 | 使用率 | 已用内存百分比或SWAP用量百分比 |
内存 | 饱和度 | 内存换页量 |
内存 | 错误数 | 内存分配失败或OOM |
存储设备I/O | 使用率 | 设备I/O事件百分比 |
存储设备I/O | 饱和度 | 等待队列产犊或延迟 |
存储设备I/O | 错误数 | I/O错误数 |
文件系统 | 使用率 | 已用容量百分比 |
文件系统 | 饱和度 | 已用容量百分比 |
文件系统 | 错误数 | 文件读写错误数 |
网络 | 使用率 | 带宽使用率 |
网络 | 饱和度 | 重传报文数 |
网络 | 错误数 | 网卡收发错误数、丢包数 |
文件描述符 | 使用率 | 已用文件描述符数百分比 |
连接跟踪 | 使用率 | 已用连接跟踪数百分比 |
连接数 | 饱和度 | TIMEWAIT状态连接数 |
性能指标 | 性能工具 | 说明 |
---|---|---|
平均负载 | uptime、top、/proc/loadavg | uptime最简单;top提供更全的指标;/proc/loadavg常用于监控系统 |
系统CPU使用率 | vmstat, mpstat, top, sar, /proc/stat | top、vmstat、mpstat只可以动态查看,而sar还可以记录历史数据;/proc/stat是其他性能工具的数据来源,也常用于监控 |
进程CPU使用率 | top, ps, pidstat, htop, atop | top和ps可以按CPU使用率给进程排序,而pidstat只显示实际用了CPU的进程;htop和atop以不同颜色显示更直观 |
系统上下文切换 | vmstat | 除了上下文切换次数,还提供运行状态和不可中断状态的进程数 |
进程上下文切换 | pidstat | 注意加上-w参数 |
软中断 | top, mpstat, /proc/softirqs | top提供软中断cpu使用率,而/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数 |
硬中断 | vmstat, /proc/interrupts | vmstat提供总的中断次数,而/proc/interrupts提供各种中断在每个CPU上运行的累计次数 |
网络 | dstat, sar, tcpdump | dstat、sar提供总的网络接受和发送情况,而tcpdump则是动态抓取正在进行的网络通讯 |
I/O | dstat, sar | dstat和sar都提佛那个了I/O的整体情况 |
CPU缓存 | perf | 使用perf stat子命令 |
CPU数 | lscpu, /proc/cpuinfo | lscpu更直观 |
事件剖析 | perf, 火焰图, execsnoop | perf和火焰图用来分析热点函数以及调用栈,execsnoop用来监测短时进程 |
动态追踪 | ftrace, bcc, systemtap | ftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核>=4.1) |
性能指标 | 性能工具 | 说明 |
---|---|---|
系统已用、可用、剩余内存 | free, vmstat, sar, /proc/meminfo | free最为简单,而vmstat、sar更为全面;/proc/meminfo是其他工具的数据来源,也常用于监控系统中 |
进程虚拟内存、常驻内存、共享内存 | ps, top, pidstat, /proc/pid/stat, /proc/pid/status | ps和top最简单,而pidstat则需要加上-r选项;/proc/pid/stat和/proc/pid/status是其他工具的数据来源,也常用于监控系统中 |
进程内存分布 | pmap, /proc/pid/maps | /proc/pid/maps是pmap的数据来源 |
进程SWAP换出内存 | top, /proc/pid/status | /proc/pid/status是top的数据来源 |
进程缺页异常 | ps, top, pidstat | 注意给pidstat加上-r选项 |
系统换页情况 | sar | 注意加上-B选项 |
缓存/缓冲区用量 | free, vmstat, sar, cachestat | vmstat最常用,而cachestat需要安装bcc |
缓存/缓冲区命中率 | cachetop | 需要安装bcc |
SWAP已用空间和剩余空间 | free, sar | free最为简单,而sar还可以记录历史 |
SWAP换入换出 | vmstat, sar | vmstat最为简单,而sar还可以记录历史 |
内存泄漏检测 | memleak, valgrind | memleak需要安装bcc,valgrind还可以在旧版本(3.x)内核中使用 |
指定文件的缓存大小 | pcstat | 需要从源码下载安装 |
性能指标 | 性能工具 | 说明 |
---|---|---|
文件系统空间容量、使用量以及剩余空间 | df | 详细文档可以执行info coreutils 'df invocation’命令查看 |
索引节点容量、使用量以及剩余量 | df | 注意加上-i选项 |
页缓存和可回收Slab缓存 | /proc/meminfo, sar, vmstat | 注意sar需要加上-r选项,而/proc/meminfo是其他工具的数据来源,也常用于监控系统 |
缓冲区 | /proc/meminfo, sar, vmstat | 注意sar需要加上-r选项,而/proc/meminfo是其他工具的数据来源,也常用于监控系统 |
目录项、索引节点以及文件系统的缓存 | /proc/slabinfo, slabtop | slabtop更直观,而/proc/slabinfo常用于监控 |
磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度 | iostat, sar, dstat, /proc/diskstats | iostat最为常用,注意使用iostat -d -x或sar -d选项;/proc/diskstats则是其他工具的数据来源,也常用于监控 |
进程I/O大小以及I/O延迟 | pidstat, iotop | 注意使用pidstat -d选项 |
块设备I/O事件跟踪 | blktrace | 需要跟blkparse配合使用,比如blktrace -d /dev/sda -o- | blkparse -|- |
进程I/O系统调用跟踪 | strace, perf trace | strace只可以跟踪单个进程,而perf trace还可以跟踪所用进程的系统调用 |
进程块设备I/O大小跟踪 | biosnoop, biotop | 需要安装bcc |
动态追踪 | ftrace, bcc, systemtap | ftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本>= 4.1) |
性能指标 | 性能工具 | 说明 |
---|---|---|
吞吐量(BPS) | sar, nethogs, iftop, /proc/net/dev | 分别可以查看网络接口、进程以及IP地址的网络吞吐量;/proc/net/dev常用于监控 |
吞吐量(PPS) | sar, /proc/net/dev | 注意使用sar -n DEV选项 |
网络连接数 | netstat, ss | ss速度更快 |
网络错误数 | netstat, sar | 注意使用netstat -s或者sar -n EDEV/EIP选项 |
网络延迟 | ping, hping3 | ping基于ICMP,而hping3基于TCP协议 |
连接跟踪数 | conntrack, /proc/sys/net/netfilter/nf_conntrack_count, /proc/sys/net/netfilter/nf_conntrack_mac | conntrack可用来查看所用连接跟踪的相关信息,nf_conntrack_count只是连接跟踪的数量,而nf_conntrack_mac则限制了总的连接跟踪数量 |
路由 | mtr, traceroute, route | route用于查询路由表,而mtr和traceroute则用来排查和定位网络链路中的路由问题 |
DNS | dig, nslookup | 用于排查DNS解析的问题 |
防火墙和NAT | iptables | 用于排查防火墙及NAT的问题 |
网卡选项 | ethtool | 用于查看和配置网络接口的功能选项 |
网络抓包 | tcpdump, wireshark | 通常在服务器中使用tcpdump抓包后再复制出来用wireshark的图形界面分析 |
动态追踪 | ftrace, bcc, systemtap | ftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本>= 4.1) |
性能指标 | 性能工具 | 说明 |
---|---|---|
平均负载 | uptime、top | uptime最简单、top提供了更全的指标 |
系统整体CPU使用率 | vmstat、mpstat、top、sar、/proc/stat | top、vmstat、mpstat只可以动态查看,而sar还可以记录历史数据;/proc/stat是其他性能工具的数据来源,也常用于监控 |
进程CPU使用率 | top、pidstat、ps、htop、atop | top和ps可以按CPU使用率给进程排序,而pidstat只显示实际用了CPU的进程;htop和atop以不同颜色显示更直观 |
系统上下文切换 | vmstat | 除了上下文切换次数,还提供运行状态和不可中断状态的进程数 |
进程上下文切换 | pidstat | 注意加上-w参数 |
软中断 | top、/proc/softirq、mpstat | top提供软中断cpu使用率,而/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数 |
硬中断 | vmstat、/proc/interrupts | vmstat提供总的中断次数,而/proc/interrupts提供各种中断在每个CPU上运行的累计次数 |
网络 | dstat、sar、tcpdump | dstat、sar提供总的网络接受和发送情况,而tcpdump则是动态抓取正在进行的网络通讯 |
I/O | dstat、sar | dstat和sar都提佛那个了I/O的整体情况 |
CPU个数 | /proc/cpuinfo、lscpu | lscpu更直观 |
事件剖析 | perf、execsnoop | per可以用来分析CPU的换粗以及内核调用栈,execsnoop用来监测短时进程 |
性能指标 | 性能工具 |
---|---|
系统已用、可用、剩余内存 | free、vmstat、sar、/proc/meminfo |
进程虚拟内存、常驻内存、共享内存 | ps、top |
进程内存分布 | pmap |
进程Swap换出内存 | top、/proc/pid/status |
进程缺页异常 | ps、top |
系统换页情况 | sar |
缓存/缓冲区用量 | free、vmstat、sar、cachestat |
缓存/缓冲区命中率 | cachetop |
SWAP已用空间和剩余空间 | free、sar |
Swap换入换出 | vmstat |
内存泄漏检测 | memleak、valgrind |
指定文件的缓存大小 | pcstat |
性能指标 | 性能工具 | 说明 |
---|---|---|
文件系统空间容量、使用量以及剩余空间 | df | 详细文档见info coreutils ‘df invocation’ |
索引节点容量、使用量以及剩余量 | df | 使用-i选项 |
页缓存和可回收slab缓存 | /proc/meminfo、sar、vmstat | 使用sar -r选项 |
缓冲区 | /proc/meminfo、sar、vmstat | 使用sar -r选项 |
目录项、索引节点以及文件系统的缓存 | /proc/slabinfo、slabtop | slabtop更直观 |
磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度 | iostat、sar、dstat | 使用iostat -d -x或sar -d选项 |
进程I/O大小以及I/O延迟 | pidstat、iotop | 使用pidstat -d选项 |
块设备I/O系统调用跟踪 | blktrace | blktrace -d /dev/sda -o-|blkparse -i- |
进程I/O系统调用跟踪 | strace | 通过系统调用跟踪进程I/O |
进程块设备I/O大小跟踪 | biosnoop、biotop | 需要安装bcc软件包 |
性能指标 | 性能工具 | 说明 |
---|---|---|
吞吐量(BPS) | sar、nethogs、iftop | 分别可以查看网络接口、进程以及IP地址的网络吞吐量 |
PPS | sar、/proc/net/dev | 查看网络接口的PPS |
连接数 | netstat、ss | 查看网络连接数 |
延迟 | ping、hping3 | 通过ICMP、TCP等测试网络延迟 |
连接跟踪数 | conntrack | 查看和管理连接跟踪情况 |
路由 | mtr、route、traceroute | 查看路由并测试链路信息 |
DNS | dig、nslookup | 排查DNS解析问题 |
防火墙和NAT | iptables | 配置和管理防火墙及NAT规则 |
网卡功能 | ethtool | 查看和配置网络接口的功能 |
抓包 | tcpdump、wireshark | 抓包分析网络流量 |
内核协议栈跟踪 | bcc、systemtap | 动态跟踪内核协议栈的行为 |
性能工具 | CPU性能指标 |
---|---|
uptime | 平均负载 |
top | 平均负载、运行队列、整体的CPU使用率以及每个进程的状态和CPU使用率 |
htop | top增强版,以不同颜色区分不同类型的进程 |
atop | CPU、内存、磁盘和网络等各种资源的全面监控 |
vmstat | 系统整体的CPU使用率、上下文切换次数、中断次数,还包括处于运行和不可中断状态的进程数量 |
mpstat | 每个CPU的使用率和软中断次数 |
pidstat | 进程和线程的CPU使用率、中断上下文切换次数 |
/proc/softirq | 软中断类型和在每个CPU上的累积中断次数 |
/proc/interrupts | 软中断类型和在每个CPU上的累积中断次数 |
ps | 每个进程的状态和CPU使用率 |
pstree | 进程的父子关系 |
dstat | 系统整体的CPU使用率 |
sar | 系统整体的CPU使用率,包括可配置的历史数据 |
strace | 进程的系统调用 |
perf | CPU性能事件剖析,如调用链分析、CPU缓存、CPU调度等 |
execsnoop | 监控短时进程 |
性能工具 | 内存指标 | |
---|---|---|
free、/proc/meminfo | 系统已用、可用、剩余内存以及缓存和缓冲区的使用量 | |
top、ps | 进程虚拟、常驻、共享内存以及缺页异常 | |
vmstat | 系统剩余内存、缓存、缓冲区、换入、换出 | |
sar | 系统内存换页情况、内存使用率、缓存和缓冲区用量以及Swap使用情况 | |
cachestat | 系统缓存和缓冲区的命中率 | |
cachetop | 进程缓存和缓冲区的命中率 | |
slabtop | 系统slab缓存使用情况 | |
/proc/pid/status | 进程swap内存等 | |
/proc/pid/smaps、pmap | 进程地址空间和内存状态 | |
valgrind | 进程内存错误检查器,用来检测内存初始化、泄漏、越界访问等各种内存错误 | |
memleak | 内存泄漏检测 | |
pcstat | 查看指定文件的缓存情况 |
性能工具 | 性能指标 | 性能工具 | 性能指标 |
---|---|---|---|
iostat | 磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度 | blktrace | 跟踪块设备I/O事件 |
pidstat | 进程I/O大小以及I/O延迟 | biosnoop | 跟踪进程的块设备I/O大小 |
sar | 磁盘I/O使用率、IOPS、吞吐量以及响应时间 | biotop | 跟踪进程块I/O并按照I/O大小排序 |
dstat | 磁盘I/O使用率、IOPS以及吞吐量 | strace | 跟踪进程的I/O系统调用 |
iotop | 按I/O大小对进程排序 | perf | 跟踪内核中的I/O事件 |
slabtop | 目录项、索引节点以及文件系统的缓存 | df | 磁盘空间和索引节点使用量和剩余量 |
/proc/slabinfo | 目录项、索引节点以及文件系统的缓存 | mount | 文件系统的挂在路径以及挂载参数 |
/proc/meminfo | 页缓存和可回收的slab缓存 | du | 目录占用的磁盘空间大小 |
/proc/diskstats | 磁盘的IOPS、吞吐量以及延迟 | tune2fs | 显示和设置文件系统参数 |
/proc/pid/io | 进程IOPS、I/O大小以及I/O延迟 | hdparam | 显示和设置磁盘参数 |
vmstat | 缓存和缓冲区用量汇总 |
性能工具 | 主要功能 |
---|---|
ifconfig、ip | 配置和查看网络接口 |
ss | 查看网络连接数 |
sar、/proc/net/dev/sys/class/net/eth0/statistics/ | 查看网络接口的网络收发情况 |
nethogs | 查看进程的网络收发情况 |
iftop | 查看IP的网络收发情况 |
ethtool | 查看和配置网络接口 |
conntrack | 查看和管理连接跟踪情况 |
nslookup、dig | 排查DNS解析问题 |
mtr、route、traceroute | 查看路由并测试链路信息 |
ping、hping3 | 测试网络延迟 |
tcpdump | 网络抓包工具 |
wireshark | 网络抓包和图形界面分析工具 |
iptables | 配置和管理防火墙及NAT规则 |
perf | 剖析内核协议栈的性能 |
systemtap、bcc | 动态追踪内核协议栈的行为 |