Linux下四大性能指标
1.内存
空闲内存
Swap使用率
缓冲和缓存
Slabs描述的内核使用量
活动和非活动内存
2.CPU
CPU使用率:CPU的使用率
平均负载:单位时间内的活跃线程数
用户时间:CPU在用户进程上的实际百分比
系统时间:CPU在内核上花费的实际百分比
空闲时间:系统处于在等待IO操作上的时间总和
等待:CPU花费在等待IO操作上的时间总和
Nice时间:CPU优先执行的时间百分比
3.磁盘
磁盘使用率
IO饱和度
IOPS
吞吐量
响应时间
4.网络带宽
吞吐量:
延迟:网络发起 - 收到响应的耗时
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虚拟机当前时刻的线程快照