zoukankan      html  css  js  c++  java
  • 【原创】大众点评监控平台cat的性能分析

    由于工作的原因,或者说我们之前内部监控设计和实现有点不满足现有的研发需求,所以调研了一下大众点评开源出来的cat这一套监控系统。

    今天我们就来实验一把,cat的客户端埋点在我们的程序流程中上报数据到cat的服务端这个流程对我们程序性能的影响。

    测试工具

    Jmeter

    测试环境

    Cat部署在内网192.168.84.27,内存6GCPU 4

    单台cat和单台dubbo

    代码

    原接口代码

    public String kongjiekou() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            JSONObject object = new JSONObject();
            object.put("msg", "这是一个空接口");
            return object.toJSONString();
    }

    1个点接口代码

    public String kongjiekou() {
            Transaction transaction = Cat.newTransaction("inner", "kongjiekou");
            try {
                Cat.logMetricForCount("kongjiekou");//埋一个点
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
                Cat.logError(e);
            } finally {
                transaction.complete();
            }
            JSONObject object = new JSONObject();
            object.put("msg", "这是一个空接口");
            return object.toJSONString();
    }

    100个点接口代码

    public String kongjiekou() {
            Transaction transaction = Cat.newTransaction("inner", "kongjiekou");
            try {
                for (int i = 0; i < 100; i++) {
                    Cat.logMetricForCount("kongjiekou"+i);//埋100个点
                }
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
                Cat.logError(e);
            } finally {
                transaction.complete();
            }
            JSONObject object = new JSONObject();
            object.put("msg", "这是一个空接口");
            return object.toJSONString();
    }

    统计数据

    Dubbo中的kongjiekou接口原先并发效率

    并发量(1s)

    平均耗时(ms)

    耗时中位数(ms)

    错误率

    100

    1036

    1023

    0.00%

    500

    2009

    1955

    0.00%

    1000

    3069

    3032

    0.00%

    接入cat客户端埋1个点之后

    并发量(1s)

    平均耗时(ms)

    耗时中位数(ms)

    错误率

    100

    1061

    1040

    0.00%

    500

    2154

    2085

    0.00%

    1000

    3352

    2955

    0.00%

    接入cat客户端埋100个点之后

    并发量(1s)

    平均耗时(ms)

    耗时中位数(ms)

    错误率

    100

    1143

    1024

    0.00%

    500

    2333

    2285

    0.00%

    1000

    3435

    2920

    0.00%

    并且在多次性能测试过程中,内存占用情况并没有明显升高,CPU也是正常的执行时长高到正常值,执行后恢复,每次的内存和CPU峰值都相差无几。由于研发内网的带宽本身就极不稳定,所以带宽指标这里先不做判定。

    总结

    从以上结果得出初步结论,cat的监控埋点对被监控程序本身的性能的影响可忽略不计。

  • 相关阅读:
    Linux安装配置nginx
    Linux下apache安装php
    Linux安装配置apache
    Linux安装mysql
    安装Linux CentOS与用Xshell实现远程连接
    关于IIS上Yii2的Url路由美化
    安装android Studio和运行react native项目(跳坑篇)
    安装android Studio和运行react native项目(基础篇)
    第10章 同步设备I/O和异步设备I/O(3)_接收I/O请求完成通知的4种方法
    第10章 同步设备I/O和异步设备I/O(2)_同步IO和异步IO基础
  • 原文地址:https://www.cnblogs.com/chenkaideng/p/5740657.html
Copyright © 2011-2022 走看看