18 March 2015

前言

一直为server和应用没有监控感到不安,上周申请的newrelic帐号,昨天和今天研究了一下,newrelic,感觉相当的不错。

正文

newrelic提供了多种功能,多种产品的性能监控,server,application,mobile之类的。

使用:

  1. 先在Gemfile中添加gem 'newrelic_rpm',然后bundle一下
  2. 下载对应的newrelic.yml文件
  3. 等待后,可参看各种图表: 请求响应时间图表、Apdex图表、吞吐量图标、请求时间排名(可深入研究并优化)、错误率、服务器状态表。

最重要的就是请求响应时间图表,以下是图例:

请求响应时间图表

仔细观察这张图,可以发现这样的几点内容:

  • 中间件的处理时间比较平稳,基本在50ms之下
  • db和ruby的处理时间波动较大,其中,db的处理时间波动极大,极其不规则。这种不规则的数据访问方式,有可能导致db的压力非常大,数据库容易崩溃。

经验

newrelic-sysmond

在阿里云上使用第三方的监控工具,数据好像不能正确的发送出去,而且监控的指标比较贫乏,还不如我使用top进行监控,试了一下后,又删掉了(newrelic-sysmond)。

判断失误了,不是newrelic不起作用,是自己太过心急了,newrelic-sysmond进程要把数据发送过去是需要时间的。newrelic服务器总览表提供的数据不多,但是,重要 的参数指标都有了: CPU, 磁盘I/O, 内存,磁盘使用率。只要这几个总体的指标没问题,服务器也就没太大的问题。

监控进程

发现server上rpc.statd和rpcbind很耗内存,搜了以下,得知这是和NFS相关的进程。NFS相关的服务进程如下:

  • nfs - 启动相应RPC服务进程来服务对于NFS文件系统的请求.
  • nfslock - 一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁.
  • portmap - Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接.
    • rpc.mountd - 这个进程接受来自NFS客户端的加载请求和验证请求的文件系统正在被输出.这个进程由NFS服务自动启动,不需要用户的配置.
    • rpc.nfsd - 这个进程是NFS服务器.它和Linux核心一起工作来满足NFS客户端的动态需求,例如提供为每个NFS客户端的每次请求服务器线程.这个进程对应于nfs服务.
    • rpc.lockd - 一个可选的进程,它允许NFS客户端在服务器上对文件加锁.这个进程对应于nfslock服务.
    • rpc.statd - 这个进程实现了网络状态监控(NSM)RPC协议,通知NFS客户端什么时候一个NFS服务器非正常重启动.这个进程被nfslock服务自动启动,不需要用户的配置.
    • rpc.rquotad - 这个进程对于远程用户提供用户配额信息. 这个进程被nfs服务自动启动,不需要用户的配置.

附:

安装操作:

# centos特定
rpm -Uvh http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
yum install newrelic-sysmond
# ubuntu特定
echo deb http://apt.newrelic.com/debian/ newrelic non-free >> /etc/apt/sources.list.d/newrelic.list
wget -O- https://download.newrelic.com/548C16BF.gpg | apt-key add -
apt-get update
apt-get install newrelic-sysmond
# 以下通用步骤, license_key由newrelic生成,每个人都各不相同
nrsysmond-config --set license_key=xxxx
/etc/init.d/newrelic-sysmond start # 或者 service newrelic-sysmond start

监控结果

结果示意图:

服务器监控图

监控之后,发现了一些问题,服务器使用率都不高,并发数却上不去,分布式架构果然相当不合理,这么好的机器,这么差的效果, 实在让人心痛不已。

现象:

早晨的jobs所在的机器,从数据上来看,系统负载不是特别大,内存和cpu消耗不大。但是,操作非常的卡顿。输入一条命令等半天。这肯定有问题,但是问题在哪里呢?

后记

总的来说,newrelic提供的监控很不错,有了监控,接下来的事情就是具体分析,找出性能的瓶颈,然后解决掉。

New Relic这么火,国内的相关性能监控平台有: OneAPM听云,对比发现,两者的用户来头都不小,体验了一下,与NewRelic提供的监控相似。此外,发现越来越多的整合式服务了,以及企业级的各种应用,这些都是可以挣钱的。

国内的APM市场,将会越来越大,企业级市场不容小觑,千亿规模。

参考文献

  1. 性能监控的好工具 - NewRelic 简介
  2. NewRelic server安装
  3. New Relic成功上市,企业级移动市场终于在沉默中爆发



傲娇的使用Disqus