• 【原创】大众点评监控平台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的监控埋点对被监控程序本身的性能的影响可忽略不计。

  • 相关阅读:
    MagicZoom bug-Strict Standards: Only variables should be assigned by reference Error
    Web大文件(夹)上传(断点续传)控件-Xproer.HttpUploader6
    在PHP中,通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。如果要转换文件大小的单位,可以自己定义函数来实现。
    PHP正则匹配6到16位字符组合(且只能为数字、字母、下划线)
    Windows下PHP版本选取
    简单配置nginx使之支持pathinfo
    PHP如何关闭notice级别的错误提示
    php开启pathinfo 模式
    php 5.3新增的闭包语法介绍function() use() {}
    Object.prototype.toString.call() 区分对象类型
  • 原文地址:https://www.cnblogs.com/chenkaideng/p/5740657.html
Copyright © 2020-2023  润新知