性能监控

为什么要性能监控

了解系统的运行情况,有计划的改善项目的运行,提供系统的性能,保证系统稳定性等

监控哪些

系统层面

last min avg max

cpu

  1. cpu jumps
    1. context switchs per second:线程的切换,切换过多会导致cpu忙于切换,影响吞吐率
    2. interrupts per second
  2. cpu load cpu使用队列的长度的统计信息
    1. processor load (1 min average per core)
    2. processor load (5 min average per core)
    3. processor load (15 min average per core)
  3. cpu utilization 利用率
    1. cpu idle time
    2. cpu user time
    3. cpu system time
    4. cpu iowait time
    5. cpu nice time
    6. cpu interrupt time
    7. cpu steal time

memory内存

  1. memory usage
    1. avaulable memory

磁盘

  1. disk space usage
    1. total disk space in
    2. free disk space on
  2. disk space /opt

network网络

  1. network traffic on eth0
    1. incoming network traffic on eth0
    2. 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

https://blog.csdn.net/marising/article/details/5182771