作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


接上篇:测试所有metric都是存在过的metric的情况下,单核的极限写入性能。也就是说,只增加数据部分,不影响索引部分。

1.基础信息

  • CPU 1核
  • 内存 8GB
  • 本地磁盘(应该是SATA盘)
  • metric的平均长度:513字节
  • vm-storage版本:v1.78.0-cluster
  • 压测方法:使用remote write协议写入完全不同的metric数据,每次发送1000条,每核50个并发,一共15核。
    • vm-insert 5 实例,共20核,资源充足
    • vm-insert的关键参数如下:
      • -maxConcurrentInserts=默认值
      • -sortLabels: 开启label的排序。
      • -insert.maxQueueDuration=3s,允许在队列中等待的最长时间。
      • -dropSamplesOnOverload: 为了保护vm-insert自身,在vm-storage变慢后,立即丢弃数据。

2.vm-storage性能表现

  • CPU占用:0.80核~0.89核 (相当于CPU资源已经到瓶颈了)
  • 内存:3.52GB, 占44%
  • 网络入流量:810kb/s
  • 磁盘读:平均100kb~200kb/s, 峰值2.38mb/s ,最高延迟 5.14ms
  • 磁盘写:平均100kb~500kb/s,峰值7.05mb/s, 最高延迟 43.6ms
    • 相比于写入索引,写入数据所占用的IO要小得多
  • 新的metric的占比 0%, slow insert的占比0%(显而易见) , tsid cache的miss率 0%(显而易见)
  • 每秒写入的data point数量:43万/s
  • vm-insert端:
    • 请求量:431583/s
    • 丢弃量:5028/s

3.总结

  • 当所有的time series都是旧的情况下, vm-storage的的单核的极限写入性能大约是:43万/s
  • 磁盘读是写入流量的 四分之一, 磁盘写是写入流量的 二分之一
  • 当写入量过大时,CPU是瓶颈。内存、网络流量和磁盘IO的资源占用相对较小。
  • 根据压测数据:写入索引的成本是写入数据的 43万 / 6000 = 71.7倍

4.遗留问题

  • 怎么样让vm-insert尽量不丢包,又不会导致过载?
  • vm-insert的资源与vm-storage的配比是怎么样的?配置多少vm-insert才能不出现drop数据?
  • 旧metric和新metric按照一定比例混合发送的时候,性能表现又是怎么样的?

vm-storage在全部都是旧metric情况下的写入性能测试的更多相关文章

  1. Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。

    今天遇到的一个大坑,话不多少,看sql和下边的查询结果: --问题:恰好把buildingid is null的记录给过滤掉 ),buildingid ),)); ); ); ); ); ); ); ...

  2. 在不连接网线的情况下Windos与VM之间如何ping通

    一般情况下,如果宿主主机的网口连接网线并且能够上网,那么按照VM的默认安装,在VM-Settings-Hardware-Network Adapter-Network connection中选择Bri ...

  3. 关于RecyclerView你知道的不知道的都在这了(下)

    目录 目录 正文 6. Recycler 7. ItemAnimator 8. ItemDecoration 9. OnFlingListener 目录 由于本篇篇幅特长,特意做了个目录,让大伙对本篇 ...

  4. PHP一般情况下生成的缩略图都比较不理想

    PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的缩略图都比较不理想.今天试用PHP,GD库来生成缩略图.虽然并不100%完美.可是也应该可以满足缩略图的要求了.<?php $FILEN ...

  5. 请问下mtk双卡手机怎样发短信是怎样选择sim卡来发(双卡都可用的情况下)?

    如题,我如今可以获取双卡状态,当仅仅有单一卡的时候可以指定sim卡进行发短信,可是双卡都可用的情况下,程序就默认使用卡1发短信了.即使指定了sim卡编号.

  6. 《剑指Offer》第1题(Java实现):在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    一.题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...

  7. RabbitMQ默认情况下不保证每次都把消息传递

    有意思,RabbitMQ默认情况下是不保证每次都把消息传递的,很多情况下我们都是这样发送数据的,    channel.BasicPublish(QUEUE_NAME, String.Empty, n ...

  8. 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上) 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(下)

    微信.QQ.新浪微博等第三方登录,你想知道的都在这了(上):https://www.jianshu.com/p/133d84042483 微信.QQ.新浪微博等第三方登录,你想知道的都在这了(下):h ...

  9. Notification 多次传递参数 一直都是旧的 解决

    参考 :http://blog.163.com/caoguoqiang_dlut/blog/static/10658914220114167219320/ 问题描述: 在service中获取到数据,通 ...

  10. 前端重定向,index.html文件被浏览器缓存,导致整个应用都是旧的

    解决方法:https://github.com/ant-design/ant-design-pro/issues/1365#issuecomment-384496088

随机推荐

  1. 你知道,什么时候用Vue计算属性吗?

    摘要:当我们处理复杂逻辑时,都应该使用计算属性. 本文分享自华为云社区<深入理解计算属性,知道什么时候该用Vue计算属性吗?>,作者: 前端老实人 . 计算属性 有些时候,我们在模板中放入 ...

  2. JS引擎(1):JS引擎擂台赛,JavaScript引擎的特征比较及术语科普

    上篇介绍过JavaScript引擎的历史,<JS引擎(0):起底各种JavaScript引擎群雄争霸之路> 一些流行的 JavaScript 引擎 SpiderMonkey ,Brenda ...

  3. Java SpringBoot Bean InitializingBean 项目初始化

    Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的ge ...

  4. #5702:Solving Order(结构体排序,水题)

    原题目链接 题目大意:把颜色由多到少进行排序,从大到小的输出. 解题思路:将变量存在结构体中,然后结构体排序即可.还需要注意格式的问题. 详见代码. #include <iostream> ...

  5. StringBuilder 线程不安全,到底哪里不安全?

    StringBuilder 线程不安全,到底哪里不安全? 在Java中,字符串拼接是一个非常常见的操作,而对于频繁变动的字符串内容,使用StringBuilder是一个性能优化的选择.但是,Strin ...

  6. Vue项目利用axios请求接口下载excel(附前后端代码)

    https://blog.csdn.net/aSmallProgrammer/article/details/91440793?utm_medium=distribute.pc_relevant.no ...

  7. 前端规范:eslint与prettier使用(干货)

    https://blog.csdn.net/weixin_45077178/article/details/107226551 视频教程: https://xdclass.net/#/dplayer? ...

  8. [VS工程技巧]远程调试工具及dump文件来检查程序崩溃及异常等问题

    做什么 之前有一次梦中所得,既然可以让vs附加到进程去调试活动的dll,那要是可以让我本地的电脑去调试别人客户端或者测试环境的DLL就好了,这样就可以不通过dbgview去一个个输出看,而是可以直接调 ...

  9. JPA + MySQL 开发总结

    本文为博主原创,转载请注明出处: org.springframework.data.jpa 是 Spring Data JPA 框架中的一个包,用于简化与 JPA(Java Persistence A ...

  10. linux 通过docker安装 elasticsearch-head

    本文为博主原创,未经允许不得转载: 1. 使用docker安装 elasticsearch-head #拉取镜像 docker pull mobz/elasticsearch-head:5 #创建容器 ...