thanos receiver压测结果分享
压测环境
- k8s容器环境
- 单核
- 32GB内存
- thanos版本:v0.22.0
- 客户端发送32271959条数据,100个并发;同样的数据文件发送了两遍,取第二遍的性能数据
- 在thanos receiver CPU占用100%的情况下观察其表现
- 持续时间:14:29~15:03,33分钟
压测详细数据
1.请求曲线:

查询表达式:sum by (instance) (rate(http_requests_total{handler="receive",method="post",instance="$instance",code="200"}[1m]))*60

查询表达式:sum by () (rate(http_request_size_bytes_sum{instance="$instance"}[1m])/1024/1024)

查询表达式:sum by (code) (rate(http_requests_total{handler="receive",method="post",instance="$instance",code!="200"}[1m]))*60
2.资源情况

查询表达式:sum by (instance) (rate(process_cpu_seconds_total{instance="$instance"}[1m]))*60

查询表达式:
- 物理内存:
sum by (instance) (max_over_time(process_resident_memory_bytes{instance="$instance"}[1m]))/1024/1024/1024- 物理内存峰值:25.9GB
- 压测前的物理内存:13.8GB,内存上涨12.1GB
- 虚拟内存:
sum by (instance) (max_over_time(process_virtual_memory_bytes{instance="$instance"}[1m]))/1024/1024/1024 - thanos receiver的内存,并没有因为切换tsdb而明显的降低,没有请求后,内存释放得非常缓慢:
- 从9:30~11:09,共100分钟内,内存从22.8GB减少到13.8GB,减少了9GB
3.sample情况

查询表达式:prometheus_tsdb_head_samples_appended_total{instance="$instance"}
- 新增data point 85490118,平均 2590610/min, 43177/s

查询表达式:sum by () (rate(prometheus_tsdb_head_samples_appended_total{instance="$instance"}[1m]))*60 - 峰值:4807544/min, 80126/s,可以认为thanos receiver单核的极限的处理data point的能力为8万每秒。
4. time series情况:

查询表达式:prometheus_tsdb_head_series{instance="$instance"}

查询表达式:sum by () (rate(prometheus_tsdb_head_series_created_total{instance="$instance"}[1m]))*60
- 因为同样的数据文件发送了两次,所以time series的总数是一致的;time series总数达到 3934198
- 平均每个time series有 85490118 / 3934198 = 21.7 个data point(sample)
5. chunk情况:

查询表达式:prometheus_tsdb_head_chunks{instance="$instance"}
- tsdb的两个参数:
"--tsdb.min-block-duration=30m","--tsdb.max-block-duration=30m",因此14:29~14:49达到了tsdb切换的周期

查询表达式:sum by () (rate(prometheus_tsdb_head_chunks_created_total{instance="$instance"}[1m]))*60
6.其他

查询表达式:prometheus_tsdb_compactions_triggered_total{instance="$instance"}
- 为什么只在没有请求的时候触发 compaction ?

查询表达式:prometheus_tsdb_head_truncations_total{instance="$instance"} - truncate动作的执行规律,还没搞明白
结论
- thanos receiver单核处理data point的能力大约在 43177/s ~ 80126/s
- 粗略的认为:存储 3934198 time series + 85490118个data point花费了12.1GB内存
thanos receiver压测结果分享的更多相关文章
- 性能压测诡异的Requests/second 响应刺尖问题
最近一段时间都在忙着转java项目最后的冲刺,前期的coding翻代码.debug.fixbug都逐渐收尾,进入上线前的性能压测. 虽然不是大促前的性能压测要求,但是为了安全起见,需要摸个底心里有个数 ...
- 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测
前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...
- 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测
性能测试PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,孵化自阿里内部平台.有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化 ...
- 【分享】thanos receiver的grafana报表配置
具体的部署是:用prometheus抓取thanos receiver的10909端口,然后grafana再请求这个prometheus 具体的JSON配置请见最后 本文的一些监控配置,参考了这篇文章 ...
- azure存储压测的问题(农码主观意识太强被坑了)
由于公司想把部份业务迁到windowsazure,主要是应用winodwsazure的存储;在方案中为了体现存储的可靠性所以对winodwsazure存储进行了一系列的测试.但在读取压力测试环节中发现 ...
- jmeter 压测最近的心得体会
笔者14年入坑测试,截止到17年年初一直在游戏公司,压测,我都没有怎么用过,特别是jmeter去压测,自己学习,可是先找到切入点,于是乎, 其实也算是我学习后,先找一个更大的平台吧,我聊了几个游戏公司 ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...
- PostgreSQL 一主多从(多副本,强同步)简明手册 - 配置、压测、监控、切换、防脑裂、修复、0丢失 - 珍藏级
参考来源: https://github.com/digoal/blog/blob/master/201803/20180326_01.md#postgresql-一主多从多副本强同步简明手册---配 ...
- 【免费培训】腾讯WeTest&TesterHome WorkShop | 一起学压测
2019年,中国移动软件市场仍呈现快速增长趋势,移动新生态孕育而生.而移动软件质量问题越发受到用户的关注,成为用户体验的关键因素.目前移动软件测试人才稀缺,而性能测试作为一项高门槛.高技术的测试能力, ...
随机推荐
- java 编程基础 Class对象 反射 :数组操作java.lang.reflect.Array类
java.lang.reflect包下还提供了Array类 java.lang.reflect包下还提供了Array类,Array对象可以代表所有的数组.程序可以通过使 Array 来动态地创建数组, ...
- word里搜狗输入法出不来,可以按ctrl+空格键
word里搜狗输入法出不来,可以按ctrl+空格键
- git clone报错: Out of memory, malloc failed (tried to allocate 524288000 bytes)
IDEA 拉取项目报错:Out of memory, malloc failed (tried to allocate 524288000 bytes) 执行 git config --global ...
- lldb调试C++总结(1)
Note 好记性不如烂笔头.时间一长,lldb的基本功快忘本了. 本文将介绍使用 lldb 调试 C++程序的基本用法. 演示基于 Ubuntu + lldb lldb + clang(++) 版本 ...
- java源码——计算立体图形的表面积和体积
计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...
- 【剑指Offer】06. 从尾到头打印链表 解题报告(Java & python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 栈 递归 数组 日期 题目地址:https://leetcode ...
- 1057 - Collecting Gold
1057 - Collecting Gold PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...
- Java 将Excel转为OFD
OFD是一种开放版式文档(Open Fixed-layout Document )的英文缩写,是我国国家版式文档格式标准.本文,通过Java后端程序代码展示如何将Excel转为OFD格式.方法步骤如下 ...
- Java 8 的内存结构
Java8内存结构图 虚拟机内存与本地内存的区别 Java虚拟机在执行的时候会把管理的内存分配成不同的区域,这些区域被称为虚拟机内存,同时,对于虚拟机没有直接管理的物理内存,也有一定的利用,这些被利用 ...
- Redis的各种实现(Jedis、Redisson、Lettuce)
1.1.Jedis 是Redis的Java实现的客户端.支持基本的数据类型如:String.Hash.List.Set.Sorted Set. 特点:使用阻塞的I/O,方法调用同步,程序流需要等到so ...