Linux下四大性能指标
-
内存
空闲内存
Swap使用率
缓冲和缓存
Slabs描述的内核使用量
活动和非活动内存 -
CPU
CPU使用率:CPU的使用率
平均负载:单位时间内的活跃线程数
用户时间:CPU在用户进程上的实际百分比
系统时间:CPU在内核上花费的实际百分比
空闲时间:系统处于在等待IO操作上的时间总和
等待:CPU花费在等待IO操作上的时间总和
Nice时间:CPU优先执行的时间百分比 -
磁盘
磁盘使用率
IO饱和度
IOPS
吞吐量
响应时间 -
网络带宽
吞吐量:
延迟:网络发起 - 收到响应的耗时
PPS:Package Per Second,每秒传输的包数
网络可用性:网络通不通
并发连接数:
丢包率:网络故障、发生n次,失败m次
网络可用性
系统整体性能评估常用命令:
- uptime 查看系统运行时间、用户数、负载
- top 实时显示cpu负载、进程资源占用
- dmesg 查看内核日志信息
- ps,pstree: 提供了一个正在运行的进程的列表
- pmap: 显示一个或者多个进程使用内存的数量
- perf cpu剖析和跟踪,性能计数分析
- strace 统计跟踪内核态信息
- sar 用于收集、报告和保存系统的信息
sar -q 查看load的情况
sar -r 查看内存
sar -n 查看网络情况
CPU性能评估:
- vmstat 分析上下文切换
- pidstat 分析上下文切换和CPU使用情况
- mpstat 查看所有cpu核信息
内存性能评估:
- free
- dtrace 动态跟踪
- valgrind 分析程序性能及程序中的内存泄漏错误
磁盘IO性能评估:
- iostat 查看块设备维度的磁盘IO情况
- pidstat 查看进程级别的资源情况
- iotop 查看磁盘整体情况和各进程情况
网络评估常用命令:
- ping
- netstat
- ss 获取socket 统计信息
- tcpdump
- tcpflow
java应用问题排查常用命令:
- jps
显示当前系统的java进程情况,及其pid号 - jinfo
输出java进程、core文件或远程debug服务器的配置信息 - jstat
用于监控虚拟机各种运行状态信息的命令行工具 - jmap
主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成堆转储快照(Heap Dump) - jhat jhat(Java Heap Analysis Tool)
是一个用来分析java的堆情况的命令。使用jmap命令可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,将dump文件转成html的形式,然后通过http访问可以查看堆情况。 - jstack
用于生成java虚拟机当前时刻的线程快照