为什么要性能监控
了解系统的运行情况,有计划的改善项目的运行,提供系统的性能,保证系统稳定性等
监控哪些
系统层面
last min avg max
cpu
- cpu jumps
- context switchs per second:线程的切换,切换过多会导致cpu忙于切换,影响吞吐率
- interrupts per second
- cpu load cpu使用队列的长度的统计信息
- processor load (1 min average per core)
- processor load (5 min average per core)
- processor load (15 min average per core)
- cpu utilization 利用率
- cpu idle time
- cpu user time
- cpu system time
- cpu iowait time
- cpu nice time
- cpu interrupt time
- cpu steal time
memory内存
- memory usage
- avaulable memory
磁盘
- disk space usage
- total disk space in
- free disk space on
- disk space /opt
network网络
- network traffic on eth0
- incoming network traffic on eth0
- outgoing network traffic on eth0
软件层面
数据库
tomcat
jvm
应用方面
应用类型
- IO相关:Io相关的应用通常用来处理大量数据,需要大量内存和存储,频繁IO操作读写操作,而对cpu的要求比较少,大部分时候cpu再等待磁盘eg:数据库服务器、文件服务器
- CPU相关:CPU相关大的应用需要大量cpu资源,比如高并发的web/mail服务器、图像、视频处理、科学计算等
方法论
压测
jmeter
线程就是并发数、吞吐量就是QPS
监控工具
| 工具 | 简单介绍 |
|---|---|
| top | 查看进程活动状态以及一些系统状况 |
| vmstat | 查看系统状态、硬件和系统信息等 |
| iostat | 查看cpu负载、硬盘状态 |
| sar | 综合工具、查看系统状态 |
| mpstat | 查看多处理器状况 |
| netstat | 查看网络状况 |
| iptraf | 实时网络状况检测 |
| tcpdump | 抓取网络数据包、详细分析 |
| mpstat | 查看多处理器状况 |
| tcptrace | 数据包分析工具 |
| netperf | 网络带宽工具 |
| dstat | 综合工具、综合了vmstat\iostat\ifstat\netstat等 |
参考文献
https://blog.csdn.net/tianlesoftware/article/details/6198780