数据流转理论上,我们需要对系统数据流转的每个节点做监控,收集数据,以便于分析,但受限于环境或时间问题,因此,需要进行简单分类,选择最需要的地方进行监控系统硬件资源对于承载应用的最基础设备,需要充分了解其使用情况,需要关注的内容由CPU、Memory、I/O,Network注意点:CPU关注的是%us[user使用率,应用使用率通常为用户CPU使用率],%sy[系统使用率]需要注意Linux下,空闲memory的计算方式,基于LINUX系统的内存使用原则,不要看到free的数据少了,觉得是瓶颈*eg:linux下 内存:Total 2G usred 1.5G free 200M buffer 1G cache 500M实际可用内存总量为free+buffer+cache [linux内存使用原则:尽可能的使用内存]*IO的瓶颈的确认需要特别注意,需要多方考虑,综合思考,“一切问题皆IO”Network需要注意上下行及单位监测工具:Nmon 小巧精炼的工具,安装使用均很方便,支持多个版本linux,内容丰富Glances【重点推荐】,业内号称linux系统实时监控的瑞士军刀,监控覆盖全面,界面清晰linux自带命令:Top\iostat\pidstat\sar\netstat\iftop\jstat\jps等等应用层资源监控操作系统的资源消耗可以理解为是应用层问题的外在表现阻塞:正在运行的线程没有运行结束,暂时让出CPU争用:多个线程对同一段数据进行不同的操作死锁:好的线程锁是业务的保障,不好的锁就是灾难理解线程状态图,有助于我们解决问题基于JAVA的监控工具Jvisualvm JDK自带监控工具,无需安装,需简单配置,可全方位监控代码运行情况JProfiler【商业软件】,直觉式的GUI可以让你快速找到性能瓶颈,抓出内存泄露数据库资源的监控[80%的性能问题,会出现在数据库层面]关注的点:SQL的执行效率,或者说执行计划索引的正确使用大数据量情况下分库分表其他TOP N的消耗OracleAWR报告[这个报告可以看出Oracle数据库的各问题]MysqlMONyog:内容全面,界面清爽,查看慢SQL【需安装,轻量级】