2

数据流转

理论上,我们需要对系统数据流转的每个节点做监控,收集数据,以便于分析,但受限于环境或时间问题,因此,需要进行简单分类,选择最需要的地方进行监控

图片描述

系统硬件资源

对于承载应用的最基础设备,需要充分了解其使用情况,需要关注的内容由CPU、Memory、I/O,Network

注意点:

  1. CPU关注的是%us[user使用率,应用使用率通常为用户CPU使用率],%sy[系统使用率]需要注意
  2. Linux下,空闲memory的计算方式,基于LINUX系统的内存使用原则,不要看到free的数据少了,觉得是瓶颈
    *eg:linux下 内存:
    Total 2G usred 1.5G free 200M buffer 1G cache 500M
    实际可用内存总量为free+buffer+cache [linux内存使用原则:尽可能的使用内存]*
  3. IO的瓶颈的确认需要特别注意,需要多方考虑,综合思考,“一切问题皆IO”
  4. Network需要注意上下行及单位

监测工具:

  1. Nmon 小巧精炼的工具,安装使用均很方便,支持多个版本linux,内容丰富
  2. Glances【重点推荐】,业内号称linux系统实时监控的瑞士军刀,监控覆盖全面,界面清晰
  3. linux自带命令:Top\iostat\pidstat\sar\netstat\iftop\jstat\jps等等

应用层资源监控

操作系统的资源消耗可以理解为是应用层问题的外在表现

  1. 阻塞:正在运行的线程没有运行结束,暂时让出CPU
  2. 争用:多个线程对同一段数据进行不同的操作
  3. 死锁:好的线程锁是业务的保障,不好的锁就是灾难
  4. 理解线程状态图,有助于我们解决问题
基于JAVA的监控工具

Jvisualvm JDK自带监控工具,无需安装,需简单配置,可全方位监控代码运行情况
JProfiler【商业软件】,直觉式的GUI可以让你快速找到性能瓶颈,抓出内存泄露

数据库资源的监控[80%的性能问题,会出现在数据库层面]

关注的点:

  1. SQL的执行效率,或者说执行计划
  2. 索引的正确使用
  3. 大数据量情况下分库分表
  4. 其他TOP N的消耗
Oracle

AWR报告[这个报告可以看出Oracle数据库的各问题]

Mysql

MONyog:内容全面,界面清爽,查看慢SQL【需安装,轻量级】


liaoyg8023
28 声望1 粉丝

学习~~


引用和评论

0 条评论