了解应用层服务的性能状况

除了网站监控和服务器监控之外,我们还需要关注应用层服务的各项性能和运行状况。

支持各类主流应用层服务

监控宝已经支持的服务监控类型包括:

  • Apache
  • Lighttpd
  • Nginx
  • Tomcat
  • Redis
  • Memcache
  • MySQL
  • MongoDB


创建以上这些监控项目非常容易,您只需要根据我们的指引,对这些服务进行简单的配置即可。另外,我们也提供了安全指引,帮助您更加安全的进行性能监控。

Apache吞吐率监控

想知道您的Apache服务器每秒处理多少个请求吗?这并不难,我们需要监控Apache的吞吐率,您只需要简单修改Apache配置,开启mod_status模块,详细过程您可以参考我们的指引文档

如果您对Web应用程序进行过性能测试,那么您应该大概知道它们在Apache上运行的最大吞吐率,这样一来,您便可以通过实时吞吐率的监控来判断何时需要进行扩展。

Apache并发连接数详细统计

请注意,Web服务器的吞吐率并不决定它的并发连接数,而并发连接数取决于Web服务器的并发处理策略以及HTTP请求的响应时间等。

通常情况下,我们使用Apache的Prefork多进程模型,它的并发连接数即相当于它的进程数,通过监控宝的统计曲线图,您可以详细的了解这些进程正处于何种状态。

Apache插件监控

Apache插件能够通过状态页面地址采集Apache的吞吐率和并发连接数指标,同时也能获取到并发连接数详细统计信息包括:读取请求、持久连接、发送响应内容、关闭连接和等待连接的数量。

Lighttpd并发连接数详细统计

越来越的站点使用Lighttpd来运行动态Web应用,如Fastcgi,您可以在监控宝上轻松的查看所有Lighttpd连接的详细统计。

一旦您了解这些详细统计后,便可以对Lighttpd进行必要的参数优化,比如调整Fastcgi进程数等,这些优化可能还会涉及到服务器系统的调优。

Lighttpd插件监控

Lighttpd插件能够通过状态页面地址采集Lighttpd的吞吐率和并发连接数指标,同时也能获取到并发连接数详细统计信息包括:建立连接、读取请求、读取POST数据、处理请求、发送响应内容和关闭连接数量。

Nginx吞吐率和并发连接数详细统计

很多站点使用Nginx作为静态文件服务器或者小规模HTTP负载均衡调度器,监控宝同样可以对Nginx进行吞吐率监控和并发连接数详细统计。

Nginx插件监控

Nginx插件能够通过状态页面地址采集Nginx的吞吐率、并发连接数和持久利用率指标,同时也能获取到并发连接数详细统计信息包括:读取请求、处理请求和发送响应内容、持久连接数量。

Tomcat的JVM内存使用

JVM内存,包括JVM可使用内存、JVM所使用内存、JVM最大可使用内存;

Tomcat插件监控

Tomcat插件能够通 过状态页面地址采集Tomcat的各种性能指标,包括JVM内存、Tomcat线程、Tomcat处理时间 、Tomcat请求数、网络流量。

目前支持Tomcat 5.0 或更高的版本监控。

Redis链接数

Redis链接数,包括链接客户数,链接从库数等。

此指标反映Redis的请求频率。

Redis插件监控

Redis插件能够通过状态页面地址采集Redis的各种性能指标,包括:链接客户数、链接从库数、链接数每分钟、阻塞客户数、Pub/Sub通道数、Pub/Sub模式数、命中率、使用内存和执行命令数每分钟。

Memcache读写每秒

Memcache读写每秒,分为读每秒和写每秒,读每秒是指单位时间内新增的读的次数,写每秒是指单位时间内新增的写的次数。

Memcache插件监控

Memcache插件能够通过状态页面地址采集Memcache的各种性能指标,包括:缓存命中率、当前链接数、链接数每秒、使用内存、当前条目数量、读写每秒和空间使用率。

MySQL查询吞吐率监控

要对MySQL进行性能监控和容量规划,首先我们需要知道数据库查询吞吐率,并且是各类查询的详细统计。监控宝对重要的几类查询进行了吞吐率统计,它们包括:

  • Change db
  • Select
  • Update
  • Insert
  • Delete

MySQL查询缓存命中率

您可以对频繁的MySQL Select查询设置查询缓存,比如将MySQL的query_cache_size参数设置为256M。

然而,我们更关心的是查询缓存命中率究竟如何,有很多情况会导致缓存失效,比如结果集所在表被更新、查询缓存空间不够等。通过监控宝提供的曲线图,我们可以随时了解当前的缓存命中率。

MySQL索引缓存命中统计

通常情况下,大多数查询都会用到索引数据,而索引的计算速度也影响了整个查询的时间开销。我们可以对索引设置缓存,比如对于MyISAM表引擎可以将key_buffer_size设置为1024M。

MySQL表锁定统计

当您的查询语句需要锁定某个表的时候,这个表上的其它查询请求都将处于等待状态,由于种种原因,我们的查询语句很难做到没有任何表锁定,但我们希望表锁定能够立即释放。

通过对MySQL表锁定的监控,我们可以快速的了解到查询语句是否合理,并且进行针对性的优化。

MySQL流量监控

也许通过服务器流量监控还不能完全体现MySQL数据库的读写流量,因为服务器上可能不只运行了MySQL数据库,不过将两者进行综合分析,可以帮助你更多的了解流量分配情况。

MySQL插件监控

MySQL插件能够通过状态页面地址采集MySQL数据库的各种性能指标,包括查询吞吐率统计、持久连接利用率、查询缓存空间使用率、查询缓存命中率及被缓存的查询数、索引缓存命中率及索引读取统计、并发连接统计、连接吞吐率、连接缓存命中率、流量统计、表锁定统计。

MongoDB链接数

MongoDB当前链接数和可用链接数,它表示MongoDB当前同时处理的请求数和剩余可用链接数。

MongoDB插件监控

MongoDB插件能够通过状态页面地址采集MongoDB数据库的各种性能指标,包括全局锁时间比例、当前等待锁总数、当前等待读锁数、当前等待写锁数、查询吞吐率、使用内存及使用磁盘空间、分页次数、索引命中率、索引访问次数每秒、当前链接数和可用链接数。