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的监控埋点对被监控程序本身的性能的影响可忽略不计。

  • 相关阅读:
    vue-cli 2.x 项目优化之:引入本地静态库文件
    关联本地文件夹到 GitLab 项目
    react 子组件访问父组件的方法
    vue 和 react 组件间通信方法对比
    mobx-state-tree 知识点
    vue 下实现 echarts 全国到省份的地图下钻
    TweenMax 动画库,知识点
    mobx 知识点
    highcharts 知识点
    dependencies、devDependencies、webpack打包 的区别与联系
  • 原文地址:https://www.cnblogs.com/chenkaideng/p/5740657.html
Copyright © 2011-2022 走看看