互联网服务Prometheus

为什么Prometheus使用自定义的存储后端,而不是使用其他的存储方法?

参与3

1同行回答

zhuhaiqiangzhuhaiqiang  项目经理 , 银行
一开始,Prometheus是在LevelDB上存储事件序列数据,但不能达到比较好的性能,我们必须改变大量时间序列的存储方式。我们评估了当时可用的许多存储系统,但是没有得到满意的结果。所以我们实现了我们需要的部分。同时保持LevelDB的索引和大量使用文件系统功能。我们最重要的要求...显示全部

一开始,Prometheus是在LevelDB上存储事件序列数据,但不能达到比较好的性能,我们必须改变大量时间序列的存储方式。我们评估了当时可用的许多存储系统,但是没有得到满意的结果。所以我们实现了我们需要的部分。同时保持LevelDB的索引和大量使用文件系统功能。我们最重要的要求是对于常见查询的可接受查询速度,以及每秒数千个样本的可持续速率。后者取决于样本数据的可压缩性和样本所属的时间序列数,但是给你一个想法,这里有一些基准的结果:

  • 在具有Intel Core i7 CPU,8GiB RAM和两个旋转磁盘(三星HD753LJ)的老式8核机器上,Prometheus在每个RAID-1设置中的吞吐速率为34k样本,属于170k时间序列, 600个目标。
  • 在具有64GiB RAM,32个CPU内核和SSD的现代服务器上,Prometheus的每秒吞吐率为525k样本,属于1.4M时间序列,从1650个目标中剔除。
    在这两种情况下,没有明显的瓶颈。在相同的流入速度下,各个阶段的处理管道或多或少都会达到他们的限度。

在通常的设置中,不可能使用inode。 有一个可能的缺点:如果你想删除Prometheus的存储目录,你会注意到,一些文件系统在删除文件时非常慢。

收起
银行 · 2019-12-30
浏览1291

提问者

guolimin1118
产品总监上海派拉软件有限公司
擅长领域: 云计算云原生微服务

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-12-30
  • 关注会员:2 人
  • 问题浏览:1781
  • 最近回答:2019-12-30
  • X社区推广