一、项目背景
在项目开发的时候,我们常常会担心性能问题,如果我们有一个可以监控各个服务器性能的系统就爽多了,可以很方便的知道各个服务器在各个时间段内的性能指标。
其实在大部分系统出现性能问题基本上是系统数据库出问题了,再细致划分下去基本上就是数据库表结构和Sql语句出了问题,这时我们还需要监控系统中运行过的sql语句。这样就可以找到是那哪个sql运行慢,从而可以针对性的进行优化。
二、服务器性能
系统的使用总归会有高峰期,在这个时候系统可能表现的不够良好,出现卡顿现象。如果确定是服务器的CPU的问题,那么我们可以加一个负载或者多个负载服务器。
下图展示的是系统某一刻的服务器的运行状态,其实这种做法并不是很好,因为只能监控某一刻的系统的性能情况。我认为最好的做法是单独搭建一套系统监控程序,这样可以监控多台服务器的运行状态,也可以将各台服务器的性能指标数据持久化到数据库,这样可以更方便开发人员去分析系统瓶颈问题。
三、数据库监控
关于sql语句的监控,我这里采用的是阿里云Druid数据库连接池,它里面包含很多监控数据,我个人最喜欢的还是SQL监控,因为它能明确的告诉我具体运行过哪些sql语句,耗时多少,数据分布式什么样子的。下图就是Druid的SQL监控页面,可以清晰的看到sql运行状况,有助于DBA分析并优化SQL语句。